103 lines
2.5 KiB
Puppet
103 lines
2.5 KiB
Puppet
# == Class: accessbot
|
|
#
|
|
class accessbot(
|
|
$channel_file,
|
|
$nick,
|
|
$password,
|
|
$server,
|
|
) {
|
|
|
|
user { 'accessbot':
|
|
ensure => present,
|
|
home => '/home/accessbot',
|
|
shell => '/bin/bash',
|
|
gid => 'accessbot',
|
|
managehome => true,
|
|
require => Group['accessbot'],
|
|
}
|
|
|
|
group { 'accessbot':
|
|
ensure => present,
|
|
}
|
|
|
|
# A lot of things need yaml, be conservative requiring this package to avoid
|
|
# conflicts with other modules.
|
|
if ! defined(Package['python-yaml']) {
|
|
package { 'python-yaml':
|
|
ensure => present,
|
|
}
|
|
}
|
|
|
|
package { 'irc':
|
|
ensure => installed,
|
|
provider => openstack_pip,
|
|
}
|
|
|
|
exec { 'run_accessbot' :
|
|
command => '/usr/local/bin/accessbot -c /etc/accessbot/accessbot.config -l /etc/accessbot/channels.yaml >> /var/log/accessbot/accessbot.log 2>&1',
|
|
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
user => 'accessbot',
|
|
refreshonly => true,
|
|
subscribe => File['/etc/accessbot/channels.yaml'],
|
|
require => [File['/etc/accessbot/channels.yaml'],
|
|
File['/etc/accessbot/accessbot.config'],
|
|
File['/usr/local/bin/accessbot'],
|
|
Package['irc']],
|
|
}
|
|
|
|
file { '/etc/accessbot':
|
|
ensure => directory,
|
|
}
|
|
|
|
file { '/var/log/accessbot':
|
|
ensure => directory,
|
|
owner => 'accessbot',
|
|
group => 'accessbot',
|
|
mode => '0775',
|
|
require => User['accessbot'],
|
|
}
|
|
|
|
include ::logrotate
|
|
logrotate::file { 'accessbot.log':
|
|
ensure => present,
|
|
log => '/var/log/accessbot/accessbot.log',
|
|
options => ['compress',
|
|
'copytruncate',
|
|
'delaycompress',
|
|
'missingok',
|
|
'rotate 7',
|
|
'daily',
|
|
'notifempty',
|
|
],
|
|
}
|
|
|
|
file { '/etc/accessbot/accessbot.config':
|
|
ensure => present,
|
|
content => template('accessbot/accessbot.config.erb'),
|
|
group => 'accessbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => User['accessbot'],
|
|
}
|
|
|
|
file { '/etc/accessbot/channels.yaml':
|
|
ensure => present,
|
|
source => $channel_file,
|
|
group => 'accessbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => User['accessbot'],
|
|
}
|
|
|
|
file { '/usr/local/bin/accessbot':
|
|
ensure => present,
|
|
source => 'puppet:///modules/accessbot/accessbot.py',
|
|
mode => '0555',
|
|
owner => 'root',
|
|
group => 'root',
|
|
replace => true,
|
|
}
|
|
}
|