diff --git a/site/profiles/manifests/base.pp b/site/profiles/manifests/base.pp index 6d1d6dc..b1a26de 100644 --- a/site/profiles/manifests/base.pp +++ b/site/profiles/manifests/base.pp @@ -47,4 +47,8 @@ class profiles::base ( secure_path => '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/puppetlabs/bin' } + # manage virtualised guest agents + if $::facts['is_virtual'] and $::facts['dmi']['manufacturer'] == 'QEMU' { + include profiles::qemu::agent + } } diff --git a/site/profiles/manifests/qemu/agent.pp b/site/profiles/manifests/qemu/agent.pp new file mode 100644 index 0000000..5a9eeba --- /dev/null +++ b/site/profiles/manifests/qemu/agent.pp @@ -0,0 +1,28 @@ +# profiles::qemu::agent +class profiles::qemu::agent ( + Boolean $enabled = true, + String $package = 'qemu-guest-agent', + String $service = 'qemu-guest-agent', +){ + + if $enabled { + package { $package: + ensure => installed, + } + + service { $service: + ensure => running, + enable => true, + require => Package[$package], + } + } else { + service { $service: + ensure => stopped, + enable => false, + } + + package { $package: + ensure => absent, + } + } +}