Lien original: IT book - itbook.com
but
configuration en un clic entre les nœuds de cluster de connexion sans mot de passe. A condition que les mots de passe sur tous les nœuds est le même!
réalisation
Je viens ~ / sans mot de passe
Contenu du script:
#! / bin / sh # tous les noms de noeud NŒUDS = () # tout mot de passe noeud PASS = $ 1 ###### longueur de validation de nodes_length = $ (($ # - 1 )) si [[ss -gt 0 ] ]; puis echo " Sortie: Au moins deux paramètres, par exemple: votre_mot_de_passe, node1 " exit 2 fi ###### Obtenez tous les noms de noeud i = 0 pour le noeud de $ * faire si [[i -gt 0 ]]; alors j = $ ((i -1 )) NODEs [j] = noeud $ fi soit i ++ done MASTER = ` nom d' hôte ` yum -y installer attendre ######################## ########### fonction ssh_cmd0 () { user_and_host = $ 1 mot de passe = $ 2 cmd = $ 3 / usr / bin / expect << - EOF set délai d' attente 5 spawn ssh $ user_and_host attendre { " oui / pas " {send " oui \ r "; exp_continue} " mot de passe " {send " $ password \ r " } } attendre " # " envoyer " $ cmd \ r " attendre " # " exit 0 Interagir EOF } fonction ssh_cmd () { ssh_cmd0 " $ 1 " " $ 2 " " echo 'start_mark'; $ 3; echo 'end_mark' " | sed -n ' / ^ start_mark /, / ^ end_mark / p ' | poignéeEV- ' (^ start_mark | ^ end_mark) ' } ###### Créer tous authorized_keys noeuds, et la collecte de maître. echo "" > ~ /. ssh / authorized_keys echo "" > ~ /. ssh / known_hosts pour s en $ {NŒUDS [@]} faire écho -e " \ nstart :: node esclave ($ s) id_rsa.pub génère et envoie nœud maître ($ MASTER) " ssh_cmd " root @ $ s " " de $ PASS " " rm -f ~ / .ssh / id_rsa, ssh-keygen -t rsa -P '' -f ~ /. ssh_cmd " root @ $ s " " $ PASS " " cat ~ / .ssh / id_rsa.pub " >> ~ /. ssh / authorized_keys echo " DONE :: node esclave (s $) génère id_rsa.pub et envoyer au noeud maître ($ MASTER) " fait ###### Copie collectioned authorized_keys à tous les nœuds. echo -e " \ n ######################### authorized_keys À TOUS ENVOI NODE ############## ########### " pour s dans $ {NŒUDS [@]} faire écho -e "\ nstart :: nœud maître ($ MASTER) envoyer TOUS id_rsa.pub (authorized_keys) au noeud esclave ($ s) " ssh_cmd " root @ s $ " " $ PASS " " echo '`cat ~ / .ssh / authorized_keys`' > ~ / .ssh / authorized_keys " echo -e " DONE :: nœud maître ($ mASTER) envoyer TOUS id_rsa.pub (authorized_keys) au noeud esclave ($ s) \ n " done echo " Complete! "
chomd + x ~ / sans mot de passe
usage
Utilisation Script:
~ / Sans mot de passe <password> <node1> <node2> <noeud ...>
Mot de passe: Tous les nœuds doivent être le même mot de passe.
Exemples spécifiques:
~ / sans mot de passe ' mypassword ' node1 node2 node3
Après l'exécution réussie, nous pouvons alors node1, entre le mot de passe sans node2.node3 connexion, et tel a été monté à bord node1, puis connectez-vous à node2, peut exécuter des commandes directement sur node1:
ssh node2
Il peut être.