mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-30 17:24:16 +02:00
Enable icinga snapshot repository and fetch latest icinga2 packages
Furthermore get rid of multiple 'exec' calls and use 'package' instead. Additional refactoring for icinga 2 features. fixes #6405
This commit is contained in:
parent
29f593a357
commit
8fe804bbd4
@ -50,7 +50,7 @@ group { 'icinga-cmd':
|
|||||||
|
|
||||||
group { 'icingacmd':
|
group { 'icingacmd':
|
||||||
ensure => present,
|
ensure => present,
|
||||||
require => Exec['install icinga2']
|
require => Package['icinga2']
|
||||||
}
|
}
|
||||||
|
|
||||||
user { 'icinga':
|
user { 'icinga':
|
||||||
@ -343,50 +343,95 @@ package { ['cmake', 'boost-devel', 'bison', 'flex']:
|
|||||||
ensure => installed
|
ensure => installed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# icinga 2
|
||||||
|
define icinga2::feature ($feature = $title) {
|
||||||
|
exec { "icinga2-feature-${feature}":
|
||||||
|
path => '/bin:/usr/bin:/sbin:/usr/sbin',
|
||||||
|
unless => "readlink /etc/icinga2/features-enabled/${feature}.conf",
|
||||||
|
command => "icinga2-enable-feature ${feature}",
|
||||||
|
require => [ Package['icinga2'] ],
|
||||||
|
notify => Service['icinga2']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
yumrepo { 'icinga2-repo':
|
yumrepo { 'icinga2-repo':
|
||||||
baseurl => "http://packages.icinga.org/epel/6/snapshot/",
|
baseurl => "http://packages.icinga.org/epel/6/snapshot/",
|
||||||
enabled => '0',
|
enabled => '1',
|
||||||
gpgcheck => '1',
|
gpgcheck => '1',
|
||||||
gpgkey => 'http://packages.icinga.org/icinga.key',
|
gpgkey => 'http://packages.icinga.org/icinga.key',
|
||||||
descr => "Icinga Repository - ${::architecture}"
|
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':
|
exec { 'install nagios-plugins-all':
|
||||||
command => 'yum -d 0 -e 0 -y --enablerepo=epel install nagios-plugins-all',
|
command => 'yum -d 0 -e 0 -y --enablerepo=epel install nagios-plugins-all',
|
||||||
unless => 'rpm -qa | grep nagios-plugins-all',
|
unless => 'rpm -qa | grep nagios-plugins-all',
|
||||||
require => [ Class['epel'], Exec['install icinga2'] ],
|
require => [ Class['epel'], Package['icinga2'] ],
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/icinga2/features-enabled/':
|
package { 'icinga2':
|
||||||
ensure => directory,
|
ensure => latest,
|
||||||
owner => icinga,
|
require => Yumrepo['icinga2-repo'],
|
||||||
group => icinga,
|
alias => 'icinga2'
|
||||||
require => Exec['install icinga2-ido-mysql']
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
package { 'icinga2-bin':
|
||||||
|
ensure => latest,
|
||||||
|
require => [ Yumrepo['icinga2-repo'], Package['icinga2'] ],
|
||||||
|
alias => 'icinga2-bin'
|
||||||
|
}
|
||||||
|
|
||||||
|
package { 'icinga2-doc':
|
||||||
|
ensure => latest,
|
||||||
|
require => Yumrepo['icinga2-repo'],
|
||||||
|
alias => 'icinga2-doc'
|
||||||
|
}
|
||||||
|
|
||||||
|
# icinga 2 classic ui
|
||||||
|
package { 'icinga2-classicui-config':
|
||||||
|
ensure => latest,
|
||||||
|
before => Package["icinga-gui"],
|
||||||
|
require => [ Yumrepo['icinga2-repo'], Package['icinga2'] ],
|
||||||
|
notify => Service['apache']
|
||||||
|
}
|
||||||
|
|
||||||
|
package { 'icinga-gui':
|
||||||
|
ensure => latest,
|
||||||
|
require => Yumrepo['icinga2-repo'],
|
||||||
|
alias => 'icinga-gui'
|
||||||
|
}
|
||||||
|
|
||||||
|
icinga2::feature { 'statusdata':
|
||||||
|
require => Package['icinga2-classicui-config']
|
||||||
|
}
|
||||||
|
|
||||||
|
icinga2::feature { 'command':
|
||||||
|
require => Package['icinga2-classicui-config']
|
||||||
|
}
|
||||||
|
|
||||||
|
icinga2::feature { 'compatlog':
|
||||||
|
require => Package['icinga2-classicui-config']
|
||||||
|
}
|
||||||
|
|
||||||
|
# icinga 2 ido mysql
|
||||||
|
package { 'icinga2-ido-mysql':
|
||||||
|
ensure => latest,
|
||||||
|
require => Yumrepo['icinga2-repo'],
|
||||||
|
alias => 'icinga2-ido-mysql'
|
||||||
|
}
|
||||||
|
|
||||||
|
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'], Package['icinga2-ido-mysql'] ]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
file { '/etc/icinga2/features-available/ido-mysql.conf':
|
file { '/etc/icinga2/features-available/ido-mysql.conf':
|
||||||
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf',
|
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf',
|
||||||
owner => 'icinga',
|
owner => 'icinga',
|
||||||
group => 'icinga',
|
group => 'icinga',
|
||||||
require => Exec['install icinga2-ido-mysql']
|
require => Package['icinga2'],
|
||||||
|
notify => Service['icinga2']
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/icinga2/features-enabled/ido-mysql.conf':
|
file { '/etc/icinga2/features-enabled/ido-mysql.conf':
|
||||||
@ -394,46 +439,46 @@ file { '/etc/icinga2/features-enabled/ido-mysql.conf':
|
|||||||
target => '/etc/icinga2/features-available/ido-mysql.conf',
|
target => '/etc/icinga2/features-available/ido-mysql.conf',
|
||||||
owner => 'root',
|
owner => 'root',
|
||||||
group => 'root',
|
group => 'root',
|
||||||
require => Exec['install icinga2-ido-mysql']
|
require => Package['icinga2-ido-mysql']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
icinga2::feature { 'ido-mysql':
|
||||||
|
require => Exec['populate-icinga2-mysql-db']
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# icinga 2 test config
|
||||||
file { '/etc/icinga2/conf.d/test-config.conf':
|
file { '/etc/icinga2/conf.d/test-config.conf':
|
||||||
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf',
|
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/test-config.conf',
|
||||||
owner => 'icinga',
|
owner => 'icinga',
|
||||||
group => 'icinga',
|
group => 'icinga',
|
||||||
require => [ Exec['install icinga2'], Exec['create_monitoring_test_config'] ]
|
require => [ Package['icinga2'], Exec['create_monitoring_test_config'] ]
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/icinga2/conf.d/commands.conf':
|
file { '/etc/icinga2/conf.d/commands.conf':
|
||||||
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf',
|
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/conf.d/commands.conf',
|
||||||
owner => 'icinga',
|
owner => 'icinga',
|
||||||
group => 'icinga',
|
group => 'icinga',
|
||||||
require => Exec['install icinga2']
|
require => Package['icinga2']
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/icinga2/constants.conf':
|
file { '/etc/icinga2/constants.conf':
|
||||||
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/constants.conf',
|
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/constants.conf',
|
||||||
owner => 'icinga',
|
owner => 'icinga',
|
||||||
group => 'icinga',
|
group => 'icinga',
|
||||||
require => Exec['install icinga2']
|
require => Package['icinga2']
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'icinga2':
|
service { 'icinga2':
|
||||||
ensure => running,
|
ensure => running,
|
||||||
require => [
|
require => [
|
||||||
Exec['install icinga2'],
|
Package['icinga2'],
|
||||||
File['/etc/icinga2/features-enabled/ido-mysql.conf'],
|
File['/etc/icinga2/features-enabled/ido-mysql.conf'],
|
||||||
File['/etc/icinga2/conf.d/test-config.conf'],
|
File['/etc/icinga2/conf.d/test-config.conf'],
|
||||||
File['/etc/icinga2/conf.d/commands.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':
|
# cmmi { 'icinga2':
|
||||||
# url => "https://github.com/Icinga/icinga2/releases/download/v${icinga2Version}/icinga2-${icinga2Version}.tar.gz",
|
# url => "https://github.com/Icinga/icinga2/releases/download/v${icinga2Version}/icinga2-${icinga2Version}.tar.gz",
|
||||||
# output => "icinga2-${icinga2Version}.tar.gz",
|
# output => "icinga2-${icinga2Version}.tar.gz",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user