kravietz.wpa_supplicant
Role Name
Role for wpa_supplicant management configuration with all options and systemd support.
Requirements
None.
Role Variables
Most variables, except for the first one, directly correspond to the
options in wpa_supplicant.conf reference.
Configuration file is generated by translating the Ansible dictionary variables, as in country: GB into
configuration file variables in the form of country=GB. Note that wpa_supplicant expects some variables
to be quoted (as in username="[email protected]") in which case the Ansible variable must
be double-quoted (username: '"[email protected]"').
This option determines which interface wpa_supplicant will be running on:
wpa_supplicant_interface: wlan0
Global wpa_supplicant config options:
wpa_supplicant_config:
  update_config: 1
  country: GB
There can be many creds blocks:
wpa_supplicant_credentials:
  - realm: '"example.com"'
    username: '"[email protected]"'
There may be many network blocks:
wpa_supplicant_networks:
  - scan_ssid: 1
    ssid: '"MySSID"'
    key_mgmt: WPA-PSK
    psk: '"Kohjioqu5Iefae1iedee"'
The psk secret should be encrypted with ansible-vault or, better yet, hashed with wpa_passphrase utility,
in which case it goes without quotes.
Dependencies
You can use this role along shibumi.systemd-conf to manage network configuration entirely from Ansible:
systemd_conf_network:
  10-wlan:
    - Match:
        - Name: wlan0
    - Network:
        - Address: '192.168.1.251/24'
        - Gateway: '192.168.1.252'
Example Playbook
Assuming the above configuration in host_vars:
- hosts: access_point
  roles:
    - role: kravietz.wpa_supplicant
      wpa_supplicant_interface: wlan0
      wpa_supplicant_config:
        ctrl_interface: DIR=/var/run/wpa_supplicant GROUP=netdev
        country: GB
      wpa_supplicant_networks:
        - scan_ssid: 1
          ssid: '"TEST"'
          psk: '"TEST-TEST-TEST"'
          key_mgmt: WPA-PSK
    - role: shibumi.systemd-conf
License
GPLv3
Author Information
Paweł Krawczyk https://krvtz.net/
wpa_supplicant management configuration with all options and systemd support.
ansible-galaxy install kravietz.wpa_supplicant