--- - 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 - 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 - 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 - name: activer le minuteur du test de restauration ansible.builtin.systemd: name: syllabus-test-restauration.timer enabled: true state: started - 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 }}"