# virtual/xen.pp -- XEN specifica # Copyright (C) 2007 David Schmitt # See LICENSE for the full license granted to you. class munin::plugins::xen { munin::remoteplugin { xen-multi: source => "puppet:///modules/virtual/munin/xen_mem", config => "user root", ensure => absent; xen_vm: source => "puppet:///modules/virtual/munin/xen_vm", config => "user root", ensure => absent; 'xen-multi': source => 'puppet:///modules/virtual/munin/xen-multi', config => 'user root'; } } class xen::domain { case $operatingsystem { debian: { include xen::domain::debian } centos: { include xen::domain::centos } default: { include xen::domain::base } } } class xen::domain::base { service{ 'xend': ensure => running, enable => true, hasstatus => false, hasrestart => true, } case $xen_domains { '0': { info("No xen domains are running, so not configuring service xendomains") } default: { service{ 'xendomains': ensure => running, enable => true, hasstatus => true, } } } file{'/etc/xen/xend-config.sxp': source => [ "puppet:///modules/site_virtual/xen/config/${fqdn}/config/xend-config.sxp", "puppet:///modules/site_virtual/xen/config/${domain}/xend-config.sxp", "puppet:///modules/site_virtual/xen/config/${operatingsystem}/xend-config.sxp", "puppet:///modules/site_virtual/xen/config/${operatingsystem}/${lsbdistcodeename}/xend-config.sxp", "puppet:///modules/site_virtual/xen/config/xend-config.sxp", "puppet:///modules/virtual/xen/config/${operatingsystem}/xend-config.sxp", "puppet:///modules/virtual/xen/config/xend-config.sxp" ], notify => Service['xend'], owner => root, group => 0, mode => 0644; } } class xen::domain::centos inherits xen::domain::base { package{ 'kernel-xen': ensure => present, } Service[xend]{ require => Package['kernel-xen'], } file{'/etc/sysconfig/xend': source => "puppet:///modules/virtual/xen/${operatingsystem}/sysconfig/xend", notify => Service['xend'], owner => root, group => 0, mode => 0644; } file{'/etc/sysconfig/xendomains': source => "puppet:///modules/virtual/xen/${operatingsystem}/sysconfig/xendomains", owner => root, group => 0, mode => 0644; } case $xen_domains { '0': { info("No xen domains are running, so not configuring service xendomains") } default: { Service[xendomains]{ require => Package['kernel-xen'], } File['/etc/sysconfig/xendomains']{ notify => Service[xendomains] } } } } class xen::domain::debian inherits xen::domain::base { case $lsbdistcodename { "lenny": { $xen_linux_system = $architecture ? { amd64 => "xen-linux-system-2.6.26-2-xen-amd64", i386 => "xen-linux-system-2.6.26-2-xen-686" } } "squeeze": { $xen_linux_system = $architecture ? { /(amd64|x86_64)/ => "xen-linux-system-2.6.32-5-xen-amd64", i386 => "xen-linux-system-2.6.32-5-xen-686" } } } package { "$xen_linux_system": ensure => present, alias => "xen-linux-system"; } } class xen::dom0 inherits xen::domain { case $operatingsystem { debian: { include xen::dom0::debian } centos: { include xen::dom0::centos } default: { include xen::dom0::base } } } class xen::dom0::base {} class xen::dom0::centos inherits xen::dom0::base { package{ [ "xen", "xen-libs"]: ensure => present, } } class xen::dom0::debian inherits xen::dom0::base { $real_xen_lvm = $xen_lvm ? { '' => "vg_${hostname}0", default => $xen_lvm, } case $lsbdistcodename { lenny: { package { "xen-tools": ensure => "4.1-1~bpo50+1", } } squeeze: { package { "xen-tools": ensure => installed; } } } file { "/etc/xen-tools/xen-tools.conf": owner => root, group => 0, mode => 0644, content => template("site_virtual/xen/${operatingsystem}/${lsbdistcodename}/xen-tools.conf.erb"), require => Package['xen-tools']; } }