define wpa_supplicant::interface ( String $interface = $name, String[2,2] $country = 'US', Array[String] $networks = [], ) { service { "wpa_supplicant@${interface}.service": ensure => running, enable => true, } $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', { country => $country, networks => $network_items, }), } ~> exec { "Reload wpa_supplicant for ${interface}": command => [ 'wpa_cli', 'reconfigure', '-i', $interface, ], path => [ '/bin', '/usr/bin', ], refreshonly => true, } }