Procédure de restauration de sauvegarde sur git.afpy.org

This commit is contained in:
Julien Palard 2022-11-29 16:46:16 +01:00
parent 4b4e7c352a
commit f9652e04fa
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
2 changed files with 72 additions and 11 deletions

View File

@ -125,29 +125,89 @@ Une fois la mise à jour terminée, il est de bon goût de mettre à jour
`gitea_version` dans `gitea.yml`.
### Sauvegardes
Les données sont sauvegardées automatiquement via rsync sur
`backup1.afpy.org` (voir `backup.yml`).
Côté VPS Gandi on a aussi un snapshot du volume tous les jours.
### Restaurer une sauvegarde
La machine est sauvegardée automatiquement sur `backup1.afpy.org` (voir `backup.yml`).
Procédure testée le 2022-11-29 par [mdk](https://git.afpy.org/mdk).
Voici la procédure pour restaurer une sauvegarde sur une nouvelle
machine « from scratch ».
#### Commander une nouvelle machine
Typiquement chez Gandi une `V-R1: 1 CPU · 1 GB RAM`, avec une Debian
11, n'oubliez pas d'y mettre une clé SSH.
#### Nommer la machine
Typiquement `gitea2.afpy.org`, configurer les DNS, en profiter pour
réduire le TTL de git.afpy.org puisqu'il faudra le changer à la fin.
#### Autoriser à se ssh en root
ssh debian@giteatest.afpy.org sudo cp /home/debian/.ssh/authorized_keys /root/.ssh/
#### Ajouter la machine dans l'inventaire Ansible
Ça devra donc ressembler à :
```ini
[gitea]
gitea2.afpy.org
```
On peut probablement supprimer l'autre qui ne marche plus...
#### Lancer Ansible
`ansible-playbook gitea.yml`
#### rsync la sauvegarde
J'utilise du `ssh agent forwarding`, si vous n'en utilisez-pas vous
aurez peut-être à rsync sur votre machine d'abord.
Adapté de : https://docs.gitea.io/en-us/backup-and-restore/#restore-command-restore
Les sauvegardes sont sur `backup1.afpy.org` dans `/srv/backups/`,
copiez-les dabord vers `gitea1.afpy.org`.
Une fois la sauvegarde rappatriée (`gitea.zip` ET `gitea.sql`) :
Donc, depuis gitea2:
cd /var/lib/gitea/
rsync -vah backup1.afpy.org:/srv/backups/rsnapshot_afpy/daily.0/git.afpy.org/var/backups/gitea/ ./
systemctl stop gitea
rm -fr data custom
unzip gitea.zip
rm gitea.zip
mv app.ini /etc/gitea/app.ini
rsync -vah --delete data/ /var/lib/gitea/data/
rsync -vah --delete repos/ /var/lib/gitea/data/gitea-repositories/
rsync -vah --delete custom/ /var/lib/gitea/custom/
chown -R git:git /var/lib/gitea/
mv repos data/gitea-repositories
chown -R git:git .
sudo --user git psql -d gitea < gitea.sql
rm gitea.sql
Puis passer le playbook `gitea.yml` pour remettre les bons droits partout (le playbook démarrera aussi `gitea`).
#### Tester et mettre à jour git.afpy.org
Un rapide test peut être effectué via :
curl --resolve git.afpy.org:IP_DE_LA_NOUVELLE_MACHINE https://git.afpy.org
Puis il faut mettre à jour le CNAME de git.afpy.org pour le faire pointer vers la nouvelle machine.
# Ansible
On utilies ces rôles Ansible :

View File

@ -22,8 +22,9 @@
virtualenv_command: /usr/bin/python3 -m venv
virtualenv: /root/certbot-venv/
name:
- certbot
- certbot-plugin-gandi
- "certbot<2" # See https://github.com/certbot/certbot/issues/9485
- "acme<2" # See https://github.com/certbot/certbot/issues/9485
- "certbot-plugin-gandi"
- name: Setup Gandi credentials
copy: