Etincelles Administration Reseau

Un article de Bellinux.

Jump to: navigation, search

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"