From 8d80fa3c516046d6d1fe81a6891b087de63de595 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Fri, 17 Nov 2023 22:17:24 +1100 Subject: [PATCH 1/2] feat: manage cloudinit - add/remove cloud-init, default to remove --- site/profiles/manifests/base.pp | 1 + site/profiles/manifests/cloudinit/init.pp | 28 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 site/profiles/manifests/cloudinit/init.pp diff --git a/site/profiles/manifests/base.pp b/site/profiles/manifests/base.pp index 1182097..6d1d6dc 100644 --- a/site/profiles/manifests/base.pp +++ b/site/profiles/manifests/base.pp @@ -29,6 +29,7 @@ class profiles::base ( include profiles::base::hosts include profiles::accounts::sysadmin include profiles::ntp::client + include profiles::cloudinit::init # configure dns records for client profiles::dns::client {"${facts['networking']['fqdn']}-default":} diff --git a/site/profiles/manifests/cloudinit/init.pp b/site/profiles/manifests/cloudinit/init.pp new file mode 100644 index 0000000..f2edb9c --- /dev/null +++ b/site/profiles/manifests/cloudinit/init.pp @@ -0,0 +1,28 @@ +# profiles::cloudinit::init +class profiles::cloudinit::init ( + Boolean $enabled = false, + String $package = 'cloud-init', + String $service = 'cloud-init', +){ + + 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, + } + } +} From d6f3262836317884529b31bffeef964141db4d38 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Fri, 17 Nov 2023 22:25:43 +1100 Subject: [PATCH 2/2] feat: manage qemu-agent --- site/profiles/manifests/base.pp | 4 ++++ site/profiles/manifests/qemu/agent.pp | 28 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 site/profiles/manifests/qemu/agent.pp diff --git a/site/profiles/manifests/base.pp b/site/profiles/manifests/base.pp index 1182097..b22badc 100644 --- a/site/profiles/manifests/base.pp +++ b/site/profiles/manifests/base.pp @@ -46,4 +46,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, + } + } +}