134 lines
2.9 KiB
Puppet
134 lines
2.9 KiB
Puppet
# Install Charybdis IRC server.
|
|
#
|
|
class charybdis(
|
|
$sid='00A',
|
|
$server_name='irc.localdomain',
|
|
$server_description='IRC Server',
|
|
$network_name='IRC',
|
|
$network_description='IRC Network',
|
|
$admin_name='Administrator',
|
|
$admin_description='IRC Administrator',
|
|
$admin_email='root@localhost',
|
|
$motd=undef,
|
|
$motd_source=undef,
|
|
$port='6667',
|
|
$sslport='6668',
|
|
$ssl_dh=undef,
|
|
$ssl_key=undef,
|
|
$ssl_cert=undef,
|
|
$users=['*@*'],
|
|
$operators=[],
|
|
$umodes=undef,
|
|
$cloaking=true,
|
|
$hub=false,
|
|
$ident=false,
|
|
$throttle_count='4',
|
|
$throttle_duration='60',
|
|
$services=false,
|
|
$services_name='ircservices.localdomain',
|
|
$services_password=undef,
|
|
) {
|
|
|
|
case $::operatingsystem {
|
|
'ubuntu': { }
|
|
default: {
|
|
fail("charybdis not supported on ${::operatingsystem}")
|
|
}
|
|
}
|
|
|
|
if $services == true and ! $services_password {
|
|
fail('Must define $services_password')
|
|
}
|
|
|
|
if $umodes {
|
|
$umodes_real = $umodes
|
|
} else {
|
|
if $cloaking == true {
|
|
$umodes_real = '+ix'
|
|
} else {
|
|
$umodes_real = '+i'
|
|
}
|
|
}
|
|
|
|
package { 'charybdis':
|
|
ensure => installed,
|
|
}
|
|
|
|
file { '/etc/charybdis/ircd.conf':
|
|
ensure => present,
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
content => template('charybdis/ircd.conf.erb'),
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
|
|
file { '/etc/charybdis/ircd.motd':
|
|
ensure => present,
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
content => $motd,
|
|
source => $motd_source,
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
|
|
if $ssl_key and $ssl_cert {
|
|
file { '/etc/charybdis/ircd.key':
|
|
ensure => present,
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
source => $ssl_key,
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
|
|
file { '/etc/charybdis/ircd.crt':
|
|
ensure => present,
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
source => $ssl_cert,
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
|
|
if $ssl_dh {
|
|
file { '/etc/charybdis/dh.pem':
|
|
ensure => present,
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
source => $ssl_dh,
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
} else {
|
|
ssl::dhparam { '/etc/charybdis/dh.pem':
|
|
mode => '0640',
|
|
owner => 'root',
|
|
group => 'charybdis',
|
|
require => Package['charybdis'],
|
|
notify => Service['charybdis'],
|
|
}
|
|
}
|
|
}
|
|
|
|
service { 'charybdis':
|
|
ensure => running,
|
|
enable => true,
|
|
}
|
|
|
|
file { '/var/log/charybdis':
|
|
ensure => directory,
|
|
mode => '0640',
|
|
owner => 'charybdis',
|
|
group => 'charybdis',
|
|
recurse => true,
|
|
require => Service['charybdis'],
|
|
}
|
|
|
|
}
|