--- - name: Ensure keyrings directory exists ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: '0755' - name: Download Icinga GPG key to keyrings ansible.builtin.get_url: url: https://packages.icinga.com/icinga.key dest: /etc/apt/keyrings/icinga.asc mode: '0644' - name: Add Icinga APT repository (Ubuntu 24.04 "noble") ansible.builtin.apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/icinga.asc] https://packages.icinga.com/ubuntu icinga-noble main" state: present filename: icinga - name: Add Icinga 2 GPG key ansible.builtin.apt_key: url: https://packages.icinga.com/icinga.key state: present - name: Install Icinga 2 ansible.builtin.apt: name: icinga2 state: present update_cache: true # Include IDO DB setup tasks - name: Setup Icinga2 IDO DB ansible.builtin.include_tasks: icinga2-ido.yml - name: Start and enable icinga2 service ansible.builtin.service: name: icinga2 state: started enabled: true - name: Install Icinga Web 2 and Apache (optional) when: icinga2_install_web ansible.builtin.apt: name: - icingaweb2 - icingacli - apache2 - php - php-cli - php-mysql - php-xml - php-gd - php-imagick - php-curl state: present - name: Enable Apache for Icinga Web when: icinga2_install_web ansible.builtin.service: name: apache2 state: started enabled: true - name: Configure Icinga Web 2 database (optional) when: icinga2_install_web ansible.builtin.debug: msg: "You can add DB config, MySQL setup, etc. here." - name: Install Icinga2 IDO MySQL module ansible.builtin.apt: name: icinga2-ido-mysql state: present - name: Enable the IDO MySQL feature ansible.builtin.command: icinga2 feature enable ido-mysql notify: Restart Icinga2 - name: Configure IDO DB connection ansible.builtin.template: src: ido-mysql.conf.j2 dest: /etc/icinga2/features-enabled/ido-mysql.conf owner: root group: root mode: '0644' notify: Restart Icinga2 - name: Setup Icinga2 Templates ansible.builtin.include_tasks: icinga2-templates.yml