system-config/modules/openstack_project/manifests/cacti.pp
2014-03-04 22:23:01 +00:00

135 lines
3.9 KiB
Puppet

# Class to configure cacti on a node.
# Takes a list of sysadmin email addresses as a parameter. Exim will be
# configured to email cron spam and other alerts to this list of admins.
class openstack_project::cacti (
$sysadmins = []
) {
class { 'openstack_project::server':
iptables_public_tcp_ports => [80, 443],
sysadmins => $sysadmins,
}
include apache
a2mod { 'rewrite':
ensure => present,
}
package { 'cacti':
ensure => present,
}
file { '/etc/apache2/conf-available/cacti.conf':
ensure => present,
source => 'puppet:///modules/openstack_project/cacti/apache.conf',
mode => '0644',
owner => 'root',
group => 'root',
require => Package['cacti'],
}
file { '/usr/local/share/cacti/resource/snmp_queries':
ensure => directory,
owner => 'root',
}
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'],
}
$cacti_hosts = [
# community is currently not running puppet.
#'community.openstack.org',
'ci-puppetmaster.openstack.org',
'eavesdrop.openstack.org',
'elasticsearch01.openstack.org',
'elasticsearch02.openstack.org',
'elasticsearch03.openstack.org',
'elasticsearch04.openstack.org',
'elasticsearch05.openstack.org',
'elasticsearch06.openstack.org',
'etherpad.openstack.org',
'etherpad-dev.openstack.org',
'git.openstack.org',
'git01.openstack.org',
'git02.openstack.org',
'git03.openstack.org',
'git04.openstack.org',
'git05.openstack.org',
'graphite.openstack.org',
'jenkins.openstack.org',
'jenkins01.openstack.org',
'jenkins02.openstack.org',
'jenkins03.openstack.org',
'jenkins04.openstack.org',
'jenkins05.openstack.org',
'jenkins06.openstack.org',
'jenkins07.openstack.org',
'jenkins-dev.openstack.org',
'lists.openstack.org',
'logstash.openstack.org',
'logstash-worker01.openstack.org',
'logstash-worker02.openstack.org',
'logstash-worker03.openstack.org',
'logstash-worker04.openstack.org',
'logstash-worker05.openstack.org',
'logstash-worker06.openstack.org',
'logstash-worker07.openstack.org',
'logstash-worker08.openstack.org',
'logstash-worker09.openstack.org',
'logstash-worker10.openstack.org',
'logstash-worker11.openstack.org',
'logstash-worker12.openstack.org',
'logstash-worker13.openstack.org',
'logstash-worker14.openstack.org',
'logstash-worker15.openstack.org',
'logstash-worker16.openstack.org',
'nodepool.openstack.org',
'paste.openstack.org',
'pbx.openstack.org',
'planet.openstack.org',
'puppet-dashboard.openstack.org',
'puppetdb.openstack.org',
'pypi.openstack.org',
'review.openstack.org',
'review-dev.openstack.org',
'static.openstack.org',
'wiki.openstack.org',
'zm01.openstack.org',
'zm02.openstack.org',
'zuul.openstack.org',
]
openstack_project::cacti_device { $cacti_hosts: }
}