Gestion et mise à jours de 300 postes linux

Bonjour à tous voila je voudrais savoir comment vous ferez pour gérer 300 postes linux (essentiellement 90 % ubuntu et 10 %debian)
pour la gestion de parc
j’utiliserais surement OCS pour inventaire et mise à jour appli et GLPI pour ticketing et Zabbyx pour le monitoring
Mais comment faire pour les mise à jour système faire un apt-get update sur chaque et bien sur impensable
alors j’aimerais quelque solution merci

Cron-apt est un bon outil

[quote=“djbad”]Bonjour à tous voila je voudrais savoir comment vous ferez pour gérer 300 postes linux (essentiellement 90 % ubuntu et 10 %debian)
pour la gestion de parc
j’utiliserais surement OCS pour inventaire et mise à jour appli et GLPI pour ticketing et Zabbyx pour le monitoring
Mais comment faire pour les mise à jour système faire un apt-get update sur chaque et bien sur impensable
alors j’aimerais quelque solution merci[/quote]

Soit tu utilise le dépôts Debian de ton choix et tu vérifie bien chaque mise à jour avant application via des outils tel que :

Rundeck
blog.admin-linux.org/administrat … ir-sa-v2-0

ou bien encore

DS Scheduler
blog.admin-linux.org/administrat … ceur-libre

Sur une gestion de deux salles de 24 machines (soit 48 machines), toutes des clones.

  • Un allumage par réseau (WOL) activé (permet un accès le soir de chez soi).
  • Une machine test permettant de controlr l’effet des mises à jour ou des installations
  • Un accès ssh par clef en root sur les machines.
  • Un script repercutant séquentiellement une commande sur toutes les machines (/etc/udhcpd.conf contient les IP des machines)

#!/bin/bash export TOTAL=$(grep -A 1 MACHINE /etc/udhcpd.conf | grep static | awk '{print $3}' | sed -e '1,$s/192.168.1.//') for i in $TOTAL; do if ping -c 1 -W 1 -q 192.168.1.$i > /dev/null ; then echo $i ssh root@192.168.1.$i "$*" else echo $i" "eteint fi done

  • Idem mais en parallèle

#!/bin/bash export TOTAL=$(grep -A 1 MACHINE /etc/udhcpd.conf | grep static | awk '{print $3}' | sed -e '1,$s/192.168.1.//') for i in $TOTAL; do echo $i ssh root@192.168.1.$i "$* > /home/boisson/forall/Out-$i 2>&1" & done

Le tout est ce que j’ai trouvé de plus efficace.

J’avais essayé pendant longtemps un dépot local avec un paquet contenant les instructions de mises à jour mais cela s’est révélé pénible à la longue même si ça conservait l’historique des modifications.

Le coté rustique peut ne pas convenir à tout le monde.

Merci ça permet de voir plusieurs angles
N’hésitez pas en rajouter ce qui peut être très instructif pour moi et pour tout le monde

Il existe des outils pour automatiser certaines opérations sur un parc de machines : Puppet, Chef (dispos dans Debian), Ansible (dans les backports pour Wheezy), Salt…

linuxfr.org/forums/general-cher … rc-ansible

voir aussi
en.wikipedia.org/wiki/Compariso … t_software

Perso j’utilise beaucoup unattended-upgrades pour tout ce qui est sécurité surtout.

Après, le reste, ansible, plus ou moins automatiquement.

Effectivement, c’est plutôt intéressant.

Jusqu’à présent, j’utilise :

[code]#!/bin/sh
#======= crontab =========================
echo “05 12 * * * root /root/maj.sh &” >> /etc/crontab
echo “05 20 * * * root /root/maj.sh &” >> /etc/crontab
echo “05 22 * * * root /sbin/shutdown -h now” >> /etc/crontab
#======= crontab =========================

#======= MAJ =========================
#!/bin/bash
#le script va dormir un nombre de seconde aléatoire entre 1 secondes et 54 minutes.
echo “Debut-de-la-Mise-a-jour-le-”date "+%Y-%m-%d-%r" >> /var/log/maj.log
sleep $(((($RANDOM)+(10))/(10)))
apt-get update -y
sleep 5
apt-get update -y
sleep 5
apt-get upgrade -y
echo “Fin-de-la-Mise-a-jour-le-”date "+%Y-%m-%d-%r" >> /var/log/maj.log
echo “=============================================” >> /var/log/maj.log
exit 0
#======= MAJ =========================[/code]

A+

ansible a l’air sympa: sysnove.fr/blog/2014/08/mis … sible.html

clusterssh + probe nagios pour savoir les mises à jour (et faire les spécifiques manuellement)