{{tag>version-8-08}} {{tag>client_linux}}
====== Infrastructure de gestion des clients lourds ======
//Documentation en cours de rédaction//
===== Problématique =====
La problématique est la suivante:
* Soit un réseau de 200 postes clients (clients lourds)
* Nous voulons contrôler les mises à jour de ceux ci
* Nous ne voulons pas qu'ils se mettent à jour sur les dépôts officiels (ubuntu)
* Nous voulons pouvoir exécuter des commandes système lors du boot de chaque poste
===== Exécution de commandes au boot de chaque poste =====
À terme nous devrions avoir une interface web de gestion de tout cela, pour l'instant elle n'existe pas et vous trouverez donc ci-dessous toutes les informations techniques vous permettant de vous débrouiller sans interface ...
Pour lancer une commande lors du boot des postes lourds il suffit de créer des scripts dans une arborescence un peu spéciale: le /home/machines/
À l'heure actuelle (janvier 2009) tous les nouveaux postes fixés doivent avoir un compte machine automatiquement créé. Ce n'est pas le cas pour les postes qui existaient avant le développement de cette solution. Si vous voulez en bénéficier vous êtes invités à re-fixer les postes en question.
==== Pour tous les postes ====
Si vous voulez que tous les postes lourds lancent certaines commandes au boot vous êtes invités à modifier le script suivant **/home/machines/groups/default/horizon-autoboot/boot**
Par exemple si vous voulez que tous les postes fassent une mise à jour systématiquement au démarrage:
apt-get update
apt-get dist-upgrade -y --force-yes
==== Pour un groupe de postes ====
Cette fonctionnalité n'est pas encore développée mais ne saurait trop tarder.
==== Pour un poste particulier ====
Imaginez que vous voulez installer grisbi sur le poste lourd de la comptable de l'association (c'est un exemple), ce poste ayant été fixé en **postecompta1**, vous devrez alors éditer le fichier suivant **/home/machines/postecompta1/horizon-autoboot/boot** pour y mettre le code suivant:
add_application grisbi
Il nous reste encore beaucoup de choses à développer sur cette partie-la, à terme vous aurez un pseudo langage beaucoup plus simple d'utilisation et surtout la gestion d'un certain nombre de choses "autour", comme par exemple traiter les message d'erreurs, envoyer à l'administrateur le compte-rendu des opérations etc.
===== Dépôt APT local: Implémentation et configuration =====
Au niveau du serveur on installe le paquet suivant
apt-get install horizon-apt-move
Ce paquet installera en dépendance apt-move et fournira un fichier de configuration par défaut adapté à la problématique actuelle.
Le fichier de configuration est le suivant: /etc/apt-move.conf
APTSITES="/all/"
LOCALDIR=/var/www/intranet/horizon-apt
DIST=dapper
PKGTYPE=binary
FILECACHE=/var/cache/apt/archives
LISTSTATE=/var/lib/apt/lists
DELETE=no
MAXDELETE=20
COPYONLY=no
PKGCOMP=gzip
CONTENTS=yes
SIGNINGKEY=
===== Utilisation =====
Au niveau du serveur, tous les paquets deb qui se trouvent dans /var/cache/apt/archives seront copiés dans /var/www/intranet/horizon-apt et les fichiers spéciaux "debian" seront alors créés. Si vos postes clients n'ont plus que le serveur AbulÉdu comme source de mise à jour il faudra alors télécharger tous les logiciels depuis le serveur (commande apt-get -d avec l'option -d on télécharge les paquets mais on ne les installe pas) et ensuite les mettre à disposition du réseau local ...
Le premier lancement doit initialiser votre dépôt local
apt-move get
Ensuite, pour mettre à jour votre dépôt APT il vous suffit de lancer la commande suivante:
apt-move local
==== Scénario n°1 ====
Je veux installer xmoto sur les postes lourds mais pas sur le serveur.
* Sur le serveur
apt-get install -d xmoto
apt-move local
* Sur le poste lourd
apt-get install xmoto
==== Scénario n°2 ====
Je veux installer balsa sur le serveur mais pas sur les clients lourds
* Sur le serveur
apt-get install balsa
* Sur le poste lourd: on ne fait rien, comme balsa n'est pas une dépendance d'un autre paquet installé il ne risque pas de s'installer tout seul
==== Scénario n°3 ====
On veut avoir une mise à jour de OpenOffice.org sur le serveur mais pas sur les postes clients (même si ils lancent un apt-get dist-upgrade, il faut donc que le paquet openoffice.org ne soit pas disponible dans le dépot du serveur abuledu).
* Sur le serveur
apt-get dist-upgrade
cd /var/www/intranet/horizon-apt
find . -name openoffice*
{déplacer les fichiers de openoffice dans le répertoire /var/www/intranet/horizon-apt/temp}
apt-move localupdate
==== Scénario n°4 ====
J'ai un paquet spécial que je veux rendre disponible pour les postes du réseau local, ce paquet n'existe pas chez ubuntu, debian ou abuledu. Par exemple fond-ecrans-ville-albi-1.0.deb.
* Sur le serveur
apt-move movefile /home/administrateurs/guy.larrieu/fond-ecrans-ville-albi-1.0.deb
apt-move localupdate
* Sur le poste lourd
apt-get install fond-ecrans-ville-albi