Magazine High tech

[Administration] Hé moi zem pa fair la mm choz 10 foi

Publié le 11 juin 2011 par Lmns972 @guestblog

Dans notre modeste vie d'admin sys nous sommes souvent amenés à exécuter les mêmes commandes sur de multiples machines de la même plateforme .

L'utilisation d'une clé ssh pour l'authentification est un grand classique afin de se passer du mot de passe . Mais lorsqu'il s'agit de devoir taper une commande , ont se connectent à l'ensemble des machines .

Il serait beaucoup plus facile d'avoir un script qui se connecte à "n" machines et exécute une ou "x" commandes sur chacunes d'entre elles.

Pour cela on aura besoins du paquet "expect" . Commençons par l'installer .

  1. /*
  2. apt-get install expect
  3. */

En gros "expect" est un outil qui permets d'intéragir avec des programmes interactifs . Prenons le cas de ssh .
Quand vous vous connecter à une machine distante pour la 1ere fois il vous est demandé si oui ou non vous voulez vous connecter à cette machine .
Eh c'est la que expect intervient comme le montre le script ci-dessous .

  1. /*
  2. #!/usr/bin/expect -f
  3.  
  4. set pass "votre_pass"
  5. set serveur [lrange $argv 0 0]
  6. set timeout -1
  7. spawn ssh root@$serveur
  8. expect {
  9. "*?connecting*" { send -- "yes\r"}
  10. "*?assword:*" {send -- "$pass\r"}
  11. }
  12. expect "*?:*"
  13. #send -- "df -h\r"
  14. send -- "uptime\r"
  15. send -- "exit\r"
  16. expect eof
  17. */

Toujours pour les fainéants

  1. /*
  2. #!/bin/sh
  3.  
  4. for machines in VM1 VM2 ;
  5. do
  6.  
  7. ./execution-a-distance.sh "$machines"
  8.  
  9. done
  10. */

Bien-sur ceci n'est qu'une ébauche du potetienls de cet outil . Qui je pense changera certaines de vos habitudes. Sauf si bien sur vous aviez d'autres méthodes que je ne connaisse.
Merci à momo pour cette découverte

;)


Retour à La Une de Logo Paperblog

A propos de l’auteur


Lmns972 3 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte