diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-01-02 04:31:50 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-01-02 04:44:39 +0100 |
commit | a261aa089f879b6854c7b8fc7676d6b23ac25588 (patch) | |
tree | fc7e5e7dd40cca83f2eb130a8c26066689a6cd89 /modules/nspawn/manifests/util | |
parent | Add debug notice. (diff) | |
download | webdav_server-a261aa089f879b6854c7b8fc7676d6b23ac25588.tar.gz webdav_server-a261aa089f879b6854c7b8fc7676d6b23ac25588.tar.xz |
Network rewrites.
Diffstat (limited to '')
-rw-r--r-- | modules/nspawn/manifests/util/disable_networking.pp | 22 | ||||
-rw-r--r-- | modules/nspawn/manifests/util/enable_networkd.pp | 35 |
2 files changed, 57 insertions, 0 deletions
diff --git a/modules/nspawn/manifests/util/disable_networking.pp b/modules/nspawn/manifests/util/disable_networking.pp new file mode 100644 index 0000000..4a9b31b --- /dev/null +++ b/modules/nspawn/manifests/util/disable_networking.pp @@ -0,0 +1,22 @@ +define nspawn::util::disable_networking ( + String $machine = $name, + String $machine_path = "/var/lib/machines/${machine}", +) { + + + $cmd = if $facts['machined-info'][$machine]['State'] == 'running' { + [ 'systemctl', '-M', $machine, 'disable', 'networking' ] + } else { + [ 'systemd-nspawn', '-M', $machine, '--quiet', + 'systemctl', 'disable', 'networking' ] + } + + exec { "Disable networking on ${machine}": + command => $cmd, + path => [ '/bin', '/usr/bin', ], + # among others + # creates => "${machine_path}/etc/systemd/system/multi-user.target.wants/systemd-networkd.service", + } + +} + diff --git a/modules/nspawn/manifests/util/enable_networkd.pp b/modules/nspawn/manifests/util/enable_networkd.pp new file mode 100644 index 0000000..2b532b9 --- /dev/null +++ b/modules/nspawn/manifests/util/enable_networkd.pp @@ -0,0 +1,35 @@ +define nspawn::util::enable_networkd ( + String $machine = $name, + String $machine_path = "/var/lib/machines/${machine}", +) { + + # TODO only do this if the directory is empty + networking::networkd { "Initial networking on ${machine}": + filename => '20-puppet-initial', + match => { 'Name' => 'host0', }, + root => $machine_path, + network => { + 'DHCP' => 'ipv4', + 'IPv6AcceptRA' => 1, + }, + notify_ => false, + manage_directory => false, + } + + $running = $facts['machined-info'][$machine] != Undef or $facts['machined-info'][$machine]['State'] == 'running' + + $cmd = if $running { + [ 'systemctl', '-M', $machine, 'enable', 'systemd-networkd' ] + } else { + [ 'systemd-nspawn', '-M', $machine, '--quiet', + 'systemctl', 'enable', 'systemd-networkd' ] + } + + exec { "Enable systemd-networkd on ${machine}": + command => $cmd, + path => [ '/bin', '/usr/bin', ], + # among others + creates => "${machine_path}/etc/systemd/system/multi-user.target.wants/systemd-networkd.service", + } + +} |