| Howto - auto-maintain |
| Fonctionnement des scripts d'administration automatiques et mise à jour automatique des packages |
1.Introduction
2.Scripts d'administration automatiques
2.1. Architecture
2.2. Faire une archive de maintenance et la mettre en place sur le serveur
2.2.1. structure de l'archive
2.2.2. Mettre en place le script sur le serveur
2.2.3. Pour la mise en place d'un PingOO
3.Mise à jour automatique des packages
Cette documentation est en cours de réalisation.
pingoo_am est script qui permet de lancer la maintenance automatique de la machine, il lance pingoo_am-admin puis pingoo_am-update, si chacune des fonctionnalités ont été activées dans le PingOO.conf. Aucune de ces deux fonctionnalités est obligatoire pour que PingOO fonctionne, mais il est préférable de mettre au moins la mise à jour des packages de façon à avoir les dernièeres versions et surtout celle concernant la sécurité. Un rapport est envoyé systématiquement après chaque "administration automatique" et après chaque "mise à jour automatiques des packages". Ces rapports par mail donnent l'état de chaque opération et indiquent les messages d'erreur s'il y en a.
pingoo_am-admin est un script qui permet de lancer des scripts d'administration de la machine (par exemple, si vous désirez changer le resolv.conf de toutes les machines de type igwan par exemple, ou faire un script pour une machine en particulier).
pingoo_am-update gère l'upgrade des packages.
Pour activer les scripts d'administration il faut mettre yes dans la clé /auto-maintain/admin/active
Du côté serveur il y a une "repository" de script de maintenance. Dans le PingOO.conf est spécifié l'endroit où se le pingoo doit aller chercher les scripts et par quelle méthode (ftp ou http supportés), nous avons donc côté PingOO les élements suivants :
- le nom du serveur (ex : automaintain.pingoo.org)
- la racine où se trouve l'ensemble des scripts (ex: /PingOOV3/automaintain
- le protocole utilisé pour récupérer les fichiers (ftp ou http)
- le nom du fichier index contenant la liste des versions (le fichier contient dans l'odre de la versoin la plus récente à la plus ancienne) (ex: index.adm)
- login et password pour l'authentification (anonymous et email si une connexion sans réel mot de passe)
Le schéma suivant symbolise le fonctionnement des scripts d'administration :
- téléchargement du fichier index.adm de la section (common, igwan, self etc.) en cours.
- comparaison des version du fichier idex.adm avec la version courante
- téléchargement des archives de maintenances qui n'ont pas été effectuées
- pour chaque archive de la plus ancienne à la plus récente desarchivage (dans le répertoire /var/lib/PingOO/auto-maintain/admin/section/version)
- et exécution du script run dans la foulée
A chaque script de maintenance nous avons un répertoire qui correspond au numéro de version et un script de maintenance qui s'appelle run et qui doit être exécutable. L'archive peut contenir d'autres fichiers de donner ou d'autres scripts,mais seul le script run est exécuté par pingoo_am-admin.
Voici un exemple d'un script en version 0.1 :
. `-- 0.1 |-- data | `-- data.bin |-- myscript | `-- testdns `-- run
Tout d'abord il faut mettre l'archive au format version.tgz (ex: 0.1.tgz), et elle doit inclure le répertoire correspondant au numéro de version, exemple :
node11:/var/ftp/ftp.pingoo.org/PingOOV3/automaintain/pc100.seb.tst# tar ztvf 0.1.tgz drwxr-xr-x ftppingoo/ftppingoo 0 2003-10-29 11:27:59 0.1/ -rwxr-xr-x ftppingoo/ftppingoo 1056 2003-06-10 17:11:07 0.1/run drwxr-xr-x root/root 0 2003-10-29 11:27:50 0.1/data/ -rw-r--r-- root/root 0 2003-10-29 11:27:30 0.1/data/data.bin drwxr-xr-x root/root 0 2003-10-29 11:28:13 0.1/myscript/ -rw-r--r-- root/root 0 2003-10-29 11:28:13 0.1/myscript/testdns
Ce qu'il est important de vérifier et mettre en place :
- Vérifier dans le PingOO.conf les versions pour les subsections common, cs,fs, et igwan, qu'elles soient bien à la version correspondante sur la repository.
- Créer un répertoire dans la repository qui corresponde au fqdn de la machine (coté wan : hostname.domain_ext, ex: pingoo.demo.cri74.org). Ce répertoire doit contenir un fichier index.adm avec la version 0.0 dedans.
La mise à jour des packages se fait en trois parties :
- un
apt-get updatepermet la mise à jour de la liste des packages- un
apt-get install pingoo-versioninstalle les fichiers de debconf (/var/cache/deconf/templates.dat et /var/cache/deconf/config.dat) évitant aux packages qui vont s'installer par la suite de poser des questions (les valeurs par défaut sont contenus dans les fichiers installés)- un
apt-get -y distupgradepermtet de mettre à jour l'ensemble des packages (y compris le kernel)- enfin on termine par un nettoyage des packages téléchargés
Une gestion des timeout est faite pour chacune de ces actions (cf le pingOO.conf pour les valeurs)