Paul Belanger a304c5a718
Fix dependency issue with cacti package
Right now the cacti package setups up the /usr/local/share/cacti
directories. So we need to make sure cacti is installed before we
start adding files into those directories.

Change-Id: I99bbf0a71e140380636419c4200d9f4662f5311e
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2017-12-14 11:32:54 -05:00

105 lines
2.6 KiB
Puppet

# Class to configure cacti on a node.
class openstack_project::cacti (
$sysadmins = [],
$cacti_hosts = [],
$vhost_name = '',
) {
if $::osfamily != 'Debian' {
fail("${::osfamily} is not supported.")
}
class { 'openstack_project::server':
iptables_public_tcp_ports => [80, 443],
sysadmins => $sysadmins,
}
class { '::apache':
default_vhost => false,
mpm_module => 'prefork',
}
class { '::apache::mod::rewrite': }
class { '::apache::mod::php': }
package { 'cacti':
ensure => present,
}
::apache::listen { '80': }
::apache::listen { '443': }
::apache::vhost::custom { $::fqdn:
ensure => present,
content => template('openstack_project/cacti.vhost.erb'),
}
file { '/usr/local/share/cacti/resource/snmp_queries':
ensure => directory,
owner => 'root',
require => Package['cacti'],
}
file { '/usr/local/share/cacti/resource/snmp_queries/net-snmp_devio.xml':
ensure => present,
source => 'puppet:///modules/openstack_project/cacti/net-snmp_devio.xml',
mode => '0644',
owner => 'root',
group => 'root',
require => File['/usr/local/share/cacti/resource/snmp_queries'],
}
file { '/var/lib/cacti/linux_host.xml':
ensure => present,
source => 'puppet:///modules/openstack_project/cacti/linux_host.xml',
mode => '0644',
owner => 'root',
group => 'root',
require => File[
'/usr/local/share/cacti/resource/snmp_queries/net-snmp_devio.xml'
],
}
file { '/usr/local/bin/create_graphs.sh':
ensure => present,
source => 'puppet:///modules/openstack_project/cacti/create_graphs.sh',
mode => '0744',
owner => 'root',
group => 'root',
}
exec { 'cacti_import_xml':
command => '/usr/bin/php -q /usr/share/cacti/cli/import_template.php --filename=/var/lib/cacti/linux_host.xml --with-template-rras',
cwd => '/usr/share/cacti/cli',
require => File['/var/lib/cacti/linux_host.xml'],
}
file { '/var/lib/cacti/devices':
ensure => present,
content => join($cacti_hosts, " "),
mode => '0744',
owner => 'root',
group => 'root',
}
cron { 'add cacti hosts':
ensure => present,
user => root,
command => 'for host in $(cat /var/lib/cacti/devices); do /usr/local/bin/create_graphs.sh $host >> /var/log/cacti_update.log 2>&1; done',
minute => '0',
}
include logrotate
logrotate::file { 'cacti_update.log':
log => '/var/log/cacti_update.log',
options => [
'compress',
'missingok',
'rotate 7',
'daily',
'notifempty',
'copytruncate',
],
require => Cron['add cacti hosts'],
}
}