Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion icinga2-ansible-web-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
-------
Expand Down
5 changes: 5 additions & 0 deletions icinga2-ansible-web-ui/handlers/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,8 @@
service: name=httpd
state=restarted
enabled=yes

- name: restart apache2
service: name=apache2
state=restarted
enabled=yes
45 changes: 45 additions & 0 deletions icinga2-ansible-web-ui/tasks/icinga2_web_ui_Debian_install.yml
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions icinga2-ansible-web-ui/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -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'
11 changes: 11 additions & 0 deletions icinga2-ansible-web-ui/templates/database-web.xml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
# {{ ansible_managed }}
-->
<databases xmlns:db="http://agavi.org/agavi/config/parts/databases/1.0" xmlns:ae="http://agavi.org/agavi/config/global/envelope/1.0">

<db:database name="icinga_web" class="AppKitDoctrineDatabase">
<ae:parameter name="dsn">mysql://{{ icinga2_web_db_dbuser }}:{{ icinga2_web_db_dbpass }}@localhost/{{ icinga2_web_db }}</ae:parameter>
</db:database>

</databases>
15 changes: 14 additions & 1 deletion icinga2-ansible-web-ui/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand All @@ -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:
Expand Down