Etincelles Administration Reseau
Un article de Bellinux.
Sommaire |
Etincelles Administration Reseau
Pour la gestion du parc, il serait bien de mettre en place un outils permettant de faire les mise à jour depuis un seul poste. Pour une meilleure stabilité des machines les mise à jour standards sont désactivées, et seront gérées uniquement par l'administrateur.
Pour se faire la commande dsh, permet d'acceder en ssh à plusieurs machines en parallèles et donc d'exécuter une seule commande pour quelle soit exécutée sur toutes les machines souhaitées.
# DSH - distributed shell (http://dsh.sf.net/ http://freshmeat.net/projects/dsh/) dsh is a program which runs a single command on multiple computers at the same time. It was designed as a cluster tool for beowulf-style supercomputers.
On installe dsh sur la machine administrateur
$ wget http://freshmeat.net/redir/dsh/41161/url_tgz/dsh-2.0.1.tar.gz $ tar -xvzf dsh-2.0.1.tar.gz $ cd dsh-2.0.1 $ make # make install
Maintenant il faut pouvoir se doter des droits administrateurs sur les machines clients sans pour autant devoir mettre le ou les mots de toutes les machines. On va créer une paire de clé rsa, permettant à l'utilisateur de la machine d'administration de se connecter sans mot de passe grâce à cette clé.
Concrètement cela consiste à définir une paire de clés, une publique que vous mettrez sur la ou les machines clientes, une privée que vous conserverez sur le poste d'administration.
# apt-get install openssh-server -y $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/bellinuxien/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/bellinux/.ssh/id_rsa Your public key has been saved in /home/bellinux/.ssh/id_rsa.pub. The key fingerprint is: 3f:21:0c:84:a5:ab:a5:ad:28:d8:0a:fc:2b:be:03:b4 bellinuxien@sirius
On a maintenant notre clé de l'utilisateur qui permettera de s'identifier sans mot passe sur la ou les machines, mais bien entendu il aura à entrer sa passphrase lors de la connection avec dsh.
Coté machines clientes
Il faut pour que l'on puisse s'identifier avec la clé par ssh, modifier la configuration du serveur ssh. Retirer le # devant AuthorizedKeysFile, comme ceci.
# nano /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
On ajoute la clé crée sur le poste qui va administrer la machine dans le repertoire /root/.ssh/authorized_keys de la ou les machine(s) cliente(s). On choisit ce repertoire et non celui de l'utilisateur, pour avoir accès en root.
On copie le contenu de la clé du poste d'administration.
$ less .ssh/id_rsa.pub
Et on la met dans /root/.ssh/authorized_keys de la ou les machine(s) cliente(s).
Dès lors on peut s'identifier sans mot de passe
$ ssh root@ipmachinecliente
Maintenant on peut considérer que la machine est prète, donc pour éviter de faire cette manip sur toutes les machines clientes, on procède à l'image du systeme pour maintenance seulement après cette étape. Comme ca toutes les machines auront la bonne config et la clé du poste d'administration.
Du coté poste d'administration
Pour faciliter le travail, nous allons créer deux fichiers (en raison des deux groupes d'utilisateurs identifiés), ces fichiers comprendront les ip des machines afin de s'identifier en une seule fois
# nano /etc/dsh/group/machinespubliques root@192.168.1.110 root@192.168.1.111 root@192.168.1.11....
# nano /etc/dsh/group/machinesemployees root@192.168.1.120 root@192.168.1.121 root@192.168.1.12....
Voici un exemple d'utilisation de dsh qui met à jour la liste logiciel et install un programme sur toutes les machines publiques
$ dsh -g machinespubliques -r ssh "apt-get update && apt-get install cheese -y"
Nous sommes arrivé à nos fins, l'outil est mis en place pour gérer en parallèle l'administration des machines.
Automatisation de certaines taches
Maintenant, pour différentes manipulations telle la sauvegarde ou autres, ces manipulations devraient être effectuées en dehors des heures de travail, pour ne pas gêner entre autre.
Le principe serait donc de mettre en route les machines à une certaine heure, faire le backup, et les éteindre.
Pour arriver à cela il faut un outil de reveil que l'on installe sur le poste d'administration.
# apt-get install wakeonlan # mkdir /home/bellinuxien/wakeonlan
et on ajoute la liste des adresses mac des machines à reveiller
# nano /home/bellinuxien/wakeonlan/macaddress 00:0D:60:06:50:2F 00:09:6B:1C:0A:90 00:e0:18:ac:64:74 00:e0:18:ac:62:63 00:E0:18:AC:64:7A 00:E0:18:AC:E5:C1
Maintenant on peut faire un test
$ wakeonlan -f /home/bellinuxien/wakeonlan/macaddress
Toutes ces machines s'allument (on aura pris soin d'activer dans le bios des machines cette option)
Pour automatiser le tout, on ajoute un cron sur le poste administrateur à une heure dite exemple 1h00 du matin
$ wakeonlan -f /home/bellinuxien/wakeonlan/macaddress
À 1h10, un autre cron qui lance le bakcup, voir http://wiki.bellinux.org/index.php/EtincellesBackup_backups
Et à 1h45, un dernier qui éteind les machines
$ dsh -g machinespubliques -r ssh "shutdown -h now"
