diff --git a/outils/logiciels/ansible.md b/outils/logiciels/ansible.md index 7494791..d25502e 100644 --- a/outils/logiciels/ansible.md +++ b/outils/logiciels/ansible.md @@ -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 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 +: + rest_password: + repo_password: + base: +``` + +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 +``` + +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/` : + +```yaml +loc_restic: + config: + base: + # pour exclure des chemins + to_exclude: + - + - + + # pour ajouter des chemins + to_backup: + - /etc + - /var + - + + # changer la rétention des backups + retention: + - [--keep-daily, ] + - [--keep-weekly, ] + - etc +``` + +Enfin, vous pourrez appliquer la configuration ansible à l'aide de la commande : + +```bash +$ plays/restic_client.yml -l .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 +: + rest_password: + repo_password: + base: + : +``` + +##### 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/.adm.crans.org` : + +```yaml +loc_restic: + config: + : # le même nom que dans le pass + # chemins à exclure + to_exclude: + - + - + + # chemins à inclure + to_backup: + - + - + + # changer la rétention des backups + retention: + - [--keep-daily, ] + - [--keep-weekly, ] + - etc +``` + +Enfin, vous pourrez appliquer la configuration ansible à l'aide de la commande : + +```bash +$ plays/restic_client.yml -l .adm.crans.org --check +``` + +> Pensez à retirer le `--check` une fois que vous aurez vérifier que tout s'est +> bien passé ! + ### Configurer le reverseproxy 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}` - exécuter le playbook reverseproxy (`plays/reverseproxy -l hodaur.adm.crans.org --check`) +