Ajout de la configuration de restic dans ansible

scripts_python
korenstin 2024-12-04 21:09:08 +01:00
parent 4302a72ffa
commit 1508def858
1 changed files with 142 additions and 0 deletions

View File

@ -230,6 +230,147 @@ familiarisez avec la structure et le fonctionnement ainsi que la syntaxe.
Cependant, vous devriez avoir les clés pour comprendre les fichiers de Cependant, vous devriez avoir les clés pour comprendre les fichiers de
configuration ! configuration !
### Configuration des backups
Bien qu'ansible configure par défaut les backups, quelques actions sont
nécéssaires. Pour ce qui est des backups sous borg, elles seront automatiquement
configurer et aucune action n'est requise. Pour les backups sous restics, il
peut être nécessaire de faire les actions qui suivent.
#### Configuration de base
##### Génération des secrets
Les backups sous restic nécessite la génération de secrets dans le pass pour
chaque machine (plus de détail dans la documentation de restic). Cela lui
confère une sécurité accrue (plus que la configuration de borg).
Si la machine que vous cherchez à configurer a déjà eu des backus sous restic,
alors il est fort probable que rien ne soit à faire à ce stade.
Si la machine est neuve (ou n'a jamais eu de backups restic), vous devez générer
2 secrets. Pour être sûr⋅e qu'il n'y ait pas de problèmes, on utilisera les
minuscules, majuscules et chiffres. En particulier, aucuns symboles ou caractères
spéciaux ne seront utilisés. Vous devrez générer un mot de passe avec 64
caractères (`rest_password`) et un de 256 caractères (`repo_password`). Il faut
alors les ajouter dans le pass dans le fichier `ansible/restic`. Ajouter alors
la machine selon le format :
```yaml
<nom machine>:
rest_password: <mdp de 64 caractères>
repo_password:
base: <mdp de 256 caractères>
```
Ensuite, il faut dire à `thot` que vous souhaitez utiliser le `rest_password`
que vous venez de générer. Pour cela, vous devez vous ssh sur `thot` et éxécuter
la commande :
```bash
$ sudo su
# cd /backup
# htpasswd -B .htpasswd <nom machine>
```
Puis le secret vous sera demandé (puis re-demandé pour confirmer).
##### Configuration dans Ansible
Par défaut, sont backupé `/var` et `/etc`. Si cela ne convient pas, il est
possible de modifier cela en ajoutant (au besoin) dans
`host_vars/<nom machine>` :
```yaml
loc_restic:
config:
base:
# pour exclure des chemins
to_exclude:
- <premier chemins>
- <deuxième chemins>
# pour ajouter des chemins
to_backup:
- /etc
- /var
- <un autre chemin>
# changer la rétention des backups
retention:
- [--keep-daily, <int>]
- [--keep-weekly, <int>]
- etc
```
Enfin, vous pourrez appliquer la configuration ansible à l'aide de la commande :
```bash
$ plays/restic_client.yml -l <nom machine>.adm.crans.org --check
```
> Pensez à retirer le `--check` une fois que vous aurez vérifier que tout s'est
> bien passé !
#### Configuration de backup supplémentaire
Il est possible que la machine que vous déployez nécessite d'effectuer d'autres
backups, mais vous souhaitez les rendre indépendantes des backups de base comme
c'est le cas pour `tealc` et `cameron` (à l'heure où ces lignes ont été
rédigées).
##### Génération d'un nouveau secret
Comme mentionner dans la partie précédente, des secrets sont nécessaires pour le
fonctionnement de restic. Si vous êtes ici, c'est que vous avez déjà un
`rest_password` et un `repo_password`. Il faut alors générer un autre
`repo_password` (256 caractères avec minuscules, majuscules et chiffres) et le
placer dans le pass. Vous devriez avoir quelque chose qui ressemble à :
```yaml
<nom machine>:
rest_password: <mdp de 64 caractères>
repo_password:
base: <mdp de 256 caractères>
<un nom>: <le mdp de 256 caractères que vous venez de générer>
```
##### Configuration dans Ansible
Vous devez alors annoncer à ansible ce qui doit être backupé. Ajoutez alors, si
la variable n'est pas là ou complétez sinon, dans
`host_vars/<nom machine>.adm.crans.org` :
```yaml
loc_restic:
config:
<un nom>: # le même nom que dans le pass
# chemins à exclure
to_exclude:
- <premier chemins>
- <deuxième chemins>
# chemins à inclure
to_backup:
- <un chemin>
- <un autre chemin>
# changer la rétention des backups
retention:
- [--keep-daily, <int>]
- [--keep-weekly, <int>]
- etc
```
Enfin, vous pourrez appliquer la configuration ansible à l'aide de la commande :
```bash
$ plays/restic_client.yml -l <nom machine>.adm.crans.org --check
```
> Pensez à retirer le `--check` une fois que vous aurez vérifier que tout s'est
> bien passé !
### Configurer le reverseproxy ### Configurer le reverseproxy
Si votre service nécessite de recevoir une connexion depuis l'extérieur, il Si votre service nécessite de recevoir une connexion depuis l'extérieur, il
@ -241,3 +382,4 @@ reverseproxy). Pour cela il suffit de :
ajouter `- {from: helloworld.crans.org, to: 172.16.10.131}` ajouter `- {from: helloworld.crans.org, to: 172.16.10.131}`
- exécuter le playbook reverseproxy - exécuter le playbook reverseproxy
(`plays/reverseproxy -l hodaur.adm.crans.org --check`) (`plays/reverseproxy -l hodaur.adm.crans.org --check`)