diff --git a/README.md b/README.md index 62d6279..115f593 100644 --- a/README.md +++ b/README.md @@ -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 d’abord 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 : diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml index c862bc9..4423144 100644 --- a/roles/nginx/tasks/main.yml +++ b/roles/nginx/tasks/main.yml @@ -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: