--- - name: Install Apache, PHP and Icinga Web 2 ansible.builtin.apt: name: - apache2 - libapache2-mod-php - php - php-cli - php-intl - php-mysql - php-gd - php-curl - php-mbstring - php-xml - icingaweb2 - icingacli state: latest - name: Ensure Icinga Web 2 config directories exist ansible.builtin.file: path: "{{ item }}" state: directory owner: www-data group: icingaweb2 mode: '2770' loop: - /etc/icingaweb2 - /etc/icingaweb2/modules - /etc/icingaweb2/modules/icingadb - /etc/icingaweb2/modules/icingadb/config - name: Configure Icinga Web resources ansible.builtin.template: src: resources.ini.j2 dest: /etc/icingaweb2/resources.ini owner: www-data group: icingaweb2 mode: '0660' - name: Configure Icinga Web authentication ansible.builtin.template: src: authentication.ini.j2 dest: /etc/icingaweb2/authentication.ini owner: www-data group: icingaweb2 mode: '0660' - name: Configure Icinga Web roles ansible.builtin.template: src: roles.ini.j2 dest: /etc/icingaweb2/roles.ini owner: www-data group: icingaweb2 mode: '0660' - name: Create admin user password hash ansible.builtin.command: "openssl passwd -1 {{ icingaweb_admin_password }}" register: icingaweb_admin_hash changed_when: false no_log: true - name: Configure local Icinga Web users ansible.builtin.template: src: users.ini.j2 dest: /etc/icingaweb2/users.ini owner: www-data group: icingaweb2 mode: '0660' no_log: true - name: Configure Icinga DB Web module database ansible.builtin.template: src: icingadb-config.ini.j2 dest: /etc/icingaweb2/modules/icingadb/config.ini owner: www-data group: icingaweb2 mode: '0660' - name: Configure Icinga DB Web command transport ansible.builtin.template: src: icingadb-commandtransports.ini.j2 dest: /etc/icingaweb2/modules/icingadb/commandtransports.ini owner: www-data group: icingaweb2 mode: '0660' - name: Enable Icinga DB Web module ansible.builtin.command: icingacli module enable icingadb args: creates: /etc/icingaweb2/enabledModules/icingadb - name: Enable and start Apache ansible.builtin.systemd: name: apache2 enabled: true state: started