Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
define xen_guest($memory="512", $size="2Gb", $swap="2Gb", $gateway="10.10.2.2", $ip, $auto=false, $ensure="present") { case $name { '': { fail ( "Cannot create xen guest with empty name" ) } } case $ensure { present: { exec { "/usr/bin/xen-create-image --hostname=$name --memory=$memory --size =$size --swap=$swap --gateway=$gateway --ip=$ip --tar /root/puppet.client.tar -- ide": creates => "/etc/xen/$name.cfg", alias => "xen_create_$name" } } running: { exec { "/usr/bin/xen-create-image --hostname=$name --memory=$memory --size =$size --swap=$swap --gateway=$gateway --ip=$ip --tar /root/puppet.client.tar -- ide --boot": creates => "/etc/xen/$name.cfg", alias => "xen_create_$name" } exec { "/usr/sbin/xm create /etc/xen/$name.cfg": returns => 1, unless => "/usr/sbin/xm list | /bin/grep $name", require => Exec["xen_create_$name"] } } stopped: { exec { "/usr/bin/xen-create-image --hostname=$name --memory=$memory --size =$size --swap=$swap --gateway=$gateway --ip=$ip --tar /root/puppet.client.tar -- ide": creates => "/etc/xen/$name.cfg", alias => "xen_create_$name" } exec { "/usr/sbin/xm shutdown -w $name": onlyif => "/usr/sbin/xm list | /bin/grep $name", require => Exec["xen_create_$name"] } } absent: { exec { "/usr/sbin/xm shutdown -w $name": onlyif => "/usr/sbin/xm list | /bin/grep $name", alias => "xen_shutdown_$name" } exec { "/usr/bin/xen-delete-image $name": unless => "/usr/sbin/xm list | /bin/grep $name", require => Exec["xen_shutdown_$name"] onlyif => "/usr/sbin/xm list | /bin/grep $name", require => Exec["xen_create_$name"] } } absent: { exec { "/usr/sbin/xm shutdown -w $name": onlyif => "/usr/sbin/xm list | /bin/grep $name", alias => "xen_shutdown_$name" } exec { "/usr/bin/xen-delete-image $name": unless => "/usr/sbin/xm list | /bin/grep $name", require => Exec["xen_shutdown_$name"] } } } if $auto { exec { "/bin/ln -s /etc/xen/$name.cfg /etc/xen/auto/": creates => "/etc/xen/auto/$name.cfg", onlyif => "test -f /etc/xen/$name.cfg"; } } } # Use like this: # xen_guest { "puppet-test.example.com": # ip => "10.10.67.26", # ensure => "absent" # }
This paste will be private.
From the Design Piracy series on my blog: