--- - name: Telecharger le trousseau de cles Icinga 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 - name: Charger le registre des bases applicatives ansible.builtin.include_vars: file: "{{ role_path }}/../../docs/bases-donnees.yml" - name: Resoudre l'entree de base Icinga DB (par consommateur) ansible.builtin.set_fact: serveur_icinga_entree: >- {{ ((bases_donnees | default({})) | dict2items | selectattr('value.consommateur', 'defined') | selectattr('value.consommateur', 'equalto', serveur_icinga_groupe) | map(attribute='value') | list | first) | default({}) }} - name: Exiger l'entree de registre et son secret ansible.builtin.assert: that: - serveur_icinga_entree.base is defined - serveur_icinga_entree.secret is defined fail_msg: "Aucune base avec consommateur '{{ serveur_icinga_groupe }}' dans docs/bases-donnees.yml." - name: Resoudre le mot de passe de base (Vault) ansible.builtin.set_fact: serveur_icinga_db_password: "{{ lookup('vars', serveur_icinga_entree.secret) }}" no_log: true - name: Resoudre l'hote du serveur de base de donnees (registre) ansible.builtin.set_fact: serveur_icinga_db_host: >- {{ (serveurs_bd | default({}))[serveur_icinga_entree.serveur].hote | default(serveur_icinga_db_host) }} - 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 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 ansible.builtin.systemd: name: "{{ item }}" enabled: true state: started loop: - "{{ serveur_icinga_service_icinga2 }}" - "{{ serveur_icinga_service_icingadb }}"