diff --git a/icinga2-ansible-web-ui/README.md b/icinga2-ansible-web-ui/README.md index fdc451f4..33e6f4ca 100644 --- a/icinga2-ansible-web-ui/README.md +++ b/icinga2-ansible-web-ui/README.md @@ -48,10 +48,12 @@ icinga2_web_ui_mysql_rpm: - { package: "mysql-server" } - { package: "MySQL-python" } +icinga2_web_db: "icinga_web" icinga2_web_db_dbuser: "icinga_web" +icinga2_web_db_dbpass: "icinga_web" icinga2_ido_schema_version: "2.0.2" -icinga2_ido_mysql_schema: "/usr/share/doc/icinga2-ido-mysql-{{ icinga2_ido_schema_version }}/schema/mysql.sql" +icinga2_ido_mysql_schema_rh: "/usr/share/doc/icinga2-ido-mysql-{{ icinga2_ido_schema_version }}/schema/mysql.sql" icinga2_web_mysql_schema_rh_7: "/usr/share/doc/icinga-web-1.11.1/schema/mysql.sql" icinga2_web_mysql_schema_rh_6: "/usr/share/doc/icinga-web-1.11.0/schema/mysql.sql" @@ -63,6 +65,21 @@ icinga2_ido_mysql_conf_global: - { directive: 'password = "icinga"' } - { directive: 'host = "localhost"' } - { directive: 'database = "icinga"' } + +# Vars for Debian OS Family + +icinga2_web_ui_deb: + - { package: "icinga-web" } + - { package: "icinga-web-config-icinga2-ido-mysql" } + +icinga2_web_ui_mysql_deb: + - { package: "mysql-server" } + - { package: "python-mysqldb" } + +icinga2_ido_mysql_schema_deb: "/usr/share/icinga2-ido-mysql/schema/mysql.sql" + +icinga2_web_mysql_schema_deb_7: "/usr/share/doc/icinga-web-1.11.1/schema/mysql.sql" + ``` License ------- diff --git a/icinga2-ansible-web-ui/handlers/main.yml b/icinga2-ansible-web-ui/handlers/main.yml index 9642ff82..33aa0bfe 100644 --- a/icinga2-ansible-web-ui/handlers/main.yml +++ b/icinga2-ansible-web-ui/handlers/main.yml @@ -9,3 +9,8 @@ service: name=httpd state=restarted enabled=yes + +- name: restart apache2 + service: name=apache2 + state=restarted + enabled=yes diff --git a/icinga2-ansible-web-ui/tasks/icinga2_web_ui_Debian_install.yml b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_Debian_install.yml new file mode 100644 index 00000000..71ac2a39 --- /dev/null +++ b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_Debian_install.yml @@ -0,0 +1,45 @@ +--- +- name: Install IDO {{ icinga2_web_ui_ido }} on Debian OS family + apt: name=icinga2-ido-{{ icinga2_web_ui_ido }} + state=latest + +- include: icinga2_web_ui_mysql_Debian_install.yml + when: icinga2_web_ui_ido == "mysql" + +- name: Install Icinga Web on Debian OS family + apt: name={{ item.package }} + state=latest + with_items: icinga2_web_ui_deb + +- name: Create a Database for Icinga Web + mysql_db: name={{ icinga2_web_db_dbuser }} + state=present + register: icinga_web_db + +- name: Import IDO Schema in Icinga Web Database on Debian 7 (only once) + mysql_db: name={{ icinga2_web_db_dbuser }} + state=import + target={{ icinga2_web_mysql_schema_deb_7 }} + when: ansible_distribution_major_version == "7" and icinga_web_db.changed == true + +- name: Create Icinga Web Database User and configure Grants + mysql_user: name={{ icinga2_web_db_dbuser }} + password={{ icinga2_web_db_dbuser }} + state=present + priv="{{ icinga2_web_db_dbuser }}.*:GRANT,INSERT,SELECT,UPDATE,DELETE,DROP,CREATE VIEW,INDEX,EXECUTE" + +- name: Overwrite Debian dbconfig for Icinga-Web + template: src=database-web.xml.j2 + dest=/etc/icinga-web/conf.d/database-web.xml + backup=no + owner=root + group=www-data + mode=0640 + +- name: Start Apache + service: name=apache2 + state=started + enabled=yes + +- name: Icinga Web UI Installation finished (DEB) + debug: msg="Login at http://IP/icinga-web with user root and password password" diff --git a/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_Debian_install.yml b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_Debian_install.yml new file mode 100644 index 00000000..9e400378 --- /dev/null +++ b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_Debian_install.yml @@ -0,0 +1,44 @@ +--- +- name: Install MySQL and Utils on Debian OS Family (based on your choice in icinga2_web_ui_ido value) + apt: name={{ item.package }} + state=latest + with_items: icinga2_web_ui_{{ icinga2_web_ui_ido }}_deb + when: ansible_distribution_major_version == "7" + +- name: Start MySQL + service: name=mysql + state=started + enabled=yes + when: ansible_distribution_major_version == "7" + +- name: Create a Database for Icinga + mysql_db: name={{ icinga2_web_db }} + state=present + register: icinga_db + +- name: Import IDO Schema on Icinga Database (only once) + mysql_db: name={{ icinga2_web_db }} + state=import + target={{ icinga2_ido_mysql_schema_deb }} + when: icinga_db.changed == true + +- name: Create Icinga Database User and configure Grants + mysql_user: name={{ icinga2_web_db_dbuser }} + password={{ icinga2_web_db_dbpass }} + state=present + priv="{{ icinga2_web_db_dbuser }}.*:GRANT,INSERT,SELECT,UPDATE,DELETE,DROP,CREATE VIEW,INDEX,EXECUTE" + +- name: Configure Icinga2 Ido Mysql Feature + template: src=ido-mysql.conf.j2 + dest={{ icinga2_ido_mysql_conf }} + backup=no + owner=nagios + group=nagios + mode=0640 + +- name: Enable Icinga2 Ido Mysql Feature + command: "icinga2 feature enable ido-{{ icinga2_web_ui_ido }}" + register: features_result + changed_when: "'for these changes to take effect' in features_result.stdout" + notify: + - restart icinga2 diff --git a/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_RedHat_install.yml b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_RedHat_install.yml index b6c992e3..5ab758a1 100644 --- a/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_RedHat_install.yml +++ b/icinga2-ansible-web-ui/tasks/icinga2_web_ui_mysql_RedHat_install.yml @@ -31,7 +31,7 @@ - name: Import IDO Schema on Icinga Database (only once) mysql_db: name=icinga state=import - target={{ icinga2_ido_mysql_schema }} + target={{ icinga2_ido_mysql_schema_rh }} when: icinga_db.changed == true - name: Create Icinga Database User and configure Grants diff --git a/icinga2-ansible-web-ui/tasks/main.yml b/icinga2-ansible-web-ui/tasks/main.yml index 38e549c3..e33b338c 100644 --- a/icinga2-ansible-web-ui/tasks/main.yml +++ b/icinga2-ansible-web-ui/tasks/main.yml @@ -1,5 +1,8 @@ --- # tasks file for icinga2-ansible-web-ui +- include: icinga2_web_ui_Debian_install.yml + when: ansible_os_family == 'Debian' + - include: icinga2_web_ui_RedHat_install.yml when: ansible_os_family == 'RedHat' diff --git a/icinga2-ansible-web-ui/templates/database-web.xml.j2 b/icinga2-ansible-web-ui/templates/database-web.xml.j2 new file mode 100644 index 00000000..65c13311 --- /dev/null +++ b/icinga2-ansible-web-ui/templates/database-web.xml.j2 @@ -0,0 +1,11 @@ + + + + + + mysql://{{ icinga2_web_db_dbuser }}:{{ icinga2_web_db_dbpass }}@localhost/{{ icinga2_web_db }} + + + \ No newline at end of file diff --git a/icinga2-ansible-web-ui/vars/main.yml b/icinga2-ansible-web-ui/vars/main.yml index c7125e06..5b63c662 100644 --- a/icinga2-ansible-web-ui/vars/main.yml +++ b/icinga2-ansible-web-ui/vars/main.yml @@ -6,6 +6,10 @@ icinga2_web_ui_rpm: - { package: "icinga-web" } - { package: "icinga-web-{{ icinga2_web_ui_ido }}" } + +icinga2_web_ui_deb: + - { package: "icinga-web" } + - { package: "icinga-web-config-icinga2-ido-mysql" } icinga2_web_ui_mariadb_rpm: - { package: "mariadb-server" } @@ -15,14 +19,23 @@ icinga2_web_ui_mysql_rpm: - { package: "mysql-server" } - { package: "MySQL-python" } +icinga2_web_ui_mysql_deb: + - { package: "mysql-server" } + - { package: "python-mysqldb" } + +icinga2_web_db: "icinga_web" icinga2_web_db_dbuser: "icinga_web" +icinga2_web_db_dbpass: "icinga_web" icinga2_ido_schema_version: "2.0.2" -icinga2_ido_mysql_schema: "/usr/share/doc/icinga2-ido-mysql-{{ icinga2_ido_schema_version }}/schema/mysql.sql" +icinga2_ido_mysql_schema_rh: "/usr/share/doc/icinga2-ido-mysql-{{ icinga2_ido_schema_version }}/schema/mysql.sql" +icinga2_ido_mysql_schema_deb: "/usr/share/icinga2-ido-mysql/schema/mysql.sql" icinga2_web_mysql_schema_rh_7: "/usr/share/doc/icinga-web-1.11.1/schema/mysql.sql" icinga2_web_mysql_schema_rh_6: "/usr/share/doc/icinga-web-1.11.0/schema/mysql.sql" +icinga2_web_mysql_schema_deb_7: "/usr/share/doc/icinga-web-1.11.1/schema/mysql.sql" + icinga2_ido_mysql_conf: "/etc/icinga2/features-available/ido-mysql.conf" icinga2_ido_mysql_conf_global: