Outils pour utilisateurs

Outils du site


admin:procedures:restaurer_machine

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édentes Révision précédente
admin:procedures:restaurer_machine [2021/01/02 18:34]
fpoulain [Télécharger un tarball de la VM]
admin:procedures:restaurer_machine [2021/05/09 16:53]
rh ajout exemple de procédure
Ligne 107: Ligne 107:
  
 <note tip>​[[https://​admin.april.org/​doku.php?​id=sysadm:​reconstruction_d_une_vm | L'​expérience ]] montre que couper le ''​cron''​ est une bonne pratique. Il ne suffit pas de regarder ''/​etc/​cron.d''​ : la configuration totale de ''​cron''​ peut être bien plus sioux.</​note>​ <note tip>​[[https://​admin.april.org/​doku.php?​id=sysadm:​reconstruction_d_une_vm | L'​expérience ]] montre que couper le ''​cron''​ est une bonne pratique. Il ne suffit pas de regarder ''/​etc/​cron.d''​ : la configuration totale de ''​cron''​ peut être bien plus sioux.</​note>​
 +
 +===== Exemple de procédure =====
 +
 +Ceci est un exemple de procédure appliquée pour faire un test de restauration de la VM //pad// dans le cadre du ticket de test de reprise [[https://​agir.april.org/​issues/​2408|#​2408]].
 +Il est basé sur les éléments ci-dessus mais j'ai utilisé un LiveCD plutôt que de monter les qcow sur l'​hôte.
 +
 +  - Cloner la VM //modèle//
 +  - Sur la VM crée, configurer la même adresse mac que la machine à restaurer. Dans le cas d'un test de restauration,​ suivre la procédure de création de VM pour faire la config réseau.
 +  - Démarrer la VM et mettre à jour
 +  - Modifier la configuration de la VM pour qu'​elle démarre sur un livecd Debian. Il faut arrêter la VM et pas seulement redémarrer pour que cette modif soit prise en compte
 +  - Une fois sur le livecd, installer les outils nécessaires et configurer un serveur SSH : <code bash>
 +apt update
 +apt install lvm2 openssh-server
 +</​code>​
 +   - Monter la partition root (utiliser pvscan/​vgscan pour trouver les path à utiliser) : <code bash>
 +vgchange -a y
 +mount /​dev/​modele-vg/​root /mnt/
 +</​code>​
 +   - Récupérer les clés SSH depuis la partition root et démarrer sshd : <code bash>
 +mkdir /root/.ssh
 +cp /​mnt/​etc/​ssh_authorized_keys/​root /​root/​.ssh/​authorized_keys
 +systemctl start sshd  ​
 +</​code> ​
 +  - Se connecter en SSH
 +  - Générer une clé SSH pour l'​accès aux sauvegardes : <code bash>
 +ssh-keygen -t ed25519
 +</​code>​
 +  - Sur felicette autoriser cette clé à accéder aux sauvegardes de la VM à restaurer : <code bash>
 +vi /​etc/​ssh/​authorized_keys/​backup
 +</​code>​
 +  - Toujours sur felicette, identifier le backup qui sera utilisé : <code bash>
 +export BORG_REPO=/​srv/​backups/<​SERVICE-NAME>​.cluster.chapril.org/​
 +borg list
 +</​code>​
 +  - De retour sur le SSH du livecd, tester si la connexion vers le serveur fonctionne bien : <code bash>
 +ssh -p 2242 backup@backup.chapril.org true
 +</​code>​
 +  - Récupérer le fichier _/​etc/​fstab_ pour identifier comment le serveur était partitionné. Se poser la question de savoir s'il faut repartionner de façon identique : <code bash>
 +BORG_RSH="​ssh -p 2242 -A" borg extract backup@backup.chapril.org:/​srv/​backups/<​SERVICE-NAME>​.cluster.chapril.org::​2021-XX-XXTXX:​XX:​XX etc/fstab
 +</​code>​
 +  - Procéder au partitionnement et monter les partitions dans en suivant la bonne arborescence,​ dans /mnt par exemple
 +  - Procéder à la récupération des fichiers, il faut se cd dans le dossier puis exécuter la commande, par exemple : <code bash>
 +BORG_RSH="​ssh -p 2242 -A" borg extract backup@backup.chapril.org:/​srv/​backups/<​SERVICE-NAME>​.cluster.chapril.org::​2021-XX-XXTXX:​XX:​XX
 +</​code>​
 +  - S'il sagit d'un test de restauration,​ s'​assurer qu'il ne reste pas de traces de l'​ancienne IP dans la configuration. Par exemple dans ''/​etc/​firehol/​firehol.conf''​
 +  - Redémarrer la VM sur son disque
 +  - S'il y a une base de données, il faudra la restaurer, par exemple pour pad : <code bash>
 +# Recréer le cluster (fichiers vides à la restauration) :
 +pg_lsclusters
 +pg_dropcluster --stop 11 main
 +pg_createcluster --start 11 main
 +systemctl restart postgresql@11-main.service
 +
 +# Restaurer les fichiers SQL
 +mv /​var/​backups/​pgsql/​*.sql.bz2 /​usr/​lib/​postgresql/​
 +su - postgres
 +bzip2 -c -d postgres.sql.bz2 | psql postgres
 +bzip2 -c -d template1.sql.bz2 | psql template1
 +createdb etherpad
 +createuser etherpad
 +bzip2 -c -d etherpad.sql.bz2 | psql etherpad
 +rm etherpad.sql.bz2 postgres.sql.bz2 template1.sql.bz2
 +</​code>​
 +  - Pour un test de restauration,​ il est possible d'​utiliser ssh pour faire un tunnel et tester le service. Par exemple pour pad, l'​application est alors accessible sur http://​127.0.0.1:​9001/​ : <code bash>
 +ssh -L 9001:​127.0.0.1:​9001 root@test-backup.cluster.chapril.org
 +</​code>​
admin/procedures/restaurer_machine.txt · Dernière modification: 2021/05/09 16:53 par rh