add ff_gw::sysadmin::hostname class
This commit is contained in:
parent
af4297c8f7
commit
0a774265d9
|
@ -54,6 +54,10 @@ class { 'ff_gw::sysadmin':
|
||||||
zabbixserver => 'argos.mschuette.name',
|
zabbixserver => 'argos.mschuette.name',
|
||||||
muninserver => '78.47.49.236',
|
muninserver => '78.47.49.236',
|
||||||
|
|
||||||
|
# optional, configure hostname and public IP
|
||||||
|
sethostname => 'gw12.hamburg.freifunk.net',
|
||||||
|
setip => '5.45.105.34',
|
||||||
|
|
||||||
# also optional, let puppet control user accounts:
|
# also optional, let puppet control user accounts:
|
||||||
accounts => {
|
accounts => {
|
||||||
mschuett => {
|
mschuett => {
|
||||||
|
|
|
@ -1,10 +1,18 @@
|
||||||
# kitchen sink class for various small settings
|
# kitchen sink class for various small settings
|
||||||
class ff_gw::sysadmin($zabbixserver = '127.0.0.1', $muninserver = '127.0.0.1', $accounts = {}) {
|
class ff_gw::sysadmin($zabbixserver = '127.0.0.1', $muninserver = '127.0.0.1', $sethostname = false, $setip = false, $accounts = {}) {
|
||||||
|
if $sethostname and $setip {
|
||||||
|
# set system hostname
|
||||||
|
class { 'ff_gw::sysadmin::hostname':
|
||||||
|
newname => $sethostname,
|
||||||
|
newip => $setip,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# use backports repo
|
# use backports repo
|
||||||
apt::source { 'wheezy-backports':
|
apt::source { 'wheezy-backports':
|
||||||
location => 'http://ftp.de.debian.org/debian/',
|
location => 'http://ftp.de.debian.org/debian/',
|
||||||
release => 'wheezy-backports',
|
release => 'wheezy-backports',
|
||||||
repos => 'main',
|
repos => 'main',
|
||||||
}
|
}
|
||||||
# some more packages
|
# some more packages
|
||||||
package {
|
package {
|
||||||
|
@ -126,3 +134,49 @@ env.estimate 1';
|
||||||
enable => true;
|
enable => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ff_gw::sysadmin::hostname($newname, $newip) {
|
||||||
|
# short name
|
||||||
|
$alias = regsubst($newname, '^([^.]*).*$', '\1')
|
||||||
|
|
||||||
|
# clean old names
|
||||||
|
if "$::hostname" != "$alias" {
|
||||||
|
host { "$hostname": ensure => absent }
|
||||||
|
}
|
||||||
|
if "$::fqdn" != "$newname" {
|
||||||
|
host { "$fqdn": ensure => absent }
|
||||||
|
}
|
||||||
|
|
||||||
|
# rewrite config files:
|
||||||
|
host { "$newname":
|
||||||
|
ensure => present,
|
||||||
|
ip => $newip,
|
||||||
|
alias => $alias ? {
|
||||||
|
"$hostname" => undef,
|
||||||
|
default => $alias
|
||||||
|
},
|
||||||
|
before => Exec['hostname.sh'],
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/etc/mailname':
|
||||||
|
ensure => present,
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => 644,
|
||||||
|
content => "${newname}\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/etc/hostname':
|
||||||
|
ensure => present,
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => 644,
|
||||||
|
content => "${newname}\n",
|
||||||
|
notify => Exec['hostname.sh'],
|
||||||
|
}
|
||||||
|
|
||||||
|
exec { 'hostname.sh':
|
||||||
|
command => '/etc/init.d/hostname.sh start',
|
||||||
|
refreshonly => true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue