class virtual::vserver::host($vdirbase = "/var/lib/vservers") { include virtual module_dir{ "virtual/contexts": } # make sure we have the ability to query for lsbdistcodename include lsb $utilvserver_version = $lsbdistcodename ? { etch => "0.30.216~r2772-6~bpo40+1", lenny => latest, default => latest, } package { "util-vserver": ensure => $utilvserver_version; debootstrap: ensure => installed } file { "/etc/vservers": ensure => directory, require => Package["util-vserver"]; "/etc/vservers/local-interfaces": ensure => directory, mode => '0755', owner => root, group => root, require => File["/etc/vservers"]; "/usr/local/bin/build_vserver": source => "puppet:///modules/virtual/vserver/build_vserver", mode => '0755', owner => root, group => root, require => [ Package['util-vserver'], Package[debootstrap]]; "/etc/vservers/.defaults/vdirbase": ensure => $vdirbase, require => File[$vdirbase]; "$vdirbase": ensure => directory, mode => '000', owner => root, group => root; # perhaps we should use hashify. # but i'm commenting this out until we learn how to properly use in case we want to use it. #"/etc/cron.daily/vserver-hashify": # source => "puppet:///virtual/hashify.cron.daily", # mode => '0755', owner => root, group => root; } # remove dummy interfaces on the host file_line { modules_dummy: path => "/etc/modules", line => "^dummy", ensure => absent, } # Remove these dummy interfaces, they are annoying and we dont need them file { "/etc/modprobe.d/local-dummy": ensure => absent, mode => '0644', owner => root, group => root; } # Setup some plugins if munin is enabled in the system case $virtual_munin { false: {} default: { file { "/usr/local/share/munin-plugins/vserver_resources": source => "puppet:///modules/virtual/munin/vserver_resources", mode => '0755', owner => root, group => root; "/usr/local/share/munin-plugins/vserver_cpu_": source => "puppet:///modules/virtual/munin/vserver_cpu_", mode => '0755', owner => root, group => root; "/usr/local/share/munin-plugins/vserver_loadavg": source => "puppet:///modules/virtual/munin/vserver_loadavg", mode => '0755', owner => root, group => root; } } } # Setup some plugins if munin is enabled in the system case $virtual_munin { false: {} default: { # This creates a load average graph combining the individual load averages of each vserver on the host munin::plugin { "vserver_loadavg": config => "user root\n", script_path_in => "/usr/local/share/munin-plugins"; } # This creates a RSS graph for each vserver on the host (note after more than 4 vservers this can get noisy) munin::plugin { "vserver_resources_RSS": ensure => "vserver_resources", config => "user root\nenv.resource RSS", script_path_in => "/usr/local/share/munin-plugins"; } # This creates a VM graph for each vserver on the host (note after more than 4 vservers this can get noisy) munin::plugin { "vserver_resources_VM": ensure => "vserver_resources", config => "user root\nenv.resource VM", script_path_in => "/usr/local/share/munin-plugins"; } # This creates a VM graph for each vserver on the host (note after more than 4 vservers this can get noisy) munin::plugin { "vserver_cpu_": config => "user root\n", script_path_in => "/usr/local/share/munin-plugins"; } } } }