Outils pour utilisateurs

Outils du site


admin:procedures:redemarrer-persan

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Dernière révisionLes deux révisions suivantes
admin:procedures:redemarrer-persan [2024/03/10 02:22] – supprimée - modification externe (Unknown date) 127.0.0.1admin:procedures:redemarrer-persan [2024/03/10 02:22] – ↷ Nom de la page changé de admin:procedures:redemarrer-maine à admin:procedures:redemarrer-persan pilou
Ligne 1: Ligne 1:
 +====== Rebooter Maine ======
  
 +===== Actions préalables =====
 +
 +==== Vérifier si un fsck va être déclencher ====
 +
 +Une vérification de disque peut rallonger énormément la durée du redémarrage. Vérifier :
 +<code>
 +df | awk '/^\/dev/ {print $1}' | xargs -I {} sh -c 'echo {}; tune2fs -l {}' | awk '/^\/dev/ {print $1} /^Filesystem state/ {print $3, " ",$4}'
 +</code>
 +
 +
 +==== Prévenir les usagers ====
 +
 +=== Sur status.chapril.org ===
 +
 +Ouvrir une action de maintenance sur https://status.chapril.org/ :
 +  * utiliser le modèle ''reboot cluster'' ;
 +  * renseigner ''When is this maintenance scheduled for?'' ;
 +  * ne pas remplir ''When did this maintenance complete?'' ;
 +  * cocher ''Notifier les abonnés ?''.
 +
 +=== Sur chapril@april.org ===
 +
 +Envoyer un courriel aux listes :
 +<code>
 +From: François Poulain <fpoulain@metrodore.fr>
 +To: chapril@april.org
 +Subject: [Chapril] Reboot du cluster
 +Date: Sun, 4 Mar 2018 15:25:18 +0100
 +Reply-To: chapril@april.org
 +Sender: chapril-request@april.org
 +X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
 +
 +Coucou,
 +
 +Je vais rebooter le cluster pour tenir compte du dernier upgrade
 +noyal de sécurité.
 +
 +François
 +
 +-- 
 +François Poulain <fpoulain@metrodore.fr>
 +</code>
 +
 +=== Sur XMPP chapril.org (commande à lancer sur xmpp.cluster.chapril.org) (Brouillon)===
 +
 +<note important>La commande ''xmpp_send_server_notice_all'' ne fonctionnait plus depuis un bon moment. Elle a normalement été corrigée le 24/12/2022, mais ce correctif n'a pas encore été testée.</note>
 +
 +Avertir les usagers du service XMPP de l'interruption, en lançant une annonce par le biais d'ejabberd, sur la machine xmpp. 
 +
 +<code>
 +xmpp_send_server_notice_all "Bonjour. Le serveur Chapril va subir un redémarrage à 13h15 et de ce fait les services seront interrompus durant 30 minutes. Chaprilement."
 +</code>
 +
 +=== Sur pouet.chapril.org ===
 +
 +À l'aide du compte https://pouet.chapril.org/@chapriladmin :
 +
 +<code>
 +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.
 +</code>
 +
 +=== Sur les machines ===
 +
 +Vérifier qui est présent sur les vm :
 +<code>
 +cluster_guests='admin bastion dns drop lamp libreoffice mail pad pouet sympa valise xmpp allo'
 +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
 +
 +</code>
 +
 +Pour le cas où un animateur travaillerait sur sa VM sans avoir vu ni le courriel ni https://status.chapril.org, envoyer un avertissement sur chaque machine. Le script ''do.sh'' se situe dans le sous dossier ''_scripts'' du dépôt ''packages-src''.
 +<code>
 +./do.sh "wall 'Bonjour. Reboot SI Chapril à 13h15. Cpm.'"
 +</code>
 +==== Couper le monitoring ====
 +
 +  * Mettre les hosts concernés en downtime
 +  * Propager les downtimes en questions sur les services des hosts.
 +
 +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 ''[[https://github.com/jpmens/jo|jo]]'' ([[https://packages.debian.org/bullseye/jo|paquet Debian]]) est requis.
 +<code>
 +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(\"maine*\", host.vars.hote)" \
 +        all_services=true \
 +        author="${GIT_AUTHOR_NAME}" \
 +        comment="maine upgrade maintenance" \
 +        fixed=true \
 +        start_time=$(date +%s -d "+0 hour") \
 +        end_time=$(date +%s -d "+1 hour"))"
 +</code>
 +==== Lister les VM actives ====
 +Noter la liste des VM actives pour comparer avec après le redémarrage.
 +<code>
 +# virsh list
 +</code>
 +
 +===== Arrêt de Maine =====
 +
 +Maine est lié à Coon par DBRD, il y a donc une procédure à suivre pour rebooter proprement.
 +
 +Arrêter les VM :
 +<code>
 +cd /etc/libvirt/qemu
 +for host in $(ls *xml | sed -e 's/.xml//g') ; do virsh shutdown $host ; done; watch virsh list
 +</code>
 +
 +ou bien :
 +
 +<code>
 +cd /etc/libvirt/qemu
 +for host in $(ls *xml | sed -e 's/.xml//g') ; do virsh shutdown $host ; done; sleep 20;
 +for host in $(ls *xml | sed -e 's/.xml//g') ; do virsh destroy $host ; done
 +</code>
 +
 +Arrêter DRBD :
 +<code>
 +umount /var/lib/libvirt/maine
 +drbdadm disconnect coon
 +drbdadm secondary maine
 +drbdadm disconnect maine
 +</code>
 +
 +Redémarrer :
 +<code>
 +reboot
 +</code>
 +
 +
 +===== Remise en marche de Maine =====
 +
 +Attendre que le système ait fini de démarrer (état à //running//) :
 +<code>
 +watch "systemctl status | grep State | head -1"
 +</code>
 +
 +Démarrer DRBD :
 +<code>
 +drbdadm primary maine
 +mount /var/lib/libvirt/maine
 +</code>
 +
 +Démarrer les VM :
 +<code>
 +cd /etc/libvirt/qemu
 +for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
 +</code>
 +Ne pas s'inquiéter : seuls les machines de maine vont démarrer ; sauf si /var/lib/libvirt/coon est monté, mais ce ne serait pas normal. 
 +==== Lister les VM actives ====
 +
 +  virsh list
 +
 +Et comparer à la liste avant reboot.
 +
 +==== Vérifier le bon démarrage des vm ====
 +
 +Parfois les vm démarre mais en statut « degraded ». Il convient de vérifier par un :
 +<code>
 +./do.sh "systemctl status | head -2"
 +</code>
 +
 +Et pour les vm n'ayant pas un statut « running »,
 +faire la commande suivante pour identifier le service en souffrance :
 +<code>
 +systemctl list-units
 +</code>
 +
 +==== Vérifier les sondes dans Icinga ====
 +
 +Si un problème subsiste alors les sondes devraient le faire apparaître dans Icinga.
 +Vérifier que les alertes actives sont acceptables.
 +
 +==== Clôturer l'action de maintenance status.chapril.org ====
 +
 +Éditer l'action de maintenance :
 +  * Status : sélectionner ''complete'' ;
 +  * When did this maintenance complete? : mettre la date et horaire de fin.
 +
 +==== Envoyer un message sur XMPP Chapril ====
 +
 +<code>
 +xmpp_send_server_notice_all "Annonce du Serveur" "L'opération de maintenance est terminée. En vous souhaitant, au nom de toute l'équipe du Chapril et de l'April, un agréable usage de nos services libres, éthique et loyaux. Chaprilement."
 +</code>
admin/procedures/redemarrer-persan.txt · Dernière modification : 2024/03/10 02:22 de pilou