solar/f2s/resources/generate_vms/actions/run.pp

50 lines
1.1 KiB
Puppet

notice('MODULAR: generate_vms.pp')
$libvirt_dir = '/etc/libvirt/qemu'
$template_dir = '/var/lib/nova'
$packages = ['qemu-utils', 'qemu-kvm', 'libvirt-bin', 'xmlstarlet']
$libvirt_service_name = 'libvirtd'
$vms = hiera_array('vms_conf')
define vm_config {
$details = $name
$id = $details['id']
file { "${template_dir}/template_${id}_vm.xml":
owner => 'root',
group => 'root',
content => template('osnailyfacter/vm_libvirt.erb'),
}
}
package { $packages:
ensure => 'installed',
}
service { $libvirt_service_name:
ensure => 'running',
require => Package[$packages],
before => Exec['generate_vms'],
}
file { "${libvirt_dir}/autostart":
ensure => 'directory',
require => Package[$packages],
}
file { "${template_dir}":
ensure => 'directory',
}
vm_config { $vms:
before => Exec['generate_vms'],
require => File["${template_dir}"],
}
exec { 'generate_vms':
command => "/usr/bin/generate_vms.sh ${libvirt_dir} ${template_dir}",
path => ['/usr/sbin', '/usr/bin' , '/sbin', '/bin'],
require => [File["${template_dir}"], File["${libvirt_dir}/autostart"]],
}