Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:adminsys:backup:install_and_config [2022/09/25 06:36] – Changement de nom rdelaage | technique:adminsys:backup:install_and_config [2023/06/26 16:15] (Version actuelle) – [Configuration de restic-server] ppom | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | # Installation et configuration de autorestic | ||
+ | |||
+ | On a déjà des backups des images de machines virtuelles, qui sont [[technique: | ||
+ | Pour faire des backups logiques de nos volumes Docker, on commence à utiliser autorestic. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Voilà comment installer et configurer autorestic sur une nouvelle machine : | ||
+ | |||
+ | ## Installation des programmes | ||
+ | |||
+ | La version de restic sur Debian est assez vieille et autorestic n'est simplement pas présent. | ||
+ | On a décidé d' | ||
+ | |||
+ | Télécharge-les depuis votre navigateur, puis copie-les sur la MACHINE picasoft : | ||
+ | ```bash | ||
+ | rsync restic.bz2 autorestic.bz2 ppom@MACHINE.picasoft.net: | ||
+ | ``` | ||
+ | |||
+ | sur la MACHINE, décompresse les fichers et installe-les dans `/ | ||
+ | ```bash | ||
+ | bunzip2 restic.bz2 | ||
+ | bunzip2 autorestic.bz2 | ||
+ | sudo install -m 0755 -o root restic | ||
+ | sudo install -m 0755 -o root autorestic / | ||
+ | ``` | ||
+ | |||
+ | ## Installation de la configuration SSH du client | ||
+ | |||
+ | Restic effectue les backup par SFTP, il faut donc configurer le client pour se connecter au store via SSH. Pour cela on utilise le compte `backup` dont la clé SSH se trouve dans le [[asso: | ||
+ | |||
+ | Les backups se font par l' | ||
+ | ``` | ||
+ | Host pica03-backup | ||
+ | HostName pica03.picasoft.net | ||
+ | Port 22 | ||
+ | User backup | ||
+ | IdentityFile ~/ | ||
+ | ``` | ||
+ | |||
+ | ## Installation de la conf autorestic | ||
+ | |||
+ | On clone le [repo git](https:// | ||
+ | Chaque machine a son propre dossier, qui contient le fichier de configuration, | ||
+ | Par défaut, le secret est ajouté par restic dans le YAML. On l' | ||
+ | Il faut ajouter ce secret dans le pass (par exemple `Tech/ | ||
+ | Car si on perd la machine, on a intérêt à avoir la clé de déchiffrement des backups quelque part ! | ||
+ | |||
+ | /!\TODO expliquer les hooks des BDD et préciser qu'il faut créer les dossiers | ||
+ | |||
+ | ```bash | ||
+ | #on commence par initialiser le dépôt restic de la machine | ||
+ | sudo autorestic check | ||
+ | #on lance un backup pour vérifier que tout va bien | ||
+ | sudo autorestic backup -a | ||
+ | ``` | ||
+ | ## Installation du service / timer systemd | ||
+ | |||
+ | ```bash | ||
+ | sudo cp -f / | ||
+ | sudo cp -f / | ||
+ | sudo systemctl daemon-reload | ||
+ | sudo systemctl enable autorestic.timer | ||
+ | sudo systemctl start autorestic.timer | ||
+ | ``` | ||
+ | ## Configuration de restic-server | ||
+ | |||
+ | Auparavant, nous avions un user `backup` sur le serveur distant, dédié au stockage des backups. Cependant nous avions des problèmes d' | ||
+ | |||
+ | **TODO finir cette partie** | ||
+ | |||
+ | - Authentification double HTTPS : certificats client & serveur générés côté traefik [ici](https:// | ||
+ | - Authentification supplémentaire via le user restic-server | ||
+ | |||
+ | Enfin nous définissons root et son groupe comme propriétaire de `/ | ||
+ | |||
+ | ## Installation de fusermount | ||
+ | |||
+ | Pour pouvoir monter les backups distants en local, pour les inspecter et tout il nous faut la commande `fusermount`: | ||
+ | ```bash | ||
+ | sudo apt install fuse | ||
+ | ``` | ||
+ | |||
+ | ## Alerte quand un backup se passe mal | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | On peut le faire simplement via un hook sur le canal Alertes Techniques. L'URL ne doit pas être versionnée; | ||
+ | |||
+ | `.env` | ||
+ | ``` | ||
+ | HOOK_URL=https:// | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | Un hook est déclenché par `autorestic` en cas d' | ||
+ | |||
+ | ```yaml | ||
+ | # Within a location | ||
+ | hooks: | ||
+ | failure: | ||
+ | - / | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | Le script d' | ||
+ | |||
+ | `failed_backup.sh` | ||
+ | ```bash | ||
+ | #!/bin/sh | ||
+ | |||
+ | # Get webhook URL | ||
+ | source .env | ||
+ | |||
+ | # Send a message to the alert channel of Picasoft' | ||
+ | curl -i -X POST -H " | ||
+ | ``` | ||
+ | |||
+ | ## Utiliser autorestic | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | Chaque sous-dossier correspond à une machine et contient un fichier `autorestic.yml`. Ce fichier explicite les dossiers à sauvegarder, | ||
+ | |||
+ | < | ||
+ | |||
+ | La base sera toujours la même, par exemple : | ||
+ | ```bash | ||
+ | # On est sur pica02 | ||
+ | $ cd / | ||
+ | $ head ./ | ||
+ | [...] | ||
+ | backends: | ||
+ | pica03: | ||
+ | type: sftp | ||
+ | path: pica03-backup:/ | ||
+ | [...] | ||
+ | $ sudo autorestic -b pica03 < | ||
+ | ``` | ||
+ | |||
+ | `pica03` étant à remplacer par le backup distant. | ||
+ | |||
+ | < | ||