Initial commit

This commit is contained in:
2024-10-30 01:50:38 +01:00
commit 587ca23374
147 changed files with 7521 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
---
# # Configure wireless device
# - name: Configure wireless device {{ item.id }}
# when: item.id != ""
# uci:
# command: "set"
# config: "wireless"
# section: "{{ item.id }}"
# type: "wifi-device"
# value:
# type: "{{ item.type | default(omit) }}"
# disabled: "{{ item.disabled | default(omit) }}"
# channel: "{{ item.channel | default(omit) }}"
# band: "{{ item.band | default(omit) }}"
# htmode: "{{ item.htmode | default(omit) }}"
# country: "{{ item.country | default(omit) }}"
# Configure wireless device
- name: Configure wireless device {{ item }}
uci:
command: "section"
config: "wireless"
section: "{{ item }}"
type: "wifi-device"
value:
type: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='type') | first | default(omit)) }}"
disabled: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='disabled') | first | default(wireless_devices_default.disabled | default(omit))) }}"
channel: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='channel') | first | default(omit)) }}"
band: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='band') | first | default(omit)) }}"
htmode: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='htmode') | first | default(omit)) }}"
country: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='country') | first | default(wireless_devices_default.country | default(omit))) }}"
txpower: "{{ (wireless_devices | selectattr('id', 'equalto', item) | map(attribute='txpower') | first | default(omit)) }}"

View File

@@ -0,0 +1,93 @@
---
# Set state status for wireless interface
- name: Set state status for wireless interface {{ outerItem.ssid }}
ansible.builtin.set_fact:
wireless_interface_state: "{{ outerItem.state | default('present') }}"
# Override wifi devices
- name: Override wifi add devices for {{ outerItem.ssid }}
when: "'present' in wireless_interface_state"
ansible.builtin.set_fact:
wireless_devices_add: "{{ (wireless_interfaces_override | default() | selectattr('ssid', 'equalto', outerItem.ssid) | map(attribute='device') | list | first) | default(outerItem.device) }}"
- name: Set wifi device del for {{ outerItem.ssid }}
when: "'present' in wireless_interface_state"
ansible.builtin.set_fact:
wireless_devices_del: "{{ ansible_facts.openwrt_wireless | list | difference(wireless_devices_add) | default([]) }}"
# - name: test
# debug:
# msg: "{{ outerItem }}"
# loop: "{{ outerItem.device }}"
# Delete wireless interface by name on all radios
- name: Delete wireless interface {{ outerItem.ssid }} on all radios
when: "'absent' in wireless_interface_state"
uci:
command: "absent"
config: "wireless"
type: "wifi-iface"
find:
ssid: "{{ outerItem.ssid }}"
# Delete wireless interface
- name: Delete wireless interface {{ outerItem.ssid }} on radio {{ item }}
when: wireless_devices_del is defined and wireless_devices_del | length > 0
uci:
command: "absent"
config: "wireless"
type: "wifi-iface"
find:
ssid: "{{ outerItem.ssid }}"
device: "{{ item }}"
loop: "{{ wireless_devices_del }}"
# Create and configure wireless interface
- name: Create and configure wireless interface
when: "'present' in wireless_interface_state and wireless_devices_add | length > 0"
block:
# Generate mobility domain identifier
- name: Generate mobility domain identifier
ansible.builtin.command:
cmd: "echo -n {{ item.ssid }} | md5sum | cut -c-4"
uses_shell: true
register: mobility_domain_identifier
when: >
(mobility_domain is defined and mobility_domain == 1) and
(item.ssid is defined and item.ssid | length > 0)
# Configure wireless interface
- name: Configure wireless interface
uci:
command: "section"
config: "wireless"
type: "wifi-iface"
find:
device: "{{ item }}"
ssid: "{{ outerItem.ssid }}"
value:
ifname: "{{ outerItem.ifname ~ ansible_loop.index0 | default(omit) }}"
device: "{{ item | default(omit) }}"
network: "{{ outerItem.network | default([]) | join(' ') }}"
mode: "{{ outerItem.mode | default(omit) }}"
disabled: "{{ outerItem.disabled | default(omit) }}"
ssid: "{{ outerItem.ssid | default(omit) }}"
mesh_id: "{{ outerItem.mesh_id | default(omit) }}"
hidden: "{{ outerItem.hidden | default(omit) }}"
isolate: "{{ outerItem.isolate | default(omit) }}"
encryption: "{{ outerItem.encryption | default(omit) }}"
key: "{{ outerItem.key | default(omit) }}"
auth_server: "{{ outerItem.auth_server | default(omit) }}"
auth_secret: "{{ outerItem.auth_secret | default(omit) }}"
dynamic_vlan: "{{ outerItem.dynamic_vlan | default(omit) }}"
vlan_tagged_interface: "{{ outerItem.vlan_tagged_interface | default(omit) }}"
vlan_bridge: "{{ outerItem.vlan_bridge | default(omit) }}"
vlan_naming: "{{ outerItem.vlan_naming | default(omit) }}"
macfilter: "{{ outerItem.macfilter | default(omit) }}"
maclist: "{{ outerItem.maclist | default([]) | join(' ') }}"
ieee80211r: "{{ outerItem.ieee80211r | default(omit) }}"
mobility_domain: "{{ mobility_domain_identifier.stdout | default(omit) }}"
ft_over_ds: "{{ outerItem.ft_over_ds | default(omit) }}"
ft_psk_generate_local: "{{ outerItem.ft_psk_generate_local | default(omit) }}"
loop: "{{ wireless_devices_add }}"
loop_control:
extended: true

View File

@@ -0,0 +1,19 @@
---
# Configure device section
- name: Configure device section
ansible.builtin.include_tasks: device.yml
# loop: "{{ (wireless_devices | default([])) }}"
loop: "{{ ansible_facts.openwrt_wireless | list }}"
# Configure interface section
- name: Configure interface section
ansible.builtin.include_tasks: interface.yml
loop: "{{ wireless_interfaces | default([]) }}"
loop_control:
loop_var: outerItem
# Apply changes and reload wireless service
- name: Apply changes and reload wireless
uci:
command: commit
notify: Reload wireless