121 lines
2.6 KiB
Puppet
121 lines
2.6 KiB
Puppet
# Use default values from charybdis if defined.
|
|
#
|
|
class atheme::params {
|
|
|
|
if $::charybdis::services_name {
|
|
$services_name = $::charybdis::services_name
|
|
} else {
|
|
$services_name = 'ircservices.localdomain'
|
|
}
|
|
|
|
if $::charybdis::network_name {
|
|
$network_name = $::charybdis::network_name
|
|
} else {
|
|
$network_name = 'IRC Network'
|
|
}
|
|
|
|
if $::charybdis::admin_name {
|
|
$admin_name = $::charybdis::admin_name
|
|
} else {
|
|
$admin_name = 'Administrator'
|
|
}
|
|
|
|
if $::charybdis::admin_email {
|
|
$admin_email = $::charybdis::admin_email
|
|
} else {
|
|
$admin_email = 'root@localhost'
|
|
}
|
|
|
|
if $::charybdis::server_name {
|
|
$uplink_name = $::charybdis::server_name
|
|
} else {
|
|
$uplink_name = undef
|
|
}
|
|
|
|
if $::charybdis::port {
|
|
$uplink_port = $::charybdis::port
|
|
} else {
|
|
$uplink_port = '6667'
|
|
}
|
|
|
|
if $::charybdis::services_password {
|
|
$uplink_password = $::charybdis::services_password
|
|
} else {
|
|
$uplink_password = undef
|
|
}
|
|
|
|
}
|
|
|
|
# Install Atheme IRC services.
|
|
#
|
|
class atheme(
|
|
$sid='00B',
|
|
$services_name=$atheme::params::services_name,
|
|
$services_description='Atheme IRC Services',
|
|
$network_name=$atheme::params::network_name,
|
|
$admin_name=$atheme::params::admin_name,
|
|
$admin_email=$atheme::params::admin_email,
|
|
$hidehostsuffix='hiddendomain',
|
|
$uplink_name=$atheme::params::uplink_name,
|
|
$uplink_port=$atheme::params::uplink_port,
|
|
$uplink_password=$atheme::params::uplink_password,
|
|
$operators=[],
|
|
) inherits atheme::params {
|
|
|
|
case $::operatingsystem {
|
|
'ubuntu': { }
|
|
default: {
|
|
fail("atheme not supported on ${::operatingsystem}")
|
|
}
|
|
}
|
|
|
|
if ! $uplink_name {
|
|
fail('Must define $uplink_name')
|
|
}
|
|
|
|
if ! $uplink_password {
|
|
fail('Must define $uplink_password')
|
|
}
|
|
|
|
package { 'atheme-services':
|
|
ensure => installed,
|
|
}
|
|
|
|
file { '/etc/atheme/atheme.conf':
|
|
ensure => present,
|
|
mode => '0644',
|
|
owner => 'root',
|
|
group => 'root',
|
|
content => template('atheme/atheme.conf.erb'),
|
|
require => Package['atheme-services'],
|
|
notify => Service['atheme-services'],
|
|
}
|
|
|
|
augeas { 'atheme-enable':
|
|
context => '/files/etc/default/atheme-services',
|
|
changes => 'set ENABLED 1',
|
|
notify => Service['atheme-services'],
|
|
}
|
|
|
|
service { 'atheme-services':
|
|
ensure => running,
|
|
enable => true,
|
|
hasstatus => false,
|
|
}
|
|
|
|
file { '/var/log/atheme':
|
|
ensure => directory,
|
|
mode => '0640',
|
|
owner => 'irc',
|
|
group => 'irc',
|
|
recurse => true,
|
|
require => Service['atheme-services'],
|
|
}
|
|
|
|
if defined(Service['charybdis']) {
|
|
Service['atheme-services'] {
|
|
require => Service['charybdis'],
|
|
}
|
|
}
|
|
|
|
}
|