138 lines
3.0 KiB
Puppet
138 lines
3.0 KiB
Puppet
# == Class: ptgbot
|
|
#
|
|
class ptgbot(
|
|
$nick,
|
|
$password,
|
|
$channel,
|
|
) {
|
|
|
|
user { 'ptgbot':
|
|
ensure => present,
|
|
home => '/home/ptgbot',
|
|
shell => '/bin/bash',
|
|
gid => 'ptgbot',
|
|
managehome => true,
|
|
require => Group['ptgbot'],
|
|
}
|
|
|
|
group { 'ptgbot':
|
|
ensure => present,
|
|
}
|
|
|
|
vcsrepo { '/opt/ptgbot':
|
|
ensure => latest,
|
|
provider => git,
|
|
revision => 'master',
|
|
source => 'https://git.openstack.org/openstack/ptgbot',
|
|
}
|
|
|
|
exec { 'install_ptgbot' :
|
|
command => 'pip3 install /opt/ptgbot',
|
|
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
refreshonly => true,
|
|
subscribe => Vcsrepo['/opt/ptgbot'],
|
|
}
|
|
|
|
file { '/etc/init.d/ptgbot':
|
|
ensure => present,
|
|
group => 'root',
|
|
mode => '0555',
|
|
owner => 'root',
|
|
require => Vcsrepo['/opt/ptgbot'],
|
|
source => 'puppet:///modules/ptgbot/ptgbot.init',
|
|
}
|
|
|
|
service { 'ptgbot':
|
|
enable => true,
|
|
hasrestart => true,
|
|
require => File['/etc/init.d/ptgbot'],
|
|
subscribe => [
|
|
Vcsrepo['/opt/ptgbot'],
|
|
File['/etc/ptgbot/ptgbot_config.json'],
|
|
],
|
|
}
|
|
|
|
file { '/etc/ptgbot':
|
|
ensure => directory,
|
|
}
|
|
|
|
file { '/var/log/ptgbot':
|
|
ensure => directory,
|
|
owner => 'ptgbot',
|
|
group => 'ptgbot',
|
|
mode => '0775',
|
|
require => User['ptgbot'],
|
|
}
|
|
|
|
file { '/var/run/ptgbot':
|
|
ensure => directory,
|
|
owner => 'ptgbot',
|
|
group => 'ptgbot',
|
|
mode => '0775',
|
|
require => User['ptgbot'],
|
|
}
|
|
|
|
file { '/var/lib/ptgbot':
|
|
ensure => directory,
|
|
owner => 'ptgbot',
|
|
group => 'ptgbot',
|
|
mode => '0775',
|
|
require => User['ptgbot'],
|
|
}
|
|
|
|
file { '/var/lib/ptgbot/www':
|
|
ensure => directory,
|
|
owner => 'ptgbot',
|
|
group => 'ptgbot',
|
|
mode => '0775',
|
|
require => [File['/var/lib/ptgbot'],
|
|
User['ptgbot']]
|
|
}
|
|
|
|
file { '/var/lib/ptgbot/www/ptg.html':
|
|
ensure => present,
|
|
group => 'ptgbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => [File['/var/lib/ptgbot/www'],
|
|
User['ptgbot']],
|
|
source => '/opt/ptgbot/html/ptg.html',
|
|
subscribe => Vcsrepo['/opt/ptgbot'],
|
|
}
|
|
|
|
file { '/var/lib/ptgbot/www/ptg.js':
|
|
ensure => present,
|
|
group => 'ptgbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => [File['/var/lib/ptgbot/www'],
|
|
User['ptgbot']],
|
|
source => '/opt/ptgbot/html/ptg.js',
|
|
subscribe => Vcsrepo['/opt/ptgbot'],
|
|
}
|
|
|
|
file { '/etc/ptgbot/logging.config':
|
|
ensure => present,
|
|
group => 'ptgbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => User['ptgbot'],
|
|
source => 'puppet:///modules/ptgbot/logging.config',
|
|
}
|
|
|
|
file { '/etc/ptgbot/ptgbot_config.json':
|
|
ensure => present,
|
|
content => template('ptgbot/ptgbot_config.json.erb'),
|
|
group => 'ptgbot',
|
|
mode => '0440',
|
|
owner => 'root',
|
|
replace => true,
|
|
require => User['ptgbot'],
|
|
}
|
|
}
|
|
|
|
# vim:sw=2:ts=2:expandtab:textwidth=79
|