2026-06-24 20:17:46 -04:00
|
|
|
---
|
2026-08-09 14:05:25 -04:00
|
|
|
# Recuperee UNE FOIS. Sans garde, chaque deploiement recontactait le serveur du
|
|
|
|
|
# fournisseur : cinq cles x quatorze hotes = soixante-dix allers-retours externes pour
|
|
|
|
|
# des cles deja installees, et autant d'occasions qu'un tiers lent fasse tomber le
|
|
|
|
|
# deploiement. Arbitrage rendu le 2026-08-09 : une plateforme souveraine ne depend pas
|
|
|
|
|
# de six serveurs etrangers pour redeployer ce qu'elle possede deja.
|
|
|
|
|
#
|
|
|
|
|
# CONSEQUENCE ASSUMEE : une rotation de cle amont n'est plus recuperee toute seule. Elle
|
|
|
|
|
# ne passe pas inapercue pour autant — `apt` refuse alors le depot, bruyamment. Pour
|
|
|
|
|
# forcer le rafraichissement : supprimer le fichier et rejouer le role.
|
|
|
|
|
- name: Cette ressource est-elle deja recuperee ? (Telecharger le trousseau de cles I)
|
|
|
|
|
ansible.builtin.stat:
|
|
|
|
|
path: "/tmp/icinga-archive-keyring.deb"
|
|
|
|
|
register: telecharger_le_trousseau_de_cles_icinga_present
|
|
|
|
|
|
2026-06-24 20:17:46 -04:00
|
|
|
- name: Telecharger le trousseau de cles Icinga
|
2026-08-09 14:05:25 -04:00
|
|
|
when: not telecharger_le_trousseau_de_cles_icinga_present.stat.exists
|
2026-06-24 20:17:46 -04:00
|
|
|
ansible.builtin.get_url:
|
|
|
|
|
url: "{{ serveur_icinga_keyring_url }}"
|
|
|
|
|
dest: "/tmp/icinga-archive-keyring.deb"
|
|
|
|
|
mode: "0644"
|
|
|
|
|
|
|
|
|
|
- name: Installer le trousseau de cles Icinga
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
deb: "/tmp/icinga-archive-keyring.deb"
|
|
|
|
|
state: present
|
|
|
|
|
|
|
|
|
|
- name: Ajouter le depot apt Icinga
|
|
|
|
|
ansible.builtin.apt_repository:
|
|
|
|
|
repo: "{{ serveur_icinga_depot_source }}"
|
|
|
|
|
filename: icinga
|
|
|
|
|
state: present
|
|
|
|
|
|
|
|
|
|
- name: Installer Icinga 2, Icinga DB et Redis dedie
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name: "{{ serveur_icinga_paquets }}"
|
|
|
|
|
state: present
|
|
|
|
|
update_cache: true
|
|
|
|
|
|
2026-07-03 15:57:06 -04:00
|
|
|
- name: Resoudre la base de donnees depuis le registre (role partage)
|
|
|
|
|
ansible.builtin.include_role:
|
|
|
|
|
name: resoudre_base
|
|
|
|
|
vars:
|
|
|
|
|
resoudre_base_groupe: "{{ serveur_icinga_groupe }}"
|
2026-06-24 20:17:46 -04:00
|
|
|
|
2026-07-03 15:57:06 -04:00
|
|
|
- name: Adopter les facts de base pour Icinga
|
2026-06-24 20:17:46 -04:00
|
|
|
ansible.builtin.set_fact:
|
2026-07-03 15:57:06 -04:00
|
|
|
serveur_icinga_entree: "{{ resoudre_base_entree }}"
|
|
|
|
|
serveur_icinga_db_password: "{{ resoudre_base_db_password }}"
|
|
|
|
|
serveur_icinga_db_host: "{{ resoudre_base_db_host }}"
|
2026-06-24 20:17:46 -04:00
|
|
|
no_log: true
|
|
|
|
|
|
|
|
|
|
- name: Configurer l'API Icinga 2
|
|
|
|
|
ansible.builtin.command:
|
|
|
|
|
cmd: icinga2 api setup
|
|
|
|
|
creates: /etc/icinga2/features-enabled/api.conf
|
|
|
|
|
notify: Redemarrer icinga2
|
|
|
|
|
|
|
|
|
|
- name: Activer la fonctionnalite icingadb dans Icinga 2
|
|
|
|
|
ansible.builtin.command:
|
|
|
|
|
cmd: icinga2 feature enable icingadb
|
|
|
|
|
creates: /etc/icinga2/features-enabled/icingadb.conf
|
|
|
|
|
notify: Redemarrer icinga2
|
|
|
|
|
|
|
|
|
|
- name: Activer et demarrer le Redis Icinga DB
|
2026-07-01 21:01:53 -04:00
|
|
|
when: not ansible_check_mode
|
2026-06-24 20:17:46 -04:00
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: "{{ serveur_icinga_service_redis }}"
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
|
|
|
|
|
|
|
|
|
- name: Importer le schema Icinga DB dans PostgreSQL (une fois)
|
|
|
|
|
ansible.builtin.shell:
|
|
|
|
|
cmd: >-
|
|
|
|
|
PGPASSWORD='{{ serveur_icinga_db_password }}'
|
|
|
|
|
psql -h {{ serveur_icinga_db_host }} -U {{ serveur_icinga_entree.proprietaire }}
|
|
|
|
|
-d {{ serveur_icinga_entree.base }} -f {{ serveur_icinga_schema }}
|
|
|
|
|
&& touch /etc/icingadb/.schema-imported
|
|
|
|
|
creates: /etc/icingadb/.schema-imported
|
|
|
|
|
no_log: true
|
|
|
|
|
|
|
|
|
|
- name: Deployer la configuration Icinga DB
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: config.yml.j2
|
|
|
|
|
dest: "{{ serveur_icinga_config }}"
|
|
|
|
|
owner: root
|
|
|
|
|
group: icingadb
|
|
|
|
|
mode: "0640"
|
|
|
|
|
no_log: true
|
|
|
|
|
notify: Redemarrer icingadb
|
|
|
|
|
|
|
|
|
|
- name: Activer et demarrer Icinga 2 et Icinga DB
|
2026-07-01 21:01:53 -04:00
|
|
|
when: not ansible_check_mode
|
2026-06-24 20:17:46 -04:00
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: "{{ item }}"
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
|
|
|
|
loop:
|
|
|
|
|
- "{{ serveur_icinga_service_icinga2 }}"
|
|
|
|
|
- "{{ serveur_icinga_service_icingadb }}"
|