2026-10-07 11:08:22 +02:00
|
|
|
---
|
|
|
|
|
- name: installer age et lftp
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name:
|
|
|
|
|
- age
|
|
|
|
|
- lftp
|
|
|
|
|
state: present
|
|
|
|
|
update_cache: true
|
|
|
|
|
cache_valid_time: 3600
|
|
|
|
|
|
|
|
|
|
- name: créer le répertoire de la clé age
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{ sauvegardes_age_dir }}"
|
|
|
|
|
state: directory
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
|
|
- name: générer la paire de clés age (si absente)
|
|
|
|
|
ansible.builtin.command:
|
|
|
|
|
cmd: "age-keygen -o {{ sauvegardes_age_cle }}"
|
|
|
|
|
creates: "{{ sauvegardes_age_cle }}"
|
|
|
|
|
|
|
|
|
|
- name: restreindre les permissions de la clé privée age
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{ sauvegardes_age_cle }}"
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0600"
|
|
|
|
|
|
|
|
|
|
- name: lire la clé publique age (pour affichage, jamais la clé privée)
|
|
|
|
|
ansible.builtin.command:
|
|
|
|
|
cmd: "grep -oP '(?<=public key: )age1\\S+' {{ sauvegardes_age_cle }}"
|
|
|
|
|
register: sauvegardes_age_pub
|
|
|
|
|
changed_when: false
|
|
|
|
|
|
|
|
|
|
- name: déployer le script de sauvegarde
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: sauvegarde-dedibackup.sh.j2
|
|
|
|
|
dest: /usr/local/sbin/sauvegarde-dedibackup.sh
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
|
|
- name: déployer le service systemd
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: sauvegarde-dedibackup.service.j2
|
|
|
|
|
dest: /etc/systemd/system/sauvegarde-dedibackup.service
|
|
|
|
|
mode: "0644"
|
|
|
|
|
notify: recharger systemd
|
|
|
|
|
|
|
|
|
|
- name: déployer le timer systemd
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: sauvegarde-dedibackup.timer.j2
|
|
|
|
|
dest: /etc/systemd/system/sauvegarde-dedibackup.timer
|
|
|
|
|
mode: "0644"
|
|
|
|
|
notify: recharger systemd
|
|
|
|
|
|
2026-10-09 17:28:50 +02:00
|
|
|
- name: déployer le test de restauration du portail (étape 13)
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: syllabus-test-restauration.sh.j2
|
|
|
|
|
dest: /usr/local/sbin/syllabus-test-restauration
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
|
|
- name: déployer le service et le minuteur du test de restauration
|
|
|
|
|
ansible.builtin.copy:
|
|
|
|
|
dest: "/etc/systemd/system/syllabus-test-restauration.{{ item.type }}"
|
|
|
|
|
mode: "0644"
|
|
|
|
|
content: "{{ item.contenu }}"
|
|
|
|
|
loop:
|
|
|
|
|
- type: service
|
|
|
|
|
contenu: |
|
|
|
|
|
# Géré par Ansible (rôle sauvegardes).
|
|
|
|
|
[Unit]
|
|
|
|
|
Description=Test de restauration de la dernière sauvegarde du portail
|
|
|
|
|
After=docker.service network-online.target
|
|
|
|
|
Wants=network-online.target
|
|
|
|
|
[Service]
|
|
|
|
|
Type=oneshot
|
|
|
|
|
ExecStart=/usr/local/sbin/syllabus-test-restauration
|
|
|
|
|
- type: timer
|
|
|
|
|
contenu: |
|
|
|
|
|
# Géré par Ansible (rôle sauvegardes).
|
|
|
|
|
[Unit]
|
|
|
|
|
Description=Test de restauration hebdomadaire du portail
|
|
|
|
|
[Timer]
|
|
|
|
|
OnCalendar={{ sauvegardes_test_restauration_quand }}
|
|
|
|
|
Persistent=true
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=timers.target
|
|
|
|
|
notify: recharger systemd
|
|
|
|
|
|
2026-10-07 11:08:22 +02:00
|
|
|
- name: appliquer les changements systemd
|
|
|
|
|
ansible.builtin.meta: flush_handlers
|
|
|
|
|
|
|
|
|
|
- name: activer et démarrer le timer de sauvegarde
|
|
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: sauvegarde-dedibackup.timer
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
|
|
|
|
|
2026-10-09 17:28:50 +02:00
|
|
|
- name: activer le minuteur du test de restauration
|
|
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: syllabus-test-restauration.timer
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
|
|
|
|
|
2026-10-07 11:08:22 +02:00
|
|
|
- name: afficher la clé publique age (à connaître, jamais la privée)
|
|
|
|
|
ansible.builtin.debug:
|
|
|
|
|
msg: "Clé publique age du serveur : {{ sauvegardes_age_pub.stdout }}"
|