OP#407 initial commit with reset
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
## cd_nagios::server::access.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Define manages user- and password rules for accessing nagios.
|
||||
# @param [string] ng_htpasswd_user user name for the /etc/nagios/passwd file
|
||||
# @param [string] ng_htpasswd_password the encrypted password for the
|
||||
# /etc/nagios/passwd file.
|
||||
##############################################################################
|
||||
define cd_nagios::server::access (
|
||||
|
||||
Optional[String] $ng_htpasswd_user = undef,
|
||||
Optional[String] $ng_htpasswd_password = undef,
|
||||
|
||||
) {
|
||||
$ng_nagios_server = $cd_nagios::params::ng_nagios_server
|
||||
$ng_htpasswd_file = $cd_nagios::params::ng_htpasswd_file
|
||||
$ng_htpasswd_rule = $cd_nagios::params::ng_htpasswd_rule
|
||||
$ng_service = $cd_nagios::params::ng_service
|
||||
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# create password rules
|
||||
|
||||
concat::fragment { $name:
|
||||
target => $ng_htpasswd_file,
|
||||
content => template($ng_htpasswd_rule),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
## cd_nagios::server::access_rules.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages presence of /etc/nagios/phtpasswd file.
|
||||
# @example
|
||||
# cd_nagios::server::access { 'example':
|
||||
# ng_htpasswd_user => 'example_user',
|
||||
# ng_htpasswd_password => 'example_password_encrypted',
|
||||
# }
|
||||
##############################################################################
|
||||
class cd_nagios::server::access_rules (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
# manage /etc/nagios/htpasswd file
|
||||
|
||||
concat { $ng_htpasswd_file:
|
||||
ensure => present,
|
||||
path => $ng_htpasswd_file,
|
||||
owner => 'root',
|
||||
group => 'apache',
|
||||
mode => '0640',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
## cd_nagios::server::files.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages all configuration files required for cd_nagios.
|
||||
##############################################################################
|
||||
class cd_nagios::server::files (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_use_https == true {
|
||||
if $ng_enable_certbot == true {
|
||||
require cd_nagios::certbot::certs
|
||||
}
|
||||
}
|
||||
|
||||
require cd_nagios::main::dirs
|
||||
|
||||
# manage nagios.cfg
|
||||
|
||||
file { $ng_nagios_cfg_file:
|
||||
ensure => file,
|
||||
path => $ng_nagios_cfg_file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_nagios_cfg_erb),
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
# manage cgi.cfg
|
||||
|
||||
file { $ng_cgi_cfg_file:
|
||||
ensure => file,
|
||||
path => $ng_cgi_cfg_file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => nagios_etc_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_cgi_cfg_erb),
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
## Apache files
|
||||
# since we use vhost files, we do not want the regular file to appear
|
||||
# after upgrades to avoid conflicts
|
||||
|
||||
file { $ng_nagios_conf:
|
||||
ensure => absent,
|
||||
}
|
||||
|
||||
file { $ng_forward_conf:
|
||||
ensure => file,
|
||||
path => $ng_forward_conf,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => httpd_config_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_forward_conf_erb),
|
||||
notify => Service[$ae_service],
|
||||
}
|
||||
|
||||
if $ng_use_https == true {
|
||||
# create ssl vhost
|
||||
|
||||
file { $ng_ssl_vhost_file:
|
||||
ensure => file,
|
||||
path => $ng_ssl_vhost_file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
selrange => s0,
|
||||
selrole => object_r,
|
||||
seltype => httpd_config_t,
|
||||
seluser => system_u,
|
||||
content => template($ng_ssl_vhost_erb),
|
||||
notify => Service[$ae_service],
|
||||
}
|
||||
}
|
||||
|
||||
if $ng_use_https != true {
|
||||
# remove ssl_vhost
|
||||
|
||||
file { $ng_ssl_vhost_file:
|
||||
ensure => absent,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,198 +0,0 @@
|
||||
## cd_nagios::server::service.pp
|
||||
# Module name: cd_nagios
|
||||
# Author: Arne Teuke (arne_teuke@ConfDroid.com)
|
||||
# @summary Class manages the service(s) for cd_nagios.
|
||||
#############################################################################
|
||||
class cd_nagios::server::service (
|
||||
|
||||
) inherits cd_nagios::params {
|
||||
if $::fqdn == $ng_nagios_server {
|
||||
if $ng_include_nrpe == true {
|
||||
require cd_nrpe
|
||||
}
|
||||
|
||||
require cd_nagios::server::files
|
||||
require cd_nagios::server::access_rules
|
||||
require cd_nagios::nagios::objects::config
|
||||
require cd_nagios::nagios::resources::resource
|
||||
|
||||
service { $ng_service:
|
||||
ensure => running,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
@@nagios_host { 'localhost':
|
||||
ensure => $ng_ping_ensure,
|
||||
alias => 'localhost',
|
||||
address => '127.0.0.1',
|
||||
use => 'linux-server',
|
||||
target => $ng_target_localhost,
|
||||
hostgroups => 'linux-servers',
|
||||
contacts => 'ops',
|
||||
max_check_attempts => $ng_max_check_attempts,
|
||||
notification_period => '24x7',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
||||
notify => Service[$ng_service],
|
||||
}
|
||||
|
||||
@@nagios_service { 'check_nagios_localhost':
|
||||
check_command => $ng_nagios_service_cmd,
|
||||
use => 'generic-service',
|
||||
host_name => 'localhost',
|
||||
notification_period => '24x7',
|
||||
service_description => 'localhost_nagios_service',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
contacts => 'ops',
|
||||
}
|
||||
|
||||
@@nagios_host { $::fqdn:
|
||||
ensure => $ng_ping_ensure,
|
||||
alias => $::hostname,
|
||||
address => $::fqdn,
|
||||
use => 'linux-server',
|
||||
target => $ng_target_host,
|
||||
hostgroups => 'linux-servers',
|
||||
contacts => 'ops',
|
||||
max_check_attempts => $ng_max_check_attempts,
|
||||
notification_period => '24x7',
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
||||
notify => Service[$ng_user],
|
||||
}
|
||||
|
||||
@@nagios_service { "root_partition_${::hostname}":
|
||||
ensure => $ng_disk_ensure,
|
||||
check_command => "check_nrpe!check_disk!${ng_disk_warn}!${ng_disk_crit}!/",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_root_partition",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
if $ng_enable_swap_check == true {
|
||||
@@nagios_service { "Swap_Usage_${::hostname}":
|
||||
ensure => $ng_swap_ensure,
|
||||
check_command => "check_nrpe!check_swap!${ng_swap_warn}!${ng_swap_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_swap_usage",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
}
|
||||
|
||||
@@nagios_service { "Local_Users_${::hostname}":
|
||||
ensure => $ng_users_ensure,
|
||||
check_command => "check_nrpe!check_users!${ng_users_warn}!${ng_users_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_local_users",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Total Processes_${::hostname}":
|
||||
ensure => $ng_procs_tot_ens,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_tot_warn}!${ng_procs_tot_crit}!${ng_procs_tot_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_total_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Zombie Processes_${::hostname}":
|
||||
ensure => $ng_procs_z_ensure,
|
||||
check_command => "check_nrpe!check_procs!${ng_procs_z_warn}!${ng_procs_z_crit}!${ng_procs_z_param}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_zombie_processes",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
@@nagios_service { "Current_Load_${::hostname}":
|
||||
ensure => $ng_load_ensure,
|
||||
check_command => "check_nrpe!check_load!${ng_load_warn}!${ng_load_crit}",
|
||||
use => 'generic-service',
|
||||
host_name => $::fqdn,
|
||||
contacts => 'ops',
|
||||
notification_period => '24x7',
|
||||
service_description => "${::hostname}_current_load",
|
||||
servicegroups => 'linux-services',
|
||||
target => $ng_target_service,
|
||||
owner => $ng_user,
|
||||
group => $ng_user,
|
||||
mode => '0640',
|
||||
}
|
||||
|
||||
resources { ['nagios_host',
|
||||
'nagios_hostgroup',
|
||||
'nagios_hostdependency',
|
||||
'nagios_hostescalation',
|
||||
'nagios_hostextinfo',
|
||||
'nagios_service',
|
||||
'nagios_servicegroup',
|
||||
'nagios_servicedependency',
|
||||
'nagios_serviceescalation',
|
||||
'nagios_serviceextinfo',
|
||||
'nagios_contact',
|
||||
'nagios_contactgroup',
|
||||
'nagios_command',
|
||||
'nagios_timeperiod']:
|
||||
purge => true,
|
||||
}
|
||||
|
||||
# collect resources and populate /etc/nagios/conf.d/nagios_*.cfg
|
||||
Nagios_host <<||>> { notify => Service['nagios'] }
|
||||
Nagios_hostgroup <<||>> { notify => Service['nagios'] }
|
||||
Nagios_hostdependency <<||>> { notify => Service['nagios'] }
|
||||
Nagios_hostescalation <<||>> { notify => Service['nagios'] }
|
||||
Nagios_hostextinfo <<||>> { notify => Service['nagios'] }
|
||||
Nagios_service <<||>> { notify => Service['nagios'] }
|
||||
Nagios_servicegroup <<||>> { notify => Service['nagios'] }
|
||||
Nagios_servicedependency <<||>> { notify => Service['nagios'] }
|
||||
Nagios_serviceescalation <<||>> { notify => Service['nagios'] }
|
||||
Nagios_serviceextinfo <<||>> { notify => Service['nagios'] }
|
||||
Nagios_contact <<||>> { notify => Service['nagios'] }
|
||||
Nagios_contactgroup <<||>> { notify => Service['nagios'] }
|
||||
Nagios_command <<||>> { notify => Service['nagios'] }
|
||||
Nagios_timeperiod <<||>> { notify => Service['nagios'] }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user