--- - name: Exiger le mot de passe admin Stalwart (Vault) ansible.builtin.assert: that: - serveur_stalwart_admin_password | length > 0 fail_msg: "serveur_stalwart_admin_password est requis (via Ansible Vault : vault_stalwart_admin)." - name: Créer l'utilisateur système stalwart ansible.builtin.user: name: "{{ serveur_stalwart_utilisateur }}" system: true home: "{{ serveur_stalwart_data }}" create_home: false shell: /usr/sbin/nologin - name: Créer les répertoires stalwart ansible.builtin.file: path: "{{ item }}" state: directory owner: "{{ serveur_stalwart_utilisateur }}" group: "{{ serveur_stalwart_utilisateur }}" mode: "0750" loop: - "{{ serveur_stalwart_etc }}" - "{{ serveur_stalwart_data }}" - "{{ serveur_stalwart_store }}" - name: Lire la version de Stalwart installée ansible.builtin.command: "{{ serveur_stalwart_binaire }} --version" register: serveur_stalwart_version_installee changed_when: false failed_when: false - name: Installer le binaire Stalwart (absent ou version différente) when: serveur_stalwart_version not in (serveur_stalwart_version_installee.stdout | default('')) block: - name: Télécharger l'archive Stalwart ansible.builtin.get_url: url: "{{ serveur_stalwart_url }}" dest: "/tmp/stalwart-{{ serveur_stalwart_version }}.tar.gz" mode: "0644" - name: Extraire le binaire stalwart vers /usr/local/bin ansible.builtin.unarchive: src: "/tmp/stalwart-{{ serveur_stalwart_version }}.tar.gz" dest: /usr/local/bin remote_src: true owner: root group: root mode: "0755" notify: Redémarrer stalwart - name: Nettoyer l'archive téléchargée ansible.builtin.file: path: "/tmp/stalwart-{{ serveur_stalwart_version }}.tar.gz" state: absent - name: Déployer config.json (DataStore) ansible.builtin.template: src: config.json.j2 dest: "{{ serveur_stalwart_config }}" owner: "{{ serveur_stalwart_utilisateur }}" group: "{{ serveur_stalwart_utilisateur }}" mode: "0640" notify: Redémarrer stalwart - name: Déployer l'EnvironmentFile (secret admin de récupération) ansible.builtin.template: src: stalwart.env.j2 dest: "{{ serveur_stalwart_env }}" owner: root group: "{{ serveur_stalwart_utilisateur }}" mode: "0640" no_log: true notify: Redémarrer stalwart - name: Déployer l'unité systemd stalwart ansible.builtin.template: src: stalwart.service.j2 dest: /etc/systemd/system/stalwart.service owner: root group: root mode: "0644" notify: Redémarrer stalwart - name: Activer et démarrer stalwart when: not ansible_check_mode ansible.builtin.systemd: name: stalwart enabled: true state: started daemon_reload: true