Set-OPS-Public/roles/serveur_step_ca/tasks/main.yml
Daniel Allaire f82630de6c Rendre le dry-run (--check) fiable sur les rôles applicatifs
« Vérifier » échouait faussement sur un hôte frais : les tâches
« démarrer service » et les handlers restart/reload/validate touchent
un paquet que --check n'installe pas vraiment → service/fichier absent
→ faux fatal, qui bloquait le déploiement (le dry-run doit passer pour
débloquer « Déployer »).

Ajout de « when: not ansible_check_mode » sur ces tâches + handlers des
13 rôles serveur_* (29 gardes). Sautées en dry-run, inchangées en réel.
Validé : powerdns dry-run failed=0 ; ansible-lint 0 échec ; 19 playbooks
syntax-OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 21:01:53 -04:00

109 lines
3.3 KiB
YAML

---
- name: Exiger les secrets de l'AC (Vault)
ansible.builtin.assert:
that:
- serveur_step_ca_password | length > 0
- serveur_step_ca_provisioner_password | length > 0
fail_msg: >-
serveur_step_ca_password et serveur_step_ca_provisioner_password
sont requis (a fournir via Ansible Vault).
- name: Assurer le repertoire des trousseaux apt
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
owner: root
group: root
mode: "0755"
- name: Telecharger la cle de signature Smallstep
ansible.builtin.get_url:
url: "{{ serveur_step_ca_depot_cle_url }}"
dest: "{{ serveur_step_ca_depot_cle_fichier }}"
owner: root
group: root
mode: "0644"
- name: Ajouter le depot apt Smallstep
ansible.builtin.template:
src: smallstep.sources.j2
dest: /etc/apt/sources.list.d/smallstep.sources
owner: root
group: root
mode: "0644"
- name: Installer step-ca et step-cli
ansible.builtin.apt:
name: "{{ serveur_step_ca_paquets }}"
state: present
update_cache: true
- name: Creer l'utilisateur systeme step
ansible.builtin.user:
name: "{{ serveur_step_ca_utilisateur }}"
system: true
home: "{{ serveur_step_ca_steppath }}"
create_home: false
shell: /usr/sbin/nologin
- name: Creer le repertoire STEPPATH
ansible.builtin.file:
path: "{{ serveur_step_ca_steppath }}"
state: directory
owner: "{{ serveur_step_ca_utilisateur }}"
group: "{{ serveur_step_ca_utilisateur }}"
mode: "0700"
- name: Deployer le mot de passe de l'AC
ansible.builtin.copy:
content: "{{ serveur_step_ca_password }}"
dest: "{{ serveur_step_ca_steppath }}/password.txt"
owner: "{{ serveur_step_ca_utilisateur }}"
group: "{{ serveur_step_ca_utilisateur }}"
mode: "0600"
no_log: true
notify: Redemarrer step-ca
- name: Deployer le mot de passe du provisioner
ansible.builtin.copy:
content: "{{ serveur_step_ca_provisioner_password }}"
dest: "{{ serveur_step_ca_steppath }}/provisioner_password.txt"
owner: "{{ serveur_step_ca_utilisateur }}"
group: "{{ serveur_step_ca_utilisateur }}"
mode: "0600"
no_log: true
- name: Initialiser l'autorite de certification (une seule fois)
ansible.builtin.command:
cmd: >-
step ca init
--deployment-type standalone
--name "{{ serveur_step_ca_nom }}"
--dns "{{ serveur_step_ca_dns }}"
--address "{{ serveur_step_ca_adresse }}"
--provisioner "{{ serveur_step_ca_provisioner }}"
--password-file {{ serveur_step_ca_steppath }}/password.txt
--provisioner-password-file {{ serveur_step_ca_steppath }}/provisioner_password.txt
{{ '--acme' if serveur_step_ca_acme | bool else '' }}
creates: "{{ serveur_step_ca_steppath }}/config/ca.json"
become: true
become_user: "{{ serveur_step_ca_utilisateur }}"
environment:
STEPPATH: "{{ serveur_step_ca_steppath }}"
- name: Deployer l'unite systemd step-ca
ansible.builtin.template:
src: step-ca.service.j2
dest: /etc/systemd/system/step-ca.service
owner: root
group: root
mode: "0644"
notify: Redemarrer step-ca
- name: Activer et demarrer step-ca
when: not ansible_check_mode
ansible.builtin.systemd:
name: "{{ serveur_step_ca_service }}"
enabled: true
state: started
daemon_reload: true