From 8e029f0d3bbe696f3781373aaf49ac2d5b2fa8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 15 Jan 2022 10:33:35 +0100 Subject: Better wpa_supplicant. --- manifests/init.pp | 3 +++ manifests/interface.pp | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index e78f23f..09c3d6d 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,6 +1,9 @@ class wpa_supplicant ( + # Hash[String,Hash] $interfaces, Hash[String,Hash] $interfaces, + Hash[String,Hash] $networks, String $ctrl_interface = '/run/wpa_supplicant', ) { + create_resources(wpa_supplicant::interface, $interfaces) } diff --git a/manifests/interface.pp b/manifests/interface.pp index 10373d1..3598103 100644 --- a/manifests/interface.pp +++ b/manifests/interface.pp @@ -1,16 +1,24 @@ define wpa_supplicant::interface ( String $interface = $name, - Array[Hash] $networks = [], + Array[String] $networks = [], ) { service { "wpa_supplicant@${interface}.service": ensure => running, enable => true, } - file { "/etc/wpa_supplicant/wpa_supplicant-${interface}.conf": + $conf_file = "/etc/wpa_supplicant/wpa_supplicant-${interface}.conf" + + + $network_items = $networks.map |$name| { + { 'ssid' => "\"${name}\"" } + $wpa_supplicant::networks[$name] + } + + + file { $conf_file: ensure => file, content => epp('wpa_supplicant/wpa_supplicant.conf.epp', { - networks => $networks + networks => $network_items, }), } ~> exec { "Reload wpa_supplicant for ${interface}": command => [ 'wpa_cli', 'reconfigure', '-i', $interface, ], -- cgit v1.2.3