107 lines
3.1 KiB
Puppet
107 lines
3.1 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
|
|
}
|
|
|
|
case $::architecture {
|
|
"amd64","x86_64": {
|
|
$teamspeak_bin = "/usr/local/teamspeak/ts3server_linux_amd64"
|
|
}
|
|
default: {
|
|
$teamspeak_bin = "/usr/local/teamspeak/ts3server_linux_x86"
|
|
}
|
|
}
|
|
|
|
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",
|
|
content => template("teamspeak/teamspeak.init.erb"),
|
|
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,
|
|
}
|
|
|
|
}
|