diff options
-rw-r--r-- | manifests/vserver.pp | 64 |
1 files changed, 20 insertions, 44 deletions
diff --git a/manifests/vserver.pp b/manifests/vserver.pp index 42c1fdf..d0236a6 100644 --- a/manifests/vserver.pp +++ b/manifests/vserver.pp @@ -1,57 +1,38 @@ -# virtual/vserver.pp -- manage vserver specifica -# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at> -# See LICENSE for the full license granted to you. +# virtual/vserver.pp -- manage vservers modules_dir{ "virtual/contexts": } class vserver::host { - package { [ 'util-vserver', debootstrap ]: ensure => installed, } + package { + "util-vserver": + ensure => "0.30.214-4~bpo.1"; + + debootstrap: + ensure => installed + } file { - "/usr/local/bin/build_vserver": - source => "puppet://$servername/virtual/build_vserver", - mode => 0755, owner => root, group => root, - require => [ Package['util-vserver'], Package[debootstrap], - # this comes from dbp module and is the most current puppet deb - File["/var/lib/puppet/modules/dbp/puppet_current.deb"] ]; - "/etc/vservers/local-interfaces/": - ensure => directory, - mode => 0755, owner => root, group => root; + "/etc/vservers/local-interfaces/": + ensure => directory, + mode => 0755, owner => root, group => root; } } -define vs_create($in_domain, $legacy = false) { - $vs_name = $legacy ? { true => $name, false => $in_domain ? { '' => $name, default => "${name}.${in_domain}" } } +define vs_create($vs_name = $name, $context = $context) { case $vs_name { '': { fail ( "Cannot create VServer with empty name" ) } } - case $legacy { - true: { - exec { "/usr/local/bin/build_vserver \"${vs_name}\" \"${in_domain}\"": - creates => "/etc/vservers/${vs_name}", - require => File["/usr/local/bin/build_vserver"], - alias => "vs_create_${vs_name}" - } - } - false: { - exec { "/usr/local/bin/build_vserver \"${vs_name}\" \"\"": - creates => "/etc/vservers/${vs_name}", - require => File["/usr/local/bin/build_vserver"], - alias => "vs_create_${vs_name}" - } - } + exec { "/usr/sbin/vserver ${vs_name} build -m debootstrap -- -d etch": + creates => "/etc/vservers/${vs_name}", + alias => "vs_create_${vs_name}" } } # ensure: present, stopped, running -define vserver($ensure, $context, $in_domain = '', $mark = '', $legacy = false) { - case $in_domain { '': {} - default: { err("${fqdn}: vserver ${name} uses deprecated \$in_domain" ) } - } - $vs_name = $legacy ? { true => $name, false => $in_domain ? { '' => $name, default => "${name}.${in_domain}" } } +define vserver($vs_name = $name, $ensure, $context, $mark = '') { $if_dir = "/etc/vservers/${vs_name}/interfaces/" $mark_file = "/etc/vservers/${vs_name}/apps/init/mark" @@ -59,9 +40,9 @@ define vserver($ensure, $context, $in_domain = '', $mark = '', $legacy = false) # TODO: wasn't there a syntax for using arrays as case selectors?? case $ensure { - present: { vs_create{$name: in_domain => $in_domain, legacy => $legacy, } } - running: { vs_create{$name: in_domain => $in_domain, legacy => $legacy, } } - stopped: { vs_create{$name: in_domain => $in_domain, legacy => $legacy, } } + present: { vs_create{$name:} } + running: { vs_create{$name:} } + stopped: { vs_create{$name:} } default: { err("${fqdn}: vserver(${vs_name}): unknown ensure '${ensure}'") } } @@ -86,8 +67,6 @@ define vserver($ensure, $context, $in_domain = '', $mark = '', $legacy = false) require => Exec["vs_create_${vs_name}"]; "/etc/vservers/${vs_name}/name": content => "${vs_name}\n", - # Changing this needs no restart - # notify => Exec["vs_restart_${vs_name}"], require => Exec["vs_create_${vs_name}"]; } @@ -131,7 +110,7 @@ define vserver($ensure, $context, $in_domain = '', $mark = '', $legacy = false) } -# Changeing stuff with this define won't do much good, since it relies on +# Changing stuff with this define won't do much good, since it relies on # restarting the vservers to do the work, which won't clean up orphaned # interfaces define vs_interface($prefix = 24, $dev = '') { @@ -182,9 +161,6 @@ define vs_ip_binding($vserver, $ip, $ensure) { disconnected: { file { "/etc/vservers/${vserver}/interfaces/${name}": ensure => absent, - # TODO: fix message: - # warning: //ic/vs_ip[mailman_00]/File[/etc/vservers/mailman/interfaces/mailman_00]: Exec[vserver mailman restart] still depend on me -- not deleting - # notify => Exec["vs_restart_${vserver}"], } } default: { |