Various fixes for irc module

This commit is contained in:
Ossi Salmi 2012-11-19 12:08:50 +02:00
parent f19ae66ba5
commit 089082ef20
4 changed files with 85 additions and 18 deletions

View file

@ -1,5 +1,10 @@
# Install IRC server.
#
# === Global variables
#
# $irc_motd:
# IRC server message of the day.
#
class irc::server {
package { "ircd-ratbox":
@ -8,9 +13,18 @@ class irc::server {
file { "/var/lib/ratbox":
ensure => directory,
mode => "0700",
owner => "irc",
group => "irc",
mode => "0700",
require => Package["ircd-ratbox"],
}
file { "/etc/ircd-ratbox/ircd.motd":
ensure => present,
mode => "0644",
owner => "irc",
group => "irc",
content => "${irc_motd}",
require => Package["ircd-ratbox"],
}
@ -38,12 +52,48 @@ class irc::services inherits irc::server {
# Configure IRC network.
#
define irc::network($desc, $servername, $serverdesc,
$port, $sslport, $operpass, $userpass="",
$services=false, $servpass="") {
# === Parameters
#
# $name:
# IRC network name.
# $desc:
# IRC network description.
# $servername:
# Name of this IRC server.
# $serverdesc:
# Desription of this IRC server.
# $port:
# Port to listen.
# $sslport:
# Port to listen with SSL.
# $sslcert:
# Certificate source. Defaults to generated self signed cert.
# $operator:
# List of allowed operators. Defaults to ["*@127.0.0.1"].
# $operpass:
# Password required for gaining operator privileges.
# $userpass:
# Password required for joining this server.
# $service:
# Enabled IRC services. Defaults to false.
# $servpass:
# Password for IRC services.
# $ident:
# Use ident service. Defaults to false.
#
define irc::network($desc, $servername, $serverdesc, $port, $sslport,
$sslcert="", $operator=["*@127.0.0.1"], $operpass,
$userpass="", $services=false, $servpass="",
$ident=false) {
include irc::server
if $ident == false {
$disable_identd = "yes";
} else {
$disable_identd = "no";
}
file { "/var/lib/ratbox/${name}":
ensure => directory,
owner => "irc",
@ -66,12 +116,23 @@ define irc::network($desc, $servername, $serverdesc,
require => File["/var/lib/ratbox/${name}"],
}
ssl::certificate { "/var/lib/ratbox/${name}/ircd.pem":
cn => $servername,
mode => "0600",
owner => "irc",
group => "irc",
require => File["/var/lib/ratbox/${name}"],
if $sslcert {
file { "/var/lib/ratbox/${name}/ircd.pem":
ensure => present,
mode => "0600",
owner => "irc",
group => "irc",
source => "${sslcert}",
require => File["/var/lib/ratbox/${name}"],
}
} else {
ssl::certificate { "/var/lib/ratbox/${name}/ircd.pem":
cn => "${servername}",
mode => "0600",
owner => "irc",
group => "irc",
require => File["/var/lib/ratbox/${name}"],
}
}
ssl::dhparam { "/var/lib/ratbox/${name}/dh.pem":
@ -102,6 +163,7 @@ define irc::network($desc, $servername, $serverdesc,
ensure => running,
enable => true,
status => "pgrep -u irc -f /var/lib/ratbox/${name}",
restart => "/etc/init.d/ircd-${name} reload",
}
if $services == true {