include apache
include mysql
-include pgsql
+# enable when icinga2-ido-pgsql is ready
+#include pgsql
include epel
include icinga-rpm-snapshot
require => Service['mysqld']
}
+# enable when icinga2-ido-pgsql is ready
#exec { 'create-pgsql-icinga2-ido-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 \'icinga\';" && \
#}
-php::extension { ['php-mysql', 'php-pgsql']:
- require => [ Class['mysql'], Class['pgsql'] ]
+php::extension { ['php-mysql']:
+ require => [ Class['mysql'] ]
}
+# enable when icinga2-ido-pgsql is ready
+#php::extension { ['php-pgsql']:
+# require => [ Class['pgsql'] ]
+#}
+
+# runtime users
group { 'icinga-cmd':
ensure => present
}
require => [ Class['apache'], Group['icinga-cmd'] ]
}
-cmmi { 'icinga-plugins':
- url => 'https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz',
- output => 'nagios-plugins-1.5.tar.gz',
- flags => '--prefix=/usr/lib64/nagios/plugins \
- --with-nagios-user=icinga --with-nagios-group=icinga \
- --with-cgiurl=/icinga-mysql/cgi-bin',
- creates => '/usr/lib64/nagios/plugins/libexec',
- make => 'make && make install',
- require => User['icinga']
-}
-
file { '/etc/profile.d/env.sh':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/profile.d/env.sh'
}
'boost-test', 'boost-thread' ]
package { $icinga2_dev_packages: ensure => installed }
-#package { 'nagios-plugins-all':
-# ensure => installed
-#}
+# nagios plugins from epel
+package { 'nagios-plugins-all':
+ ensure => installed,
+ require => Class['epel']
+}
-$icinga2_packages = [ 'icinga2', 'icinga2-doc', 'icinga2-ido-mysql', 'icinga2-classicui-config' ]
-$icinga1_packages = [ 'icinga-gui' ]
+# these package require the icinga-rpm-snapshot repository installed
+$icinga2_main_packages = [ 'icinga2', 'icinga2-doc', 'icinga2-ido-mysql', 'icinga-gui' ]
-package { $icinga2_packages:
+# workaround for package conflicts
+# icinga-gui pulls icinga-gui-config automatically
+package { 'icinga2-classicui-config':
ensure => installed,
+ before => Package["icinga-gui"],
require => Class['icinga-rpm-snapshot']
}
-package { $icinga1_packages:
+
+package { $icinga2_main_packages:
ensure => installed,
require => Class['icinga-rpm-snapshot']
}
+# enable http 80
exec { 'iptables-allow-http':
unless => 'grep -Fxqe "-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT" /etc/sysconfig/iptables',
command => 'iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT && iptables-save > /etc/sysconfig/iptables'
}
+# icinga 2 docs at /icinga2-doc
file { '/etc/httpd/conf.d/icinga2-doc.conf':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/httpd/conf.d/icinga2-doc.conf',
require => [ Package['apache'], Package['icinga2-doc'] ],
notify => Service['apache']
}
+# users
file { '/etc/motd':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/motd',
owner => root,
require => Group['icinga-cmd']
}
+# icinga2 service & features
service { 'icinga2':
enable => true,
ensure => running,