Une vérification de disque peut rallonger énormément la durée du redémarrage. Vérifier :
df | awk '/^\/dev\/mapper/ {print $1}' | xargs -I {} sh -c 'echo {}; tune2fs -l {}' | awk '/^\/dev/ {print $1} /^Filesystem state/ {print $3, " ",$4}'
Ouvrir une action de maintenance sur https://status.chapril.org/ :
reboot cluster ;When is this maintenance scheduled for? ;When did this maintenance complete? ;Notifier les abonnés ?.Envoyer deux courriels séparés aux listes : chapril@april.org puis admins@chapril.org :
From: François Poulain <fpoulain@metrodore.fr> To: chapril@april.org Subject: [Chapril] Reboot du cluster Coucou, Je vais rebooter le cluster pour tenir compte du dernier upgrade noyal de sécurité. François -- François Poulain <fpoulain@metrodore.fr>
À l'aide du compte https://pouet.chapril.org/@chapriladmin :
Nous allons redémarrer les serveurs de notre Chapril https://chapril.org pour tenir compte des mises à jour. L'opération prendra environ 30 minutes, durée pendant laquelle les services seront indisponibles.
Vérifier qui est présent sur les VM :
cluster_guests=$(ssh root@persan.chapril.org "virsh list --name"; ssh root@korat.chapril.org "virsh list --name") for guest in $cluster_guests ; do echo "===== $guest =====" cmd='for i in $(ps auxwww|grep "\-bash" | awk '\''{ print $2 }'\'' ); do cat "/proc/$i/environ" ; done 2>/dev/null |strings |grep GIT_AUTHOR_NAME | sort | uniq' ssh root@$guest.cluster.chapril.org "$cmd" done
Pour le cas où un animateur travaillerait sur sa VM sans avoir vu ni le courriel ni status.chapril.org, envoyer un avertissement sur chaque machine.
./do.sh "wall 'Bonjour. Reboot SI Chapril à 13h15. Cpm.'"
chapril@muc.chapril.org.
Le script suivant peut être utilisé pour couper le monitoring sur les hôtes et propager les downtimes sur les services hébergés.
Les identifiants sont définis dans le fichier /etc/icinga2/conf.d/api-users.conf sur la machine admin.cluster.chapril.org.
L'utilitaire jo (paquet Debian) est requis.
curl -k -s -S -i -u ${ICINGA_USER}:${ICINGA_PASSWORD} -H 'Accept: application/json' \ -X POST 'https://icinga.chapril.org:5665/v1/actions/schedule-downtime' \ -d "$(jo -p \ pretty=true \ type=Host \ filter="match(\"persan*\", host.vars.hote)" \ all_services=true \ author="${GIT_AUTHOR_NAME}" \ comment="Persan upgrade maintenance" \ fixed=true \ start_time=$(date +%s -d "+0 hour") \ end_time=$(date +%s -d "+1 hour"))"
Noter la liste des VM actives pour comparer avec après le redémarrage.
virsh list
Arrêter les VM avant de redémarrer Persan.
cd /etc/libvirt/qemu virsh list --state-running --name | xargs -I{} virsh shutdown {}; watch virsh list
reboot
Attendre que le système ait fini de démarrer (état à running) :
watch "systemctl status | grep State | head -1"
Démarrer les VM :
template.
virsh list --state-shutoff --name | grep -v template | xargs -I{} virsh start {}; watch virsh list
virsh list
Et comparer à la liste avant reboot.
Parfois les VM démarre mais en statut degraded. Il convient de vérifier par une commande :
./do.sh "systemctl status | head -2"
Et pour les VM n'ayant pas un statut running, faire la commande suivante pour identifier le service en souffrance :
systemctl list-units
Si un problème subsiste alors les sondes devraient le faire apparaître dans Icinga. Vérifier que les alertes actives sont acceptables.
Éditer l'action de maintenance :
complete ;