From 5dd85a7ee1b188de55f00dd107f3fa7ba2211fd8 Mon Sep 17 00:00:00 2001 From: Marius Hein Date: Fri, 9 May 2014 13:25:16 +0200 Subject: [PATCH 1/4] Vagrant: Add Icinga2 and test configuration refs #6127 --- .../files/etc/icinga2/conf.d/commands.conf | 48 ++ .../files/etc/icinga2/conf.d/test-config.conf | 681 ++++++++++++++++++ .../icinga2/features-available/ido-mysql.conf | 13 + .../icinga2/features-available/ido-pgsql.conf | 13 + .../modules/monitoring/instances.ini | 2 +- .../files/etc/icingaweb/resources.ini | 6 +- .vagrant-puppet/manifests/default.pp | 120 ++- 7 files changed, 868 insertions(+), 15 deletions(-) create mode 100644 .vagrant-puppet/files/etc/icinga2/conf.d/commands.conf create mode 100644 .vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf create mode 100644 .vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf create mode 100644 .vagrant-puppet/files/etc/icinga2/features-available/ido-pgsql.conf diff --git a/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf b/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf new file mode 100644 index 000000000..9000ac090 --- /dev/null +++ b/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf @@ -0,0 +1,48 @@ +/* Command objects */ + +object CheckCommand "kernel" { + import "plugin-check-command" + + command = [ "sudo", SysconfDir + "/icinga2/scripts/check_kernel" ] +} + +object NotificationCommand "mail-host-notification" { + import "plugin-notification-command" + + command = [ "/bin/true" ] + + env = { + "NOTIFICATIONTYPE" = "$notification.type$" + "HOSTALIAS" = "$host.display_name$", + "HOSTADDRESS" = "$address$", + "HOSTSTATE" = "$host.state$", + "LONGDATETIME" = "$icinga.long_date_time$", + "HOSTOUTPUT" = "$host.output$", + "NOTIFICATIONAUTHORNAME" = "$notification.author$", + "NOTIFICATIONCOMMENT" = "$notification.comment$", + "HOSTDISPLAYNAME" = "$host.display_name$", + "USEREMAIL" = "$user.email$" + } +} + +object NotificationCommand "mail-service-notification" { + import "plugin-notification-command" + + command = [ "/bin/true" ] + + env = { + "NOTIFICATIONTYPE" = "$notification.type$" + "SERVICEDESC" = "$service.name$" + "HOSTALIAS" = "$host.display_name$", + "HOSTADDRESS" = "$address$", + "SERVICESTATE" = "$service.state$", + "LONGDATETIME" = "$icinga.long_date_time$", + "SERVICEOUTPUT" = "$service.output$", + "NOTIFICATIONAUTHORNAME" = "$notification.author$", + "NOTIFICATIONCOMMENT" = "$notification.comment$", + "HOSTDISPLAYNAME" = "$host.display_name$", + "SERVICEDISPLAYNAME" = "$service.display_name$", + "USEREMAIL" = "$user.email$" + } +} + diff --git a/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf new file mode 100644 index 000000000..279f2ec1a --- /dev/null +++ b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf @@ -0,0 +1,681 @@ + +template CheckCommand "dummy-host-generic" { + import "plugin-check-command" + command = [ PluginDir + "/libexec/test_hostcheck.pl" ] + arguments = { + "--type" = "$check_type$" + "--failchance" = "$check_failchance$" + "--previous-state" = "$check_previous_state$" + "--state-duration" = "$check_state_duration$" + "--hostname" = "$check_hostname$" + } + + vars.check_type = "UP" + vars.check_failchance = "2%" + vars.check_previous_state = "$state$" + vars.check_state_duration = "$duration_sec$" + vars.check_hostname = "$name$" +} + +template CheckCommand "dummy-service-generic" { + import "plugin-check-command" + command = [ PluginDir + "/libexec/test_servicecheck.pl" ] + arguments = { + "--total-critical-on-host" = "$check_critical_on_host$" + "--total-warning-on-host" = "$check_warning_on_host$" + "--type" = "$check_type$" + "--failchance" = "$check_failchance$" + "--previous-state" = "$check_previous_state$" + "--state-duration" = "$check_state_duration$" + "--hostname" = "$check_hostname$" + "--servicedesc" = "$check_servicedesc$" + } + vars.check_critical_on_host = "$host.total_services_critical$" + vars.check_warning_on_host = "$host.total_services_warning$" + vars.check_type = "random" + vars.check_failchange = "5%" + vars.check_previous_state = "$service.state$" + vars.check_duration = "$service.duration_sec$" + vars.check_hostname = "$host.name$" + vars.check_servicedesc = "$service.name$" +} + +object CheckCommand "dummy-host" { + import "dummy-host-generic" +} + +object CheckCommand "dummy-service" { + import "dummy-service-generic" +} + +// Hostgroups + +object HostGroup "all-hosts" { + display_name = "All hosts on the system" + assign where true +} + +object HostGroup "all-ok" { + display_name = "All ok hosts" + assign where regex("^test-ok", host.name) +} + +object HostGroup "all-chaos" { + display_name = "All chaos hosts" + assign where regex("^test-chaos", host.name) +} + +object HostGroup "all-down" { + display_name = "All down hosts" + assign where regex("^test-down", host.name) +} + +object HostGroup "all-up" { + display_name = "All ok hosts" + assign where regex("^test-ok", host.name) +} + +object HostGroup "all-unreachable" { + display_name = "All ok hosts" + assign where regex("^test-unreachable", host.name) +} + +object HostGroup "all-pending" { + display_name = "All ok hosts" + assign where regex("^test-pending", host.name) +} + +// Servicegroups + +object ServiceGroup "service-ok" { + display_name = "All ok services" + assign where regex("^service-ok", service.name) +} + +object ServiceGroup "service-warning" { + display_name = "All warning services" + assign where regex("^service-warning", service.name) +} + +object ServiceGroup "service-critical" { + display_name = "All critical services" + assign where regex("^service-critical", service.name) +} + +object ServiceGroup "service-unknown" { + display_name = "All unknown services" + assign where regex("^service-unknown", service.name) +} + +object ServiceGroup "service-flapping" { + display_name = "All flapping services" + assign where regex("^service-flapping", service.name) +} + + +object ServiceGroup "service-pending" { + display_name = "All pending services" + assign where regex("^service-pending", service.name) +} + + +// --------------------------------------------------------------------------------------------------------------------- +// Services +// --------------------------------------------------------------------------------------------------------------------- + +apply Service "service-ok-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "ok" + assign where match("*ok*", host.vars.check_config) +} + +apply Service "service-ok-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "ok" + assign where match("*ok*", host.vars.check_config) +} + +apply Service "service-ok-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "ok" + assign where match("*ok*", host.vars.check_config) +} + +apply Service "service-warning-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "warning" + assign where match("*warning*", host.vars.check_config) +} + +apply Service "service-warning-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "warning" + assign where match("*warning*", host.vars.check_config) +} + +apply Service "service-warning-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "warning" + assign where match("*warning*", host.vars.check_config) +} + +apply Service "service-critical-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "critical" + assign where match("*critical*", host.vars.check_config) +} + +apply Service "service-critical-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "critical" + assign where match("*critical*", host.vars.check_config) +} + +apply Service "service-critical-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "critical" + assign where match("*critical*", host.vars.check_config) +} + +apply Service "service-flapping-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "flap" + assign where match("*flap*", host.vars.check_config) +} + +apply Service "service-flapping-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "flap" + assign where match("*flap*", host.vars.check_config) +} + +apply Service "service-flapping-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "flap" + assign where match("*flap*", host.vars.check_config) +} + +apply Service "service-chaos-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "random" + assign where match("*random*", host.vars.check_config) +} + +apply Service "service-chaos-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "random" + assign where match("*random*", host.vars.check_config) +} + +apply Service "service-chaos-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "random" + assign where match("*random*", host.vars.check_config) +} + +apply Service "service-unknown-001" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "unknown" + assign where match("*unknown*", host.vars.check_config) +} + +apply Service "service-unknown-002" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "unknown" + assign where match("*unknown*", host.vars.check_config) +} + +apply Service "service-unknown-003" { + import "generic-service" + check_command = "dummy-service" + vars.check_type = "unknown" + assign where match("*unknown*", host.vars.check_config) +} + +apply Service "service-pending-001" { + import "generic-service" + check_command = "dummy-service" + enable_active_checks = false + vars.check_type = "pending" + assign where match("*pending*", host.vars.check_config) +} + +apply Service "service-pending-002" { + import "generic-service" + check_command = "dummy-service" + enable_active_checks = false + vars.check_type = "unknown" + assign where match("*pending*", host.vars.check_config) +} + +apply Service "service-pending-003" { + import "generic-service" + check_command = "dummy-service" + enable_active_checks = false + vars.check_type = "pending" + assign where match("*pending*", host.vars.check_config) +} + + +// --------------------------------------------------------------------------------------------------------------------- +// Hosts +// --------------------------------------------------------------------------------------------------------------------- + +// OK + +object Host "test-ok-001" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-002" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-003" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-004" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-005" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-006" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-007" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-008" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-009" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +object Host "test-ok-010" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_config = "ok" +} + +// Chaotic + +object Host "test-chaos-001" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-002" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-003" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-004" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-005" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-006" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-007" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-008" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-009" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +object Host "test-chaos-010" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "random" + vars.check_config = "random,flap" +} + +// Down + +object Host "test-down-001" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-002" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-003" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-004" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-005" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-006" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-007" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-008" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-009" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +object Host "test-down-010" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "down" + vars.check_config = "warning,critical" +} + +// Unreachable + +object Host "test-unreachable-001" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-002" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-003" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-004" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-005" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-006" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-007" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-008" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-009" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +object Host "test-unreachable-010" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "unreachable" + vars.check_config = "unknown" +} + +// Pending + +object Host "test-pending-001" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-002" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-003" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-004" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-005" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-006" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-007" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-008" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-009" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +object Host "test-pending-010" { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + vars.check_type = "pending" + vars.check_config = "pending" +} + +// EOF \ No newline at end of file diff --git a/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf b/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf new file mode 100644 index 000000000..3e278fe2d --- /dev/null +++ b/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf @@ -0,0 +1,13 @@ +/** + * The db_ido_mysql library implements IDO functionality + * for MySQL. + */ + +library "db_ido_mysql" + +object IdoMysqlConnection "ido-mysql" { + user = "icinga2", + password = "icinga2", + host = "localhost", + database = "icinga2" +} diff --git a/.vagrant-puppet/files/etc/icinga2/features-available/ido-pgsql.conf b/.vagrant-puppet/files/etc/icinga2/features-available/ido-pgsql.conf new file mode 100644 index 000000000..e16cc6c3d --- /dev/null +++ b/.vagrant-puppet/files/etc/icinga2/features-available/ido-pgsql.conf @@ -0,0 +1,13 @@ +/** + * The db_ido_pgsql library implements IDO functionality + * for PostgreSQL. + */ + +library "db_ido_pgsql" + +object IdoPgsqlConnection "ido-pgsql" { + user = "icinga2", + password = "icinga2", + host = "localhost", + database = "icinga2" +} diff --git a/.vagrant-puppet/files/etc/icingaweb/modules/monitoring/instances.ini b/.vagrant-puppet/files/etc/icingaweb/modules/monitoring/instances.ini index 2f54e11e3..037baa8b9 100644 --- a/.vagrant-puppet/files/etc/icingaweb/modules/monitoring/instances.ini +++ b/.vagrant-puppet/files/etc/icingaweb/modules/monitoring/instances.ini @@ -1,2 +1,2 @@ [icinga] -path = "/usr/local/icinga-mysql/var/rw/icinga.cmd" +path = "/var/run/icinga2/cmd/icinga2.cmd" diff --git a/.vagrant-puppet/files/etc/icingaweb/resources.ini b/.vagrant-puppet/files/etc/icingaweb/resources.ini index 2ef51e921..3935906eb 100644 --- a/.vagrant-puppet/files/etc/icingaweb/resources.ini +++ b/.vagrant-puppet/files/etc/icingaweb/resources.ini @@ -12,9 +12,9 @@ type = db db = mysql host = localhost port = 3306 -password = icinga -username = icinga -dbname = icinga +password = icinga2 +username = icinga2 +dbname = icinga2 [statusdat] type = statusdat diff --git a/.vagrant-puppet/manifests/default.pp b/.vagrant-puppet/manifests/default.pp index 9c5666a89..526bdda2b 100644 --- a/.vagrant-puppet/manifests/default.pp +++ b/.vagrant-puppet/manifests/default.pp @@ -5,17 +5,25 @@ include openldap Exec { path => '/bin:/usr/bin:/sbin' } -$icingaVersion = '1.9.4' -$icinga2Version = '0.0.6' +$icingaVersion = '1.11.2' +$icinga2Version = '0.0.10' exec { 'create-mysql-icinga-db': unless => 'mysql -uicinga -picinga icinga', command => 'mysql -uroot -e "CREATE DATABASE icinga; \ - GRANT ALL ON icinga.* TO icinga@localhost \ + GRANT SELECT,INSERT,UPDATE,DELETE ON icinga.* TO icinga@localhost \ IDENTIFIED BY \'icinga\';"', require => Service['mysqld'] } +exec { 'create-mysql-icinga2-db': + unless => 'mysql -uicinga2 -picinga2 icinga2', + command => 'mysql -uroot -e "CREATE DATABASE icinga2; \ + GRANT SELECT,INSERT,UPDATE,DELETE ON icinga2.* to icinga2@localhost \ + IDENTIFIED BY \'icinga2\';"', + require => Service['mysqld'] +} + exec{ 'create-pgsql-icinga-db': unless => 'sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname=\'icinga\'" | grep -q 1', command => 'sudo -u postgres psql -c "CREATE ROLE icinga WITH LOGIN PASSWORD \'icingaweb\';" && \ @@ -40,6 +48,11 @@ group { 'icinga-cmd': ensure => present } +group { 'icingacmd': + ensure => present, + require => Exec['install icinga2'] +} + user { 'icinga': ensure => present, groups => 'icinga-cmd', @@ -47,8 +60,8 @@ user { 'icinga': } user { 'apache': - groups => ['icinga-cmd', 'vagrant'], - require => [ Class['apache'], Group['icinga-cmd'] ] + groups => ['icinga-cmd', 'vagrant', 'icingacmd'], + require => [ Class['apache'], Group['icinga-cmd'], Group['icingacmd'] ] } cmmi { 'icinga-mysql': @@ -104,7 +117,7 @@ file { '/etc/init.d/ido2db-pgsql': exec { 'populate-icinga-mysql-db': unless => 'mysql -uicinga -picinga icinga -e "SELECT * FROM icinga_dbversion;" &> /dev/null', - command => "mysql -uicinga -picinga icinga < /usr/local/src/icinga-mysql/icinga-${icingaVersion}/module/idoutils/db/mysql/mysql.sql", + command => "mysql -uroot icinga < /usr/local/src/icinga-mysql/icinga-${icingaVersion}/module/idoutils/db/mysql/mysql.sql", require => [ Cmmi['icinga-mysql'], Exec['create-mysql-icinga-db'] ] } @@ -330,7 +343,92 @@ package { ['cmake', 'boost-devel', 'bison', 'flex']: ensure => installed } -#cmmi { 'icinga2': +yumrepo { 'icinga2-repo': + baseurl => "http://packages.icinga.org/epel/6/release/", + enabled => '0', + gpgcheck => '1', + gpgkey => 'http://packages.icinga.org/icinga.key', + descr => "Icinga Repository - ${::architecture}" +} + +exec { 'install icinga2': + command => 'yum -d 0 -e 0 -y --enablerepo=icinga2-repo install icinga2', + unless => 'rpm -qa | grep icinga2', + require => Yumrepo['icinga2-repo'] +} + +exec { 'install icinga2-classicui-config': + command => 'yum -d 0 -e 0 -y --enablerepo=icinga2-repo install icinga2-classicui-config', + unless => 'rpm -qa | grep icinga2-classicui-config', + require => [ Yumrepo['icinga2-repo'], Exec['install icinga2'], Exec['install icinga2-ido-mysql'] ] +} + +exec { 'install icinga2-ido-mysql': + command => 'yum -d 0 -e 0 -y --enablerepo=icinga2-repo install icinga2-ido-mysql', + unless => 'rpm -qa | grep icinga2-ido-mysql', + require => [ Yumrepo['icinga2-repo'], Exec['install icinga2'] ], +} + +exec { 'install nagios-plugins-all': + command => 'yum -d 0 -e 0 -y --enablerepo=epel install nagios-plugins-all', + unless => 'rpm -qa | grep nagios-plugins-all', + require => [ Class['epel'], Exec['install icinga2'] ], +} + +file { '/etc/icinga2/features-enabled/': + ensure => directory, + owner => icinga, + group => icinga, + require => Exec['install icinga2-ido-mysql'] +} + +file { '/etc/icinga2/features-available/ido-mysql.conf': + source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf', + owner => 'icinga', + group => 'icinga', + require => Exec['install icinga2-ido-mysql'] +} + +file { '/etc/icinga2/features-enabled/ido-mysql.conf': + ensure => 'link', + target => '/etc/icinga2/features-available/ido-mysql.conf', + owner => 'root', + group => 'root', + require => Exec['install icinga2-ido-mysql'] +} + +file { '/etc/icinga2/conf.d/test-config.conf': + source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf', + owner => 'icinga', + group => 'icinga', + require => Exec['install icinga2'] +} + +file { '/etc/icinga2/conf.d/commands.conf': + source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf', + owner => 'icinga', + group => 'icinga', + require => Exec['install icinga2'] +} + +service { 'icinga2': + ensure => running, + require => [ + Exec['install icinga2'], + File['/etc/icinga2/features-enabled/ido-mysql.conf'], + File['/etc/icinga2/conf.d/test-config.conf'], + File['/etc/icinga2/conf.d/commands.conf'] + ] +} + + +exec { 'populate-icinga2-mysql-db': + unless => 'mysql -uicinga2 -picinga2 icinga2 -e "SELECT * FROM icinga_dbversion;" &> /dev/null', + command => "mysql -uroot icinga2 < /usr/share/doc/icinga2-ido-mysql-$icinga2Version/schema/mysql.sql", + require => [ Exec['create-mysql-icinga2-db'], Exec['install icinga2-ido-mysql'] ] +} + +# cmmi { 'icinga2': # url => "https://github.com/Icinga/icinga2/releases/download/v${icinga2Version}/icinga2-${icinga2Version}.tar.gz", # output => "icinga2-${icinga2Version}.tar.gz", # configure_command => 'mkdir build &> /dev/null || true && cd build && sudo cmake ..', @@ -338,7 +436,7 @@ package { ['cmake', 'boost-devel', 'bison', 'flex']: # make => 'true && cd build/ && make && make install', # require => Package[ ['cmake', 'boost-devel', 'bison', 'flex'] ], # make_timeout => 900 -#} +# } #configure { 'icingaweb': # path => '/vagrant', @@ -699,6 +797,6 @@ file { '/etc/icingaweb/dashboard/dashboard.ini': group => 'apache', } -pear::package { 'deepend/Mockery': - channel => 'pear.survivethedeepend.com' -} +# pear::package { 'deepend/Mockery': +# channel => 'pear.survivethedeepend.com' +# } From fb44940deae8c5f6ae3f12fdb0dfc40c68de00e4 Mon Sep 17 00:00:00 2001 From: Marius Hein Date: Fri, 9 May 2014 15:09:44 +0200 Subject: [PATCH 2/4] Vagrant/Icinga2: Optimize test configuration --- .../files/etc/icinga2/conf.d/test-config.conf | 641 +++--------------- 1 file changed, 109 insertions(+), 532 deletions(-) diff --git a/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf index 279f2ec1a..edf3ecffd 100644 --- a/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf +++ b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf @@ -62,7 +62,7 @@ object HostGroup "all-ok" { object HostGroup "all-chaos" { display_name = "All chaos hosts" - assign where regex("^test-chaos", host.name) + assign where regex("^test-random", host.name) } object HostGroup "all-down" { @@ -123,559 +123,136 @@ object ServiceGroup "service-pending" { // Services // --------------------------------------------------------------------------------------------------------------------- -apply Service "service-ok-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "ok" - assign where match("*ok*", host.vars.check_config) +function createService(filter, num, checkEnabled) { + apply Service "service-" + filter + "-" + num { + import "generic-service" + check_command = "dummy-service" + enable_active_checks = checkEnabled + vars.check_type = filter + assign where match("*" + filter + "*", host.vars.check_config) + } } -apply Service "service-ok-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "ok" - assign where match("*ok*", host.vars.check_config) -} +createService("ok", "001", true) +createService("ok", "002", true) +createService("ok", "003", true) +createService("ok", "004", true) -apply Service "service-ok-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "ok" - assign where match("*ok*", host.vars.check_config) -} +createService("warning", "001", true) +createService("warning", "002", true) +createService("warning", "003", true) +createService("warning", "004", true) -apply Service "service-warning-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "warning" - assign where match("*warning*", host.vars.check_config) -} +createService("critical", "001", true) +createService("critical", "002", true) +createService("critical", "003", true) +createService("critical", "004", true) -apply Service "service-warning-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "warning" - assign where match("*warning*", host.vars.check_config) -} +createService("flap", "001", true) +createService("flap", "002", true) +createService("flap", "003", true) +createService("flap", "004", true) -apply Service "service-warning-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "warning" - assign where match("*warning*", host.vars.check_config) -} +createService("random", "001", true) +createService("random", "002", true) +createService("random", "003", true) +createService("random", "004", true) -apply Service "service-critical-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "critical" - assign where match("*critical*", host.vars.check_config) -} - -apply Service "service-critical-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "critical" - assign where match("*critical*", host.vars.check_config) -} - -apply Service "service-critical-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "critical" - assign where match("*critical*", host.vars.check_config) -} - -apply Service "service-flapping-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "flap" - assign where match("*flap*", host.vars.check_config) -} - -apply Service "service-flapping-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "flap" - assign where match("*flap*", host.vars.check_config) -} - -apply Service "service-flapping-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "flap" - assign where match("*flap*", host.vars.check_config) -} - -apply Service "service-chaos-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "random" - assign where match("*random*", host.vars.check_config) -} - -apply Service "service-chaos-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "random" - assign where match("*random*", host.vars.check_config) -} - -apply Service "service-chaos-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "random" - assign where match("*random*", host.vars.check_config) -} - -apply Service "service-unknown-001" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "unknown" - assign where match("*unknown*", host.vars.check_config) -} - -apply Service "service-unknown-002" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "unknown" - assign where match("*unknown*", host.vars.check_config) -} - -apply Service "service-unknown-003" { - import "generic-service" - check_command = "dummy-service" - vars.check_type = "unknown" - assign where match("*unknown*", host.vars.check_config) -} - -apply Service "service-pending-001" { - import "generic-service" - check_command = "dummy-service" - enable_active_checks = false - vars.check_type = "pending" - assign where match("*pending*", host.vars.check_config) -} - -apply Service "service-pending-002" { - import "generic-service" - check_command = "dummy-service" - enable_active_checks = false - vars.check_type = "unknown" - assign where match("*pending*", host.vars.check_config) -} - -apply Service "service-pending-003" { - import "generic-service" - check_command = "dummy-service" - enable_active_checks = false - vars.check_type = "pending" - assign where match("*pending*", host.vars.check_config) -} +createService("unknown", "001", true) +createService("unknown", "002", true) +createService("unknown", "003", true) +createService("unknown", "004", true) +createService("pending", "001", false) +createService("pending", "002", false) +createService("pending", "003", false) +createService("pending", "004", false) // --------------------------------------------------------------------------------------------------------------------- // Hosts // --------------------------------------------------------------------------------------------------------------------- +function createHost(checkType, checkConfig, num, checkEnabled) { + object Host "test-" + checkType + "-" + num { + import "generic-host" + address = "127.0.0.1" + check_command = "dummy-host" + enable_active_checks = checkEnabled + vars.check_type = checkType + vars.check_config = checkConfig + } +} + // OK - -object Host "test-ok-001" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-002" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-003" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-004" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-005" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-006" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-007" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-008" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-009" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} - -object Host "test-ok-010" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_config = "ok" -} +createHost("ok", "ok", "001", true) +createHost("ok", "ok", "002", true) +createHost("ok", "ok", "003", true) +createHost("ok", "ok", "004", true) +createHost("ok", "ok", "005", true) +createHost("ok", "ok", "006", true) +createHost("ok", "ok", "007", true) +createHost("ok", "ok", "008", true) +createHost("ok", "ok", "009", true) +createHost("ok", "ok", "010", true) // Chaotic - -object Host "test-chaos-001" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-002" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-003" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-004" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-005" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-006" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-007" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-008" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-009" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} - -object Host "test-chaos-010" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "random" - vars.check_config = "random,flap" -} +createHost("random", "random,flap", "001", true) +createHost("random", "random,flap", "002", true) +createHost("random", "random,flap", "003", true) +createHost("random", "random,flap", "004", true) +createHost("random", "random,flap", "005", true) +createHost("random", "random,flap", "006", true) +createHost("random", "random,flap", "007", true) +createHost("random", "random,flap", "008", true) +createHost("random", "random,flap", "009", true) +createHost("random", "random,flap", "010", true) // Down - -object Host "test-down-001" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-002" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-003" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-004" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-005" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-006" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-007" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-008" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-009" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} - -object Host "test-down-010" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "down" - vars.check_config = "warning,critical" -} +createHost("down", "warning,critical", "001", true) +createHost("down", "warning,critical", "002", true) +createHost("down", "warning,critical", "003", true) +createHost("down", "warning,critical", "004", true) +createHost("down", "warning,critical", "005", true) +createHost("down", "warning,critical", "006", true) +createHost("down", "warning,critical", "007", true) +createHost("down", "warning,critical", "008", true) +createHost("down", "warning,critical", "009", true) +createHost("down", "warning,critical", "010", true) // Unreachable - -object Host "test-unreachable-001" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-002" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-003" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-004" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-005" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-006" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-007" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-008" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-009" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} - -object Host "test-unreachable-010" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "unreachable" - vars.check_config = "unknown" -} +createHost("unreachable", "unknown", "001", true) +createHost("unreachable", "unknown", "002", true) +createHost("unreachable", "unknown", "003", true) +createHost("unreachable", "unknown", "004", true) +createHost("unreachable", "unknown", "005", true) +createHost("unreachable", "unknown", "006", true) +createHost("unreachable", "unknown", "007", true) +createHost("unreachable", "unknown", "008", true) +createHost("unreachable", "unknown", "009", true) +createHost("unreachable", "unknown", "010", true) // Pending +createHost("pending", "pending", "001", false) +createHost("pending", "pending", "002", false) +createHost("pending", "pending", "003", false) +createHost("pending", "pending", "004", false) +createHost("pending", "pending", "005", false) +createHost("pending", "pending", "006", false) +createHost("pending", "pending", "007", false) +createHost("pending", "pending", "008", false) +createHost("pending", "pending", "009", false) +createHost("pending", "pending", "010", false) -object Host "test-pending-001" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-002" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-003" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-004" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-005" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-006" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-007" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-008" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-009" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} - -object Host "test-pending-010" { - import "generic-host" - address = "127.0.0.1" - check_command = "dummy-host" - vars.check_type = "pending" - vars.check_config = "pending" -} +// Flapping +createHost("flap", "flap", "001", true) +createHost("flap", "flap", "002", true) +createHost("flap", "flap", "003", true) +createHost("flap", "flap", "004", true) +createHost("flap", "flap", "005", true) +createHost("flap", "flap", "006", true) +createHost("flap", "flap", "007", true) +createHost("flap", "flap", "008", true) +createHost("flap", "flap", "009", true) +createHost("flap", "flap", "010", true) // EOF \ No newline at end of file From 8d42914a84281dc203edcb2034aa59b40fca26af Mon Sep 17 00:00:00 2001 From: Marius Hein Date: Fri, 9 May 2014 15:37:34 +0200 Subject: [PATCH 3/4] Vagrant/Icinga2: Upgrade to snapshots and optimize configuration refs #6127 --- .../files/etc/icinga2/conf.d/test-config.conf | 134 ++++-------------- .vagrant-puppet/manifests/default.pp | 2 +- 2 files changed, 26 insertions(+), 110 deletions(-) diff --git a/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf index edf3ecffd..ee13a0ebb 100644 --- a/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf +++ b/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf @@ -40,6 +40,7 @@ template CheckCommand "dummy-service-generic" { vars.check_servicedesc = "$service.name$" } +// Concrete check commands object CheckCommand "dummy-host" { import "dummy-host-generic" } @@ -49,7 +50,6 @@ object CheckCommand "dummy-service" { } // Hostgroups - object HostGroup "all-hosts" { display_name = "All hosts on the system" assign where true @@ -86,7 +86,6 @@ object HostGroup "all-pending" { } // Servicegroups - object ServiceGroup "service-ok" { display_name = "All ok services" assign where regex("^service-ok", service.name) @@ -118,13 +117,18 @@ object ServiceGroup "service-pending" { assign where regex("^service-pending", service.name) } +// Config helper +function loop(count, func) { + count == 1 || loop(count - 1, func) + func(count) +} // --------------------------------------------------------------------------------------------------------------------- // Services // --------------------------------------------------------------------------------------------------------------------- function createService(filter, num, checkEnabled) { - apply Service "service-" + filter + "-" + num { + apply Service "service-" + filter + "-" + string(num) { import "generic-service" check_command = "dummy-service" enable_active_checks = checkEnabled @@ -133,47 +137,22 @@ function createService(filter, num, checkEnabled) { } } -createService("ok", "001", true) -createService("ok", "002", true) -createService("ok", "003", true) -createService("ok", "004", true) - -createService("warning", "001", true) -createService("warning", "002", true) -createService("warning", "003", true) -createService("warning", "004", true) - -createService("critical", "001", true) -createService("critical", "002", true) -createService("critical", "003", true) -createService("critical", "004", true) - -createService("flap", "001", true) -createService("flap", "002", true) -createService("flap", "003", true) -createService("flap", "004", true) - -createService("random", "001", true) -createService("random", "002", true) -createService("random", "003", true) -createService("random", "004", true) - -createService("unknown", "001", true) -createService("unknown", "002", true) -createService("unknown", "003", true) -createService("unknown", "004", true) - -createService("pending", "001", false) -createService("pending", "002", false) -createService("pending", "003", false) -createService("pending", "004", false) +loop(4, lambda num: { + createService("ok", num, true) + createService("warning", num, true) + createService("critical", num, true) + createService("flap", num, true) + createService("random", num, true) + createService("unknown", num, true) + createService("pending", num, false) +}) // --------------------------------------------------------------------------------------------------------------------- // Hosts // --------------------------------------------------------------------------------------------------------------------- function createHost(checkType, checkConfig, num, checkEnabled) { - object Host "test-" + checkType + "-" + num { + object Host "test-" + checkType + "-" + string(num) { import "generic-host" address = "127.0.0.1" check_command = "dummy-host" @@ -183,76 +162,13 @@ function createHost(checkType, checkConfig, num, checkEnabled) { } } -// OK -createHost("ok", "ok", "001", true) -createHost("ok", "ok", "002", true) -createHost("ok", "ok", "003", true) -createHost("ok", "ok", "004", true) -createHost("ok", "ok", "005", true) -createHost("ok", "ok", "006", true) -createHost("ok", "ok", "007", true) -createHost("ok", "ok", "008", true) -createHost("ok", "ok", "009", true) -createHost("ok", "ok", "010", true) - -// Chaotic -createHost("random", "random,flap", "001", true) -createHost("random", "random,flap", "002", true) -createHost("random", "random,flap", "003", true) -createHost("random", "random,flap", "004", true) -createHost("random", "random,flap", "005", true) -createHost("random", "random,flap", "006", true) -createHost("random", "random,flap", "007", true) -createHost("random", "random,flap", "008", true) -createHost("random", "random,flap", "009", true) -createHost("random", "random,flap", "010", true) - -// Down -createHost("down", "warning,critical", "001", true) -createHost("down", "warning,critical", "002", true) -createHost("down", "warning,critical", "003", true) -createHost("down", "warning,critical", "004", true) -createHost("down", "warning,critical", "005", true) -createHost("down", "warning,critical", "006", true) -createHost("down", "warning,critical", "007", true) -createHost("down", "warning,critical", "008", true) -createHost("down", "warning,critical", "009", true) -createHost("down", "warning,critical", "010", true) - -// Unreachable -createHost("unreachable", "unknown", "001", true) -createHost("unreachable", "unknown", "002", true) -createHost("unreachable", "unknown", "003", true) -createHost("unreachable", "unknown", "004", true) -createHost("unreachable", "unknown", "005", true) -createHost("unreachable", "unknown", "006", true) -createHost("unreachable", "unknown", "007", true) -createHost("unreachable", "unknown", "008", true) -createHost("unreachable", "unknown", "009", true) -createHost("unreachable", "unknown", "010", true) - -// Pending -createHost("pending", "pending", "001", false) -createHost("pending", "pending", "002", false) -createHost("pending", "pending", "003", false) -createHost("pending", "pending", "004", false) -createHost("pending", "pending", "005", false) -createHost("pending", "pending", "006", false) -createHost("pending", "pending", "007", false) -createHost("pending", "pending", "008", false) -createHost("pending", "pending", "009", false) -createHost("pending", "pending", "010", false) - -// Flapping -createHost("flap", "flap", "001", true) -createHost("flap", "flap", "002", true) -createHost("flap", "flap", "003", true) -createHost("flap", "flap", "004", true) -createHost("flap", "flap", "005", true) -createHost("flap", "flap", "006", true) -createHost("flap", "flap", "007", true) -createHost("flap", "flap", "008", true) -createHost("flap", "flap", "009", true) -createHost("flap", "flap", "010", true) +loop(10, lambda num: { + createHost("ok", "ok", num, true) + createHost("random", "random,flap", num, true) + createHost("down", "warning,critical", num, true) + createHost("unreachable", "unknown", num, true) + createHost("pending", "pending", num, false) + createHost("flap", "flap", num, true) + }) // EOF \ No newline at end of file diff --git a/.vagrant-puppet/manifests/default.pp b/.vagrant-puppet/manifests/default.pp index 526bdda2b..4d30e58c4 100644 --- a/.vagrant-puppet/manifests/default.pp +++ b/.vagrant-puppet/manifests/default.pp @@ -344,7 +344,7 @@ package { ['cmake', 'boost-devel', 'bison', 'flex']: } yumrepo { 'icinga2-repo': - baseurl => "http://packages.icinga.org/epel/6/release/", + baseurl => "http://packages.icinga.org/epel/6/snapshot/", enabled => '0', gpgcheck => '1', gpgkey => 'http://packages.icinga.org/icinga.key', From d681031b7b81b0733ab948feb963b1d3e9821781 Mon Sep 17 00:00:00 2001 From: Marius Hein Date: Fri, 9 May 2014 18:40:46 +0200 Subject: [PATCH 4/4] Vagrant/Icinga2: Add dependencies for test config refs #6127 --- .vagrant-puppet/manifests/default.pp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.vagrant-puppet/manifests/default.pp b/.vagrant-puppet/manifests/default.pp index 4d30e58c4..0119837f4 100644 --- a/.vagrant-puppet/manifests/default.pp +++ b/.vagrant-puppet/manifests/default.pp @@ -401,7 +401,7 @@ file { '/etc/icinga2/conf.d/test-config.conf': source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf', owner => 'icinga', group => 'icinga', - require => Exec['install icinga2'] + require => [ Exec['install icinga2'], Exec['create_monitoring_test_config'] ] } file { '/etc/icinga2/conf.d/commands.conf': @@ -421,7 +421,6 @@ service { 'icinga2': ] } - exec { 'populate-icinga2-mysql-db': unless => 'mysql -uicinga2 -picinga2 icinga2 -e "SELECT * FROM icinga_dbversion;" &> /dev/null', command => "mysql -uroot icinga2 < /usr/share/doc/icinga2-ido-mysql-$icinga2Version/schema/mysql.sql",