Gitea: documenting the hardware, backup, restore, and upgrade.

This commit is contained in:
Julien Palard 2022-10-15 18:34:20 +02:00
parent b27195c0e7
commit 7c0feb42e8
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
4 changed files with 68 additions and 11 deletions

View File

@ -95,6 +95,53 @@ Julien Palard a aussi un rsnapshot sur `silence.palard.fr`, vérifié en octobre
- `/srv/backups/rsnapshot/daily.0/deb.afpy.org/var/discourse/shared/standalone/backups/default/` contient bien les sauvegardes d'octobre 2022.
## gitea1.afpy.org
♥ Machine sponsorisée par Gandi ♥
Cest un « Gandi VPS V-R1 » 1 CPU, 1 GB RAM, 25 GB disk.
Cest la machine derrière `git.afpy.org`, déployée via `gitea.yml`.
### Mise à jour
Pour faire une mise à jour, se connecter en root à la machine puis exécuter :
systemctl start gitea-backup.service
backupopts="-c /etc/gitea/app.ini --file /var/backups/gitea/before-upgrade.zip" gitea-upgrade.sh
(Oui, je sais, ça fait deux sauvegardes, une par nous (avec un
`pg_dump`), une par le script de gitea dont le SQL nest pas aussi
propre que celui généré par `pg_dump`).
Une fois la mise à jour terminée, il est de bon goût de mettre à jour
`gitea_version` dans `gitea.yml`.
### Restaurer une sauvegarde
La machine est sauvegardée automatiquement sur `backup1.afpy.org` (voir `backup.yml`).
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`) :
systemctl stop gitea
unzip 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/
sudo --user git psql -d gitea < gitea.sql
Puis passer le playbook `gitea.yml` pour remettre les bons droits partout (le playbook démarrera aussi `gitea`).
# Ansible
On utilies ces rôles Ansible :

View File

@ -2,8 +2,7 @@
- hosts: gitea
vars:
gitea_version: "1.17.2"
gitea_binary_checksum: "sha256:d0e903671ae04007c5956beb65985825795c1d9b24c9f354b48008fd44db1b57"
gitea_version: "1.17.3" # To upgrade, read the README file first.
gitea_internal_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
65396439373538656633396363313333663233343661643739633135306131613434353335353634

View File

@ -6,6 +6,14 @@
# systemctl status gitea-backup.service
- name: Create backup directory
file:
state: directory
mode: 0700
owner: git
group: git
path: /var/backups/gitea/
- name: Create backup script
copy:
dest: /usr/local/bin/gitea-backup.sh
@ -14,14 +22,9 @@
mode: 0750
content: |
#!/bin/sh
rm -fr /var/backups/gitea
mkdir /var/backups/gitea
systemctl stop gitea
chown git:git /var/backups/gitea/
GITEA_WORK_DIR=/var/lib/gitea sudo -u git --preserve-env=GITEA_WORK_DIR gitea dump -c /etc/gitea/app.ini --file /var/backups/gitea/gitea.zip
sudo -u git pg_dump gitea > /var/backups/gitea/gitea.sql
chown root:root /var/backups/gitea
chmod 700 /var/backups/gitea/
sudo --user git gitea --work-path /var/lib/gitea --config /etc/gitea/app.ini dump --file /var/backups/gitea/gitea.zip
sudo --user git pg_dump --clean gitea > /var/backups/gitea/gitea.sql
systemctl start gitea
- name: Create backup service

View File

@ -31,12 +31,19 @@
- name: Download gitea
get_url:
dest: /usr/local/bin/gitea
checksum: "{{ gitea_binary_checksum }}"
url: "https://dl.gitea.io/gitea/{{ gitea_version }}/gitea-{{ gitea_version }}-linux-amd64"
mode: 0755
owner: root
group: root
register: download_gitea
- name: Download gitea upgrade script
get_url:
dest: /usr/local/bin/gitea-upgrade.sh
url: "https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/upgrade.sh"
mode: 0755
force: true
owner: root
group: root
- name: Install dependencies
package:
@ -49,6 +56,7 @@
# - npm # for static file generation
# - make # for static file generation
- nginx
- jq # For upgrade.sh
state: present
- name: Ensure locale en_US.UTF-8 exists