93 lines
2.8 KiB
YAML
93 lines
2.8 KiB
YAML
|
|
---
|
||
|
|
- 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
|