Puppet Class: icinga::web
- Defined in:
- manifests/web.pp
Overview
Class: icinga::web
This class provides the Icinga-web functionality
Rather than invoking this class directly, it should be invoked via the main Icinga class. Generally, you should enable idoutils for icinga-web to function.
Examples:
class { '::icinga':
puppi => true,
enable_idoutils => true,
enable_icingaweb => true,
enable_debian_repo_legacy => false,
manage_repos => true,
}
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'manifests/web.pp', line 20
class icinga::web {
require icinga::idoutils
package { 'icinga-web':
ensure => $icinga::manage_package,
require => Class['icinga::repository'],
}
package { 'php-mysql':
ensure => $icinga::manage_package,
name => $icinga::phpmysql_package,
}
file { $icinga::apache_icingaweb_config:
ensure => present,
notify => Service['apache'],
require => Package['icinga-web'],
}
file { 'icingaweb.conf':
ensure => $icinga::manage_file,
path => $icinga::config_file_icingaweb,
mode => $icinga::config_file_mode_icingaweb,
owner => $icinga::config_file_owner_icingaweb,
group => $icinga::config_file_group_icingaweb,
require => Package['icinga-web'],
# notify => $icinga::manage_service_autorestart,
content => $icinga::manage_file_content_icingaweb,
replace => $icinga::manage_file_replace,
audit => $icinga::manage_audit,
}
# The whole icinga-web configuration directory can be overriden recursively
if $icinga::source_dir_icingaweb {
file { 'icingaweb.dir':
ensure => directory,
path => $icinga::config_dir_icingaweb,
require => Package['icinga-web'],
# notify => $icinga::manage_service_autorestart,
source => $icinga::source_dir_icingaweb,
recurse => true,
ignore => '.svn',
purge => $icinga::bool_source_dir_purge_icingaweb,
replace => $icinga::manage_file_replace,
audit => $icinga::manage_audit,
}
}
# Grants Management (Currently only Mysql backend is supported)
case $icinga::db_host_icingaweb {
'localhost','127.0.0.1': {
mysql::grant { "icinga_web_grants_${::fqdn}":
mysql_db => $icinga::db_name_icingaweb,
mysql_user => $icinga::db_user_icingaweb,
mysql_password => $icinga::db_password_icingaweb,
mysql_privileges => 'ALL',
mysql_host => $icinga::db_host_icingaweb,
}
if $::operatingsystem =~ /(?i:Ubuntu|Mint)/ {
mysql::queryfile { 'icinga_web':
mysql_file => '/usr/share/dbconfig-common/data/icinga-web/install/mysql',
mysql_db => $icinga::db_name_icingaweb,
mysql_user => $icinga::db_user_icingaweb,
mysql_password => $icinga::db_password_icingaweb,
require => Mysql::Grant["icinga_web_grants_${::fqdn}"]
}
}
}
default: {
# Automanagement of Mysql grants on external servers
# requires StoredConfigs.
@@mysql::grant { "icinga_web_grants_${::fqdn}":
mysql_db => $icinga::db_name_icingaweb,
mysql_user => $icinga::db_user_icingaweb,
mysql_password => $icinga::db_password_icingaweb,
mysql_privileges => 'ALL',
mysql_host => $::fqdn,
tag => "mysql_grants_${icinga::db_host_icingaweb}",
}
if $::operatingsystem =~ /(?i:Ubuntu|Mint)/ {
@@mysql::queryfile { "icinga_web_${::fqdn}":
mysql_file => '/usr/share/dbconfig-common/data/icinga-web/install/mysql',
mysql_db => $icinga::db_name_icingaweb,
mysql_user => $icinga::db_user_icingaweb,
mysql_password => $icinga::db_password_icingaweb,
mysql_host => $::fqdn,
tag => "mysql_grants_${icinga::db_host_icingaweb}",
require => Mysql::Grant["icinga_web_grants_${::fqdn}"]
}
}
}
}
}
|