version-11-08 client_linux
Infrastructure de gestion des clients lourds
Problématique
Les problématiques que vous pouvez éventuellement avoir:
- 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
- Nous voulons pouvoir gérer les postes globalement (tous) ou par groupe ou individuellement
- etc.
En bref, comment le système AbulÉdu peut permettre d'industrialiser le déploiement, la gestion et la maintenance d'un parc conséquent de machines …
Exécution de commandes au boot de chaque poste
Pour lancer une commande lors du boot des postes lourds il suffit de créer des scripts dans une arborescence spéciale: le /home/machines/
À l'heure actuelle tous les nouveaux postes fixés doivent avoir un compte machine automatiquement créé.
Chaque fois que vous avez un dossier ou un fichier qui comporte le mot clé “local” c'est qu'il permet de faire une spécificité locale … ne modifiez donc pas les fichiers/répertoires qui ne comportent pas ce mot clé.
Pour tous les postes
Ça se passe dans /home/machines/groups/default/horizon-apt/
- boot-local_lucid.d → spécificités locales pour les clients dont la distribution de base est lucid (client 11.08)
- boot-local_trusty.d → spécificités locales pour les clients dont la distribution de base est trusty (client 15.08)
- boot-local_bionic.d → spécificités locales pour les clients dont la distribution de base est bionic (client 19.08)
- boot_lucid.d → pour les clients dont la distribution de base est lucid (client 11.08)
- boot_trusty.d → pour les clients dont la distribution de base est trusty (client 15.08)
- boot_bionic.d → pour les clients dont la distribution de base est bionic (client 19.08)
Exemple de code possible pour faire une opération spéciale sur les postes clients 15.08 (exemple association des fichiers PDF avec une application spéciale)
Fichier /home/machines/groups/default/horizon-apt/boot-local_trusty.d/40-pdf
echo "40-pdf Start" if [ -f /usr/share/applications/defaults.list ]; then sed -i "s/epdfview.desktop/atril.desktop/g" /usr/share/applications/defaults.list fi echo "40-pdf End"
Pour un groupe de postes
Les groupes de postes étant implémentés vous avez la possibilité de créer une arborescence pour gérer d'une manière centralisée ces machines … par exemple pour le groupe “m75” : /home/machines/groups/m75/horizon-apt/
- boot-local_lucid.d
- boot-local_trusty.d
- boot-local_bionic.d
Note: il n'y a que des “-local” du fait que les groupes de postes ne peuvent-être que locaux …
Pour un poste particulier
Vous avez la possibilité de créer une arborescence pour gérer d'une manière centralisée une machine … par exemple pour le poste “ghl03.vlan933” : /home/machines/ghl03.vlan933/horizon-apt/
- boot-local_lucid.d
- boot-local_trusty.d
Dépôt APT local: Implémentation et configuration
Le serveur AbulÉdu est déjà “relais apt” pour les postes clients du réseau.
Utilisation pour les postes clients "lucid" (11.08)
Au niveau du serveur, tous les paquets deb qui se trouvent dans /var/cache/apt/archives seront copiés dans /home/webs/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 …
Ensuite, pour mettre à jour votre dépôt APT il vous suffit de lancer la commande suivante:
horizon-reprepro
Scénario n°1
Je veux installer xmoto sur les postes lourds mais pas sur le serveur.
- Sur le serveur je télécharge juste le paquet
apt-get install -d xmoto
- Sur le poste lourd manuellement
apt-get install xmoto
- Sur le poste lourd automatiquement lors du prochain boot
touch /home/machines/groups/default/horizon-apt/applications.add/xmoto horizon-computers-force-upgrade-on-next-boot
Regardez par exemple comment on déploie aseba ou kdenlive sur les réseaux AbulÉdu ayant un serveur en version 11.08 (téléchargez les scripts et analysez-les)…
Utilisation pour les postes clients "trusty" (15.08)
Si le “paquet” logiciel est disponible sur les dépôts de la distribution un simple “touch /home/machines/groups/default/horizon-apt/applications.add/nom_du_paquet” devrait être suffisant.
Si vous voulez déployer un paquet qui n'existe pas sur les dépôts officiels il faudra alors suivre la procédure suivante:
- 1. copier votre paquet deb dans le répertoire suivant sur le serveur : /home/webs/intranet/horizon-apt/temp/trusty/cache/archives/
- 2. lancer la commande suivante en root sur le serveur : /usr/sbin/horizon-apt-download-pc64-trusty.sh
- 3. faire un touch du nom du paquet dans l'aborescence en fonction de là ou vous voulez le déployer, par exemple touch /home/machines/groups/default/horizon-apt/applications.add/nom_du_paquet
- 4. forcer la mise à jour des postes en lançant en root sur le serveur : horizon-computers-force-upgrade-on-next-boot
Utilisation pour les postes clients "bionic" (19.08)
Si le “paquet” logiciel est disponible sur les dépôts de la distribution un simple “touch /home/machines/groups/default/horizon-apt/applications.add/nom_du_paquet” devrait être suffisant.
Si vous voulez déployer un paquet qui n'existe pas sur les dépôts officiels il faudra alors suivre la procédure suivante:
- 1. copier votre paquet deb dans le répertoire suivant sur le serveur : /home/webs/intranet/horizon-apt/temp/bionic/cache/archives/
- 2. lancer la commande suivante en root sur le serveur : /usr/sbin/horizon-apt-download-pc64-bionic.sh
- 3. faire un touch du nom du paquet dans l'aborescence en fonction de là ou vous voulez le déployer, par exemple touch /home/machines/groups/default/horizon-apt/applications.add/nom_du_paquet
- 4. forcer la mise à jour des postes en lançant en root sur le serveur : horizon-computers-force-upgrade-on-next-boot