98 lines
2.5 KiB
Puppet
98 lines
2.5 KiB
Puppet
# Install TeamSpeak server.
|
|
#
|
|
# === Parameters
|
|
#
|
|
# $license:
|
|
# Teamspeak license file source.
|
|
#
|
|
class teamspeak($package=undef, $license=undef) {
|
|
|
|
if ! $package {
|
|
case $::architecture {
|
|
'amd64','x86_64': {
|
|
if $::teamspeak64_package_latest {
|
|
$teamspeak_package = $::teamspeak64_package_latest
|
|
} else {
|
|
fail('Must define $teamspeak_package or $teamspeak64_package_latest')
|
|
}
|
|
}
|
|
default: {
|
|
if $::teamspeak32_package_latest {
|
|
$teamspeak_package = $::teamspeak32_package_latest
|
|
} else {
|
|
fail('Must define $teamspeak_package or $teamspeak32_package_latest')
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$teamspeak_package = $package
|
|
}
|
|
|
|
file { '/usr/local/src/teamspeak3-server_linux.tar.gz':
|
|
ensure => present,
|
|
mode => '0644',
|
|
owner => 'root',
|
|
group => 'root',
|
|
source => "puppet:///files/packages/${teamspeak_package}",
|
|
}
|
|
util::extract::tar { '/usr/local/teamspeak':
|
|
ensure => latest,
|
|
strip => 1,
|
|
source => '/usr/local/src/teamspeak3-server_linux.tar.gz',
|
|
require => File['/usr/local/src/teamspeak3-server_linux.tar.gz'],
|
|
notify => Service['teamspeak'],
|
|
}
|
|
|
|
include user::system
|
|
realize(User['teamspeak'], Group['teamspeak'])
|
|
|
|
file { '/srv/teamspeak':
|
|
ensure => directory,
|
|
mode => '0700',
|
|
owner => 'teamspeak',
|
|
group => 'teamspeak',
|
|
require => User['teamspeak'],
|
|
}
|
|
file { '/srv/teamspeak/ts3server.ini':
|
|
ensure => present,
|
|
mode => '0600',
|
|
owner => 'teamspeak',
|
|
group => 'teamspeak',
|
|
source => 'puppet:///modules/teamspeak/ts3server.ini',
|
|
require => File['/srv/teamspeak'],
|
|
notify => Service['teamspeak'],
|
|
}
|
|
|
|
if $license {
|
|
file { '/srv/teamspeak/licensekey.dat':
|
|
ensure => present,
|
|
mode => '0600',
|
|
owner => 'teamspeak',
|
|
group => 'teamspeak',
|
|
source => $license,
|
|
replace => false,
|
|
require => File['/srv/teamspeak'],
|
|
notify => Service['teamspeak'],
|
|
}
|
|
}
|
|
|
|
file { '/etc/init.d/teamspeak':
|
|
ensure => present,
|
|
mode => '0755',
|
|
owner => 'root',
|
|
group => 'root',
|
|
source => 'puppet:///modules/teamspeak/teamspeak.init',
|
|
notify => Exec['add-service-teamspeak'],
|
|
}
|
|
exec { 'add-service-teamspeak':
|
|
path => '/bin:/usr/bin:/sbin:/usr/sbin',
|
|
command => 'chkconfig --add teamspeak',
|
|
refreshonly => true,
|
|
before => Service['teamspeak'],
|
|
}
|
|
service { 'teamspeak':
|
|
ensure => running,
|
|
enable => true,
|
|
}
|
|
|
|
}
|