Achtung, die deutsche Dokumentation wird nicht weiter gepflegt. Bitte die englische Doku nutzen.
Diese Rolle verwaltet die wireless Konfiguration unter /etc/config/wireless. Einerseits können wifi-devices erstellt werden, andererseits wifi-interfaces.
Es werden für die Interfaces als auch für die Devices die Attribute aus UCI verwendet.
Die Variablen für die interfaces sind meistens straight forward. Häufig hilft es hier aber auch einmal testweise auf einem Gerät über LUCI eine Konfiguration zu erstellen und sich daran zu orientieren.
Bei den Devices ist es wohl immer am besten auf einem beispielhaften Zielgerät die Devices Konfiguration aus UCI in Ansible Variablen zu übertragen.
Hier ein Beispiel zur Konfiguration der Interfaces:
openwrt_wifi_interfaces:
wifi1_5g:
mode: "ap"
device: "radio1"
network: "INSECURE"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi1"
wifi2_5g:
mode: "ap"
device: "radio1"
network: "SECURE"
encryption: "sae"
key: "asdfasdf"
ssid: "wifi2"
wifi3_5g:
mode: "ap"
device: "radio1"
network: "MGMT"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi3"
wifi1_2g:
mode: "ap"
device: "radio0"
network: "INSECURE"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi1-legacy"
Hier ein Beispiel zur Konfiguration der Devices:
openwrt_wifi_devices:
radio0:
type: "mac80211"
path: "pci0000:00/0000:00:02.5/0000:05:00.0"
band: "2g"
htmode: "HE20"
channel: "auto"
cell_density: 0
radio1:
type: "mac80211"
path: "pci0000:00/0000:00:02.5/0000:05:00.0+1"
band: "5g"
htmode: "HE80"
channel: "auto"
cell_density: 0
Wenn man viele Geräte verwaltet bietet es sich an die Konfiguration auf Gruppen aufzuteilen. In diesem Beispiel haben wir einen Standort an dem zwei unterschiedliche Wifi Karten zum Einsatz kommen.
Gruppenname: tags_asiarf_aw7915-npd
openwrt_wifi_devices:
radio0:
type: "mac80211"
path: "pci0000:00/0000:00:02.5/0000:05:00.0"
band: "2g"
htmode: "HE20"
channel: "auto"
cell_density: 0
radio1:
type: "mac80211"
path: "pci0000:00/0000:00:02.5/0000:05:00.0+1"
band: "5g"
htmode: "HE80"
channel: "auto"
cell_density: 0
openwrt_wifi_interfaces_aw7915:
wasgeistreiches_5g:
device: "radio1"
spargeltarzan_5g:
device: "radio1"
quagermark_5g:
device: "radio1"
wasgeistreiches_2g:
device: "radio0"
spargeltarzan_2g:
device: "radio0"
quagermark_2g:
device: "radio0"
Gruppenname: tags_wle600vx
openwrt_wifi_devices:
radio0:
type: "mac80211"
path: "soc/d0070000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0"
band: "5g"
htmode: "VHT80"
channel: "auto"
openwrt_wifi_interfaces_wle600v:
wasgeistreiches_5g:
device: "radio0"
spargeltarzan_5g:
device: "radio0"
quagermark_5g:
device: "radio0"
Gruppenname: sites_StandortA
Das Attribut device
ist absichtlich nicht in den Variablen für den Standort enthalten, weil es nicht vom Standort abhängt, welches device man verwenden möchte, sondern von der eingesetzten Wifi Karte.
openwrt_wifi_interfaces_standorta:
wifi1_5g:
mode: "ap"
network: "INSECURE"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi1"
wifi2_5g:
mode: "ap"
network: "SECURE"
encryption: "sae"
key: "asdfasdf"
ssid: "wifi2"
wifi3_5g:
mode: "ap"
network: "MGMT"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi3"
wifi1_2g:
mode: "ap"
network: "INSECURE"
encryption: "psk2"
key: "asdfasdf"
ssid: "wifi1-legacy"
Damit man diese verschiedenen openwrt_wifi_interfaces_xyz
Variablen zusammmen bekommt, muss man dies im playbook oder inventory lösen.
Playbook: role_openwrtwireless.yml
- hosts: tags_access-point
pre_tasks:
- name: combine wifi interfaces with site Standort A
set_fact:
openwrt_wifi_interfaces: "{{ openwrt_wifi_interfaces|default({}) | combine(openwrt_wifi_interfaces_standorta, recursive=true) }}"
when: openwrt_wifi_interfaces_standorta is defined
- name: combine wifi interfaces with tag aw7915
set_fact:
openwrt_wifi_interfaces: "{{ openwrt_wifi_interfaces|default({}) | combine(openwrt_wifi_interfaces_aw7915, recursive=true) }}"
when: openwrt_wifi_interfaces_aw7915 is defined
- name: combine wifi interfaces with tag wle600v
set_fact:
openwrt_wifi_interfaces: "{{ openwrt_wifi_interfaces|default({}) | combine(openwrt_wifi_interfaces_wle600v, recursive=true) }}"
when: openwrt_wifi_interfaces_wle600v is defined
become: true
roles:
- imp1sh.ansible_openwrt.ansible_openwrtwireless