Linux things 🐧

un blog sur les technologies des logiciels libres et autres digressions

gestion de la mise Ă  jour de serveurs Linux

Sun, 01 May 2016 12:59:20 +0200
# linux  

[update 05.2024] Je vois rĂ©guliĂšrement des lectures de cette page qui est obsolĂšte. A ce jour pour la gestion de vos mises Ă  jour je vous conseille l’usage d’un outil comme Rundeck

post basé sur :

http://korben.info/apt-dater.html
https://www.abyssproject.net/2014/09/apt-dater-mettre-jour-vos-serveurs/
http://irrational.ca/remote-debian-upgrades-using-apt-dater

L’objectif de cet article est de prĂ©senter l’outil apt-dater afin de permettre l’assistance du suivi des mises Ă  jour de ses serveurs qui utilisent apt-get/yum/rug (Debian, Centos/Fedora, SuSe).
En effet il est parfois souhaitable de ne pas automatiser entiĂšrement les mises Ă  jour via un cron. apt-dater laisse le choix Ă  l’administrateur de mettre Ă  jour tous les paquets d’un serveur ou que certains. Il permet de le faire Ă©galement sur un groupe de serveurs, ainsi que d’afficher les serveurs non Ă  jour et sur quels paquets. In fine il dĂ©clenche uniquement les mises Ă  jour via des raccourcis clavier. Enfin il permet d’afficher un rapport des mises Ă  jour, le tout sans devoir installer un outil web mais via un outil en console (Linux/OSX) sur son poste de travail.

On crĂ©Ă© une clef ssh dĂ©diĂ©e sur la machine de l’admin. Ma mĂ©thode est d’utiliser une clef dĂ©diĂ©e, une autre sera d’utiliser un compte utilisateur dĂ©diĂ© sur la machine de l’admin ; dans tous les cas il n’est pas conseillĂ© d’utiliser une clef associĂ©e au compte root des serveurs.

ssh-keygen -f .ssh/id_rsa_apt-dater

Ensuite, installez apt-dater pour Linux :

apt-get -y install apt-dater screen

Pour OSX

brew install apt-dater

Pour un nombre conséquent de serveurs il vaut mieux automatiser les tùches suivantes via puppet/chef/ansible/saltstack/cfengine/


On créé un compte apt-dater sur tous les serveurs à administrer.

sudo adduser --system --group apt-dater && sudo chsh -s /bin/bash apt-dater && sudo mkdir /home/apt-dater/.ssh && sudo chown apt-dater:apt-dater /home/apt-dater/.ssh && sudo passwd apt-dater

Copie la clef publique.

ssh-copy-id -i .ssh/id_rsa_apt-dater.pub apt-dater@IP

Suppression du mot de passe du compte apt-dater.

sudo passwd -dl apt-dater

Lancer visudo pour ajouter cette ligne. Elle fourni les droits root Ă  apt-dater sur la commande apt. (indiquer /usr/bin/yum ou /usr/bin/rug pour une CentOS ou une SuSe)

apt-dater ALL=NOPASSWD: /usr/bin/apt-get, /usr/bin/aptitude

Installer le client apt-dater-host.

sudo apt-get -y install apt-dater-host screen

Sur le poste administrateur aprÚs avoir lancé une fois apt-dater, éditer le fichier _.config/apt-dater/hosts.conf _ et regrouper les serveurs par thÚmes ou localisation

[Backup] 
Hosts=apt-dater@node1.backup.com;apt-dater@node2.backup.com
[Monitoring]
Hosts=apt-dater@monitoring.com
[Webservers] 
Hosts=apt-dater@web.com;apt-dater@web2.com

Editer le fichier .config/apt-dater/apt-dater.conf pour lui indiquer la clef ssh Ă  utiliser

[SSH]
SSH binary
Cmd=/usr/bin/ssh
OptionalCmdFlags=-t
SpawnAgent=true
AddKeys=/Users/fredix/.ssh/id_rsa_apt-dater
	
[SFTP binary]
SFTPCmd=/usr/bin/sftp -i .ssh/id_rsa_apt-dater

Lancer api-dater. la touche « ? » affiche les raccourcis disponible.
On se déplace avec les flÚches directionnelles vers le serveur cible , puis :

  • u : met Ă  jour un serveur entier
  • c : lance une connexion ssh vers le serveur
  • C: lance une connexion sftp
  • e : affiche les problĂšmes de mise Ă  jour
  • i : installe un paquet sur le serveur sĂ©lectionnĂ©, ou les serveurs taguĂ©s

Les flags Ă  gauche de chaque serveur indique son status. Il ne manque que l’uptime et la charge cpu/mĂ©moire :/

Il ne reste qu’à distribuer la clef privĂ© id_rsa_apt-dater Ă  l’équipe admin.