define nspawn::template_final ( String $root, String $puppet_server, String $template = $name, ) { exec { "Enable puppet on ${template}": command => [ '/usr/bin/systemd-nspawn', '-M', $template, '--quiet', 'systemctl', 'enable', 'puppet', ], creates => "${root}/etc/systemd/system/multi-user.target.wants/puppet.service", } file { "${root}/etc/systemd/system/puppet.service.requires": ensure => directory, } # This is nice in theory, but has the problem that # network-online.target is reached on our first IP-address, which # will probably be our static IPv4 address, and busting.adrift.space # isn't resolvable over IPv4... file { "${root}/etc/systemd/system/puppet.service.requires/network-online.target": ensure => link, # Debian requires /lib, arch accepts it target => '/lib/systemd/system/network-online.target' } file { [ "${root}/etc/puppetlabs", "${root}/etc/puppetlabs/puppet" ] : ensure => directory, } file { "${root}/etc/puppetlabs/puppet/puppet.conf": ensure => file, content => @("EOF") [main] server = ${puppet_server} | EOF } }