# 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_mem: source => "puppet://$server/virtual/munin/xen_mem", config => "user root"; xen_vm: source => "puppet://$server/virtual/munin/xen_vm", 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 => 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://$server/files/virtual/xen/${fqdn}/config/xend-config.sxp", "puppet://$server/files/virtual/xen/config/${domain}/xend-config.sxp", "puppet://$server/files/virtual/xen/config/${operatingsystem}/xend-config.sxp", "puppet://$server/files/virtual/xen/config/xend-config.sxp", "puppet://$server/virtual/xen/config/${operatingsystem}/xend-config.sxp", "puppet://$server/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://$server/virtual/xen/${operatingsystem}/sysconfig/xend", notify => Service['xend'], owner => root, group => 0, mode => 0644; } file{'/etc/sysconfig/xendomains': source => "puppet://$server/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 { "$xen-linux-system" = ? { amd64 => xen-linux-system-2.6.26-1-xen-amd64, i386 => xen-linux-system-2.6.26-1-xen-686 } package { "$xen-linux-system": ensure => present, alias => "xen-linux-system"; } # fix '4gb seg fixup' # http://wiki.xensource.com/xenwiki/XenFaq#head-e05786f1e0d6a833bc146a6096cab2d96f2b30ae config_file { "/etc/ld.so.conf.d/libc6-xen.conf": content => "hwcap 0 nosegneg\n", require => Package["xen-linux-system"], notify => Exec["ldconfig"]; } exec { "/sbin/ldconfig": refreshonly => true; } } 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 { package { "xen-tools": ensure => present; } }