Compare commits
44 Commits
test-pr
...
inuse-sepa
| Author | SHA1 | Date | |
|---|---|---|---|
| 10fd5b8668 | |||
| 26ef6cdc33 | |||
| 728a897fec | |||
| 120a2b5a93 | |||
| 9c43186e5a | |||
| 44e2634b6e | |||
| e92dbe3658 | |||
| 2c04241abb | |||
| fcbb8826cf | |||
| 4dc1d44aea | |||
| 97bfe982cf | |||
| 69c6be8453 | |||
| fa5fbb4c7d | |||
| 5b4e8e0147 | |||
| 714f7dc85f | |||
| 61e98c956c | |||
| 58e204a004 | |||
| 9d7fae28c4 | |||
| d1922dd935 | |||
| ce468dc798 | |||
| cf8514dab7 | |||
| c6846320b8 | |||
| 245626589d | |||
| c9df2b7516 | |||
| c9f4d75e87 | |||
| 1f462665cc | |||
| 889a54fd21 | |||
| 8058f197f1 | |||
| 5c1f99965a | |||
| 29e103a176 | |||
| e05b253210 | |||
| 5d193970bc | |||
| 4be4747f96 | |||
| 9c426a57bf | |||
| a689dcabab | |||
| 6ba330eb81 | |||
| 2ea51c7833 | |||
| 50ba10ad0e | |||
| df4fd21984 | |||
| b46bf38e84 | |||
| ad80c3d464 | |||
| d139c423cb | |||
| 08dab0af7d | |||
| e1fd69bfee |
499
inventory.yml
499
inventory.yml
@@ -1,6 +1,56 @@
|
||||
templates:
|
||||
package_ath10k_mesh: &package_ath10k_mesh
|
||||
- name: kmod-ath10k-ct
|
||||
state: absent
|
||||
- name: ath10k-firmware-qca988x-ct
|
||||
state: absent
|
||||
- name: kmod-ath10k
|
||||
state: present
|
||||
- name: ath10k-firmware-qca988x
|
||||
state: present
|
||||
|
||||
package_ath10k_99x0_full: &package_ath10k_99x0_full
|
||||
- name: kmod-ath10k-ct
|
||||
state: present
|
||||
- name: ath10k-firmware-qca99x0-ct
|
||||
state: absent
|
||||
- name: ath10k-firmware-qca99x0-ct-full-htt
|
||||
state: present
|
||||
|
||||
package_wpad_mesh: &package_wpad_mesh
|
||||
- name: wpad-basic-wolfssl
|
||||
state: absent
|
||||
- name: wpad-mesh-wolfssl
|
||||
state: absent
|
||||
- name: wpad-basic-mbedtls
|
||||
state: absent
|
||||
- name: wpad-mesh-mbedtls
|
||||
state: absent
|
||||
- name: wpad-wolfssl
|
||||
state: present
|
||||
|
||||
# Note: This is intentionally a duplicate of package_wpad_mesh --
|
||||
# need to manually test migration of other devices to an actual
|
||||
# wpad-mesh-wolfssl (or similar) variant.
|
||||
package_wpad_full: &package_wpad_full
|
||||
- name: wpad-basic-wolfssl
|
||||
state: absent
|
||||
- name: wpad-mesh-wolfssl
|
||||
state: absent
|
||||
- name: wpad-wolfssl
|
||||
state: present
|
||||
- name: wpad-basic-mbedtls
|
||||
state: absent
|
||||
- name: wpad-mesh-mbedtls
|
||||
state: absent
|
||||
|
||||
openwrt:
|
||||
hosts:
|
||||
ap3825i2.lan:
|
||||
|
||||
ap3825i7:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
@@ -13,6 +63,7 @@ openwrt:
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
@@ -25,25 +76,18 @@ openwrt:
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: qca9880_5
|
||||
template: ath9k_5
|
||||
channel: 149
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 11
|
||||
|
||||
wifi_iface:
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
disabled: 1
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
disabled: 1
|
||||
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
@@ -52,20 +96,301 @@ openwrt:
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
ap3825i3.lan:
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
|
||||
- ifname: vgo2n
|
||||
device: radio1
|
||||
template: vgo2n
|
||||
|
||||
- ifname: vgo5n
|
||||
device: radio0
|
||||
template: vgo5n
|
||||
|
||||
ap3825i8:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: ath9k_5
|
||||
channel: 157
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 6
|
||||
|
||||
wifi_iface:
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
|
||||
- ifname: labb5
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
|
||||
- ifname: vgo2n
|
||||
device: radio1
|
||||
template: vgo2n
|
||||
|
||||
- ifname: vgo5n
|
||||
device: radio0
|
||||
template: vgo5n
|
||||
|
||||
ap3825i9:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: ath9k_5
|
||||
channel: 161
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
|
||||
- ifname: labb5
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
|
||||
- ifname: vgo2n
|
||||
device: radio1
|
||||
template: vgo2n
|
||||
|
||||
- ifname: vgo5n
|
||||
device: radio0
|
||||
template: vgo5n
|
||||
|
||||
ap3825i4:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: ath9k_5
|
||||
channel: 36
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
|
||||
- ifname: labb5
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
|
||||
- ifname: vgo2n
|
||||
device: radio1
|
||||
template: vgo2n
|
||||
|
||||
- ifname: vgo5n
|
||||
device: radio0
|
||||
template: vgo5n
|
||||
|
||||
ap3825i6:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: ath9k_5
|
||||
channel: 48
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 11
|
||||
|
||||
wifi_iface:
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
|
||||
- ifname: labb5
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
device: radio0
|
||||
template: vgo5
|
||||
|
||||
- ifname: vgo2n
|
||||
device: radio1
|
||||
template: vgo2n
|
||||
|
||||
- ifname: vgo5n
|
||||
device: radio0
|
||||
template: vgo5n
|
||||
|
||||
ap3825i10:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
ath10k: *package_ath10k_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
@@ -88,35 +413,27 @@ openwrt:
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: vgo2
|
||||
device: radio1
|
||||
template: vgo2
|
||||
|
||||
- ifname: vgo5
|
||||
- ifname: vgo5c
|
||||
device: radio0
|
||||
template: vgo5
|
||||
template: vgo5c
|
||||
|
||||
- ifname: labb2
|
||||
device: radio1
|
||||
template: labb
|
||||
ap3825i11:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
ath10k: *package_ath10k_mesh
|
||||
|
||||
- ifname: labb5
|
||||
device: radio0
|
||||
template: labb
|
||||
|
||||
mr16_3.lan:
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
stp: 1
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth0
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
@@ -130,42 +447,106 @@ openwrt:
|
||||
wireless:
|
||||
wifi_device:
|
||||
- name: radio0
|
||||
path: pci0000:00/0000:00:11.0
|
||||
template: ath9k_2
|
||||
hwmode: 11n
|
||||
band:
|
||||
channel: 6
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: qca9880_5
|
||||
channel: 157
|
||||
|
||||
- name: radio1
|
||||
path: pci0000:00/0000:00:12.0
|
||||
template: ath9k_5
|
||||
hwmode: 11n
|
||||
band:
|
||||
channel: 48
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: vgo5
|
||||
device: radio1
|
||||
template: vgo5
|
||||
disabled: 0
|
||||
|
||||
- ifname: vgomesh2
|
||||
- ifname: vgo5c
|
||||
device: radio0
|
||||
template: vgomesh2
|
||||
disabled: 0
|
||||
template: vgo5c
|
||||
|
||||
- ifname: labb2
|
||||
ap3825i12:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
ath10k: *package_ath10k_mesh
|
||||
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: qca9880_5
|
||||
channel: 157
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: vgo5c
|
||||
device: radio0
|
||||
template: labb
|
||||
template: vgo5c
|
||||
|
||||
- ifname: labb5
|
||||
device: radio1
|
||||
template: labb
|
||||
ap3825i13:
|
||||
packages:
|
||||
wpad: *package_wpad_mesh
|
||||
ath10k: *package_ath10k_mesh
|
||||
|
||||
- ifname: labbmesh2
|
||||
network:
|
||||
device:
|
||||
- name: br-lan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0
|
||||
- eth1
|
||||
|
||||
- name: br-vgolan
|
||||
type: bridge
|
||||
ports:
|
||||
- eth0.2
|
||||
- eth1.2
|
||||
|
||||
interface:
|
||||
- key: lan
|
||||
device: br-lan
|
||||
proto: dhcp
|
||||
|
||||
- key: vgolan
|
||||
device: br-vgolan
|
||||
proto: dhcp
|
||||
|
||||
wireless:
|
||||
wifi_device:
|
||||
- name: radio0
|
||||
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
|
||||
template: qca9880_5
|
||||
channel: 157
|
||||
|
||||
- name: radio1
|
||||
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
|
||||
template: ath9k_2
|
||||
channel: 1
|
||||
|
||||
wifi_iface:
|
||||
- ifname: vgo5c
|
||||
device: radio0
|
||||
template: labbmesh
|
||||
|
||||
- ifname: labbmesh5
|
||||
device: radio1
|
||||
template: labbmesh
|
||||
template: vgo5c
|
||||
|
||||
5
roles/config/handlers/main.yml
Normal file
5
roles/config/handlers/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
- name: Reload dropbear
|
||||
service:
|
||||
name: dropbear
|
||||
state: reloaded
|
||||
enabled: yes
|
||||
2
roles/config/meta/main.yml
Normal file
2
roles/config/meta/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- role: gekmihesg.openwrt
|
||||
49
roles/config/tasks/main.yml
Normal file
49
roles/config/tasks/main.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
- name: Setup hostname
|
||||
when: inventory_hostname is defined
|
||||
uci:
|
||||
command: set
|
||||
key: 'system.@system[0]'
|
||||
value:
|
||||
hostname: "{{ inventory_hostname }}"
|
||||
|
||||
- name: Setup timezone
|
||||
uci:
|
||||
command: set
|
||||
key: 'system.@system[0]'
|
||||
value:
|
||||
timezone: "{{ timezone | default(system[template | default('default')].timezone) }}"
|
||||
zonename: "{{ zonename | default(system[template | default('default')].zonename) }}"
|
||||
log_ip: "{{ log_ip | default(system[template | default('default')].log_ip) }}"
|
||||
log_port: "{{ log_port | default(system[template | default('default')].log_port) }}"
|
||||
log_proto: "{{ log_proto | default(system[template | default('default')].log_proto) }}"
|
||||
|
||||
- name: commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: system
|
||||
|
||||
- name: Update authorized keys
|
||||
lineinfile:
|
||||
path: /etc/dropbear/authorized_keys
|
||||
line: "{{ item }}"
|
||||
state: present
|
||||
create: yes
|
||||
mode: 644
|
||||
loop:
|
||||
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBEysezzehXkUOm8u8nXP+YloSE8JpKYevCslao5tB2l root@neo"
|
||||
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILCYhh9Fjo8bV5rV6UfvwDgR+NlmCfKuR14iXgmILeDj hurricos@bielik"
|
||||
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPh3R8BXv9geqJMaxi134Y5hcOVZPQ/rfghjszYMFG5z hurricos@zephyr"
|
||||
|
||||
- name: Disable Root password authentication
|
||||
uci:
|
||||
command: set
|
||||
key: "dropbear.@dropbear[0]"
|
||||
value:
|
||||
RootPasswordAuth: "off"
|
||||
PasswordAuth: "off"
|
||||
notify: reload dropbear
|
||||
|
||||
- name: Commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: dropbear
|
||||
8
roles/config/vars/main.yml
Normal file
8
roles/config/vars/main.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
system:
|
||||
|
||||
default: &default_system
|
||||
timezone: 'EST5EDT,M3.2.0,M11.1.0'
|
||||
zonename: 'America/New York'
|
||||
log_ip: 10.0.7.226
|
||||
log_proto: tcp
|
||||
log_port: 514
|
||||
12
roles/netconfig/handlers/main.yml
Normal file
12
roles/netconfig/handlers/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: reload odhcpd
|
||||
nohup:
|
||||
command: /etc/init.d/odhcpd reload
|
||||
delay: 1
|
||||
when: "'openwrt' in group_names"
|
||||
|
||||
- name: reload dnsmasq
|
||||
nohup:
|
||||
command: /etc/init.d/dnsmasq reload
|
||||
delay: 1
|
||||
when: "'openwrt' in group_names"
|
||||
2
roles/netconfig/meta/main.yml
Normal file
2
roles/netconfig/meta/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- role: gekmihesg.openwrt
|
||||
8
roles/netconfig/tasks/main.yml
Normal file
8
roles/netconfig/tasks/main.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
- name: Setup dhcp
|
||||
ansible.builtin.import_tasks: setup_dhcp.yml
|
||||
|
||||
- name: Setup network
|
||||
ansible.builtin.import_tasks: setup_network.yml
|
||||
|
||||
- name: Setup wireless
|
||||
ansible.builtin.import_tasks: setup_wireless.yml
|
||||
8
roles/netconfig/tasks/setup_dhcp.yml
Normal file
8
roles/netconfig/tasks/setup_dhcp.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Totally eliminate DHCP configuration
|
||||
copy:
|
||||
content: ''
|
||||
dest: "/etc/config/dhcp"
|
||||
notify: # https://selivan.github.io/2017/01/15/ansible-multiple-handlers-subtlety.html
|
||||
- reload odhcpd
|
||||
- reload dnsmasq
|
||||
31
roles/netconfig/tasks/setup_network.yml
Normal file
31
roles/netconfig/tasks/setup_network.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
- name: Setup network devices
|
||||
uci:
|
||||
command: section
|
||||
config: network
|
||||
type: device
|
||||
find_by:
|
||||
name: "{{ item.name }}"
|
||||
value:
|
||||
type: "{{ item.type }}"
|
||||
ports: "{{ item.ports }}"
|
||||
stp: "{{ item.stp | default() }}"
|
||||
loop: "{{ network['device'] }}"
|
||||
|
||||
- name: Setup network interfaces
|
||||
uci:
|
||||
command: section
|
||||
config: network
|
||||
type: interface
|
||||
name: "{{ item.key }}"
|
||||
value:
|
||||
device: "{{ item.device }}"
|
||||
proto: "{{ item.proto }}"
|
||||
ifname: "{{ item.ifname | default() }}"
|
||||
loop: "{{ network['interface'] }}"
|
||||
|
||||
- name: commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: network
|
||||
notify: restart network
|
||||
58
roles/netconfig/tasks/setup_wireless.yml
Normal file
58
roles/netconfig/tasks/setup_wireless.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
- name: Tear down the default wifi-iface(s)
|
||||
uci:
|
||||
config: wireless
|
||||
command: absent
|
||||
section: "{{ item }}"
|
||||
loop:
|
||||
- default_radio0
|
||||
- default_radio1
|
||||
|
||||
- name: Setup wireless devices (radios)
|
||||
uci:
|
||||
command: section
|
||||
config: wireless
|
||||
type: wifi-device
|
||||
find_by:
|
||||
path: "{{ item.path }}"
|
||||
name: "{{ item.name }}"
|
||||
value:
|
||||
type: "mac80211" # they'd BETTER be.
|
||||
band: "{{ item.band | default(wifi_device[item.template].band) | default() }}"
|
||||
channel: "{{ item.channel | default(wifi_device[item.template].channel) }}"
|
||||
country: "{{ item.country | default(wifi_device[item.template].country) }}"
|
||||
disabled: "{{ item.disabled | default(wifi_device[item.template].disabled) }}"
|
||||
hwmode: "{{ item.hwmode | default(wifi_device[item.template].hwmode) | default() }}"
|
||||
htmode: "{{ item.htmode | default(wifi_device[item.template].htmode) }}"
|
||||
log_level: "{{ item.log_level | default(wifi_device[item.template].log_level) | default() }}"
|
||||
loop: "{{ wireless['wifi_device'] }}"
|
||||
|
||||
- name: Setup wireless ifaces (VIFs)
|
||||
uci:
|
||||
command: section
|
||||
config: wireless
|
||||
type: wifi-iface
|
||||
name: "{{ item.ifname | default(wifi_iface[item.template].ifname) | default('') }}"
|
||||
value:
|
||||
ifname: "{{ item.ifname | default(wifi_iface[item.template].ifname) | default('') if not item.force_ifnameless | default(false) }}"
|
||||
mode: "{{ item.mode | default(wifi_iface[item.template].mode) }}"
|
||||
device: "{{ item.device | default(wifi_iface[item.template].device) }}"
|
||||
network: "{{ item.network | default(wifi_iface[item.template].network) }}"
|
||||
ssid: "{{ item.ssid | default(wifi_iface[item.template].ssid) | default() }}"
|
||||
bss_transition: "{{ item.bss_transition | default(wifi_iface[item.template].bss_transition) | default() }}"
|
||||
ieee80211k: "{{ item.ieee80211k | default(wifi_iface[item.template].ieee80211k) | default() }}"
|
||||
ieee80211r: "{{ item.ieee80211r | default(wifi_iface[item.template].ieee80211r) | default() }}"
|
||||
ieee80211v: "{{ item.ieee80211v | default(wifi_iface[item.template].ieee80211v) | default() }}"
|
||||
mesh_id: "{{ item.mesh_id | default(wifi_iface[item.template].mesh_id) | default() }}"
|
||||
encryption: "{{ item.encryption | default(wifi_iface[item.template].encryption) }}"
|
||||
key: "{{ item.key | default(wifi_iface[item.template].key) }}"
|
||||
disabled: "{{ item.disabled | default(wifi_iface[item.template].disabled) | default(0) }}"
|
||||
skip_inactivity_poll: "{{ item.skip_inactivity_poll | default(wifi_iface[item.template].skip_inactivity_poll) | default() }}"
|
||||
disassoc_low_ack: "{{ item.disassoc_low_ack | default(wifi_iface[item.template].disassoc_low_ack) | default() }}"
|
||||
loop: "{{ wireless['wifi_iface'] }}"
|
||||
|
||||
- name: commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: wireless
|
||||
notify: reload wifi
|
||||
@@ -5,12 +5,16 @@ wifi_iface:
|
||||
mode: 'ap'
|
||||
encryption: 'psk2'
|
||||
key: 'password'
|
||||
skip_inactivity_poll: '1'
|
||||
disassoc_low_ack: '0'
|
||||
ieee80211k: 1
|
||||
ieee80211r: 1
|
||||
ieee80211v: 1
|
||||
bss_transition: 1
|
||||
|
||||
vgo: &vgo_wifi_iface
|
||||
<<: *default_wifi_iface
|
||||
network: 'vgolan'
|
||||
skip_inactivity_poll: '1'
|
||||
disassoc_low_ack: '0'
|
||||
key: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
63626332663164663666656466373031633564663435646531663331666262626265656335646364
|
||||
@@ -27,11 +31,21 @@ wifi_iface:
|
||||
<<: *vgo_wifi_iface
|
||||
ssid: 'Vermont Green Offices 5G'
|
||||
|
||||
mesh: &mesh_wifi_iface
|
||||
ssid:
|
||||
mode: 'mesh'
|
||||
encryption: 'psk2+ccmp'
|
||||
skip_inactivity_poll:
|
||||
vgo2n:
|
||||
<<: *vgo_wifi_iface
|
||||
ssid: 'Vermont Green Offices'
|
||||
|
||||
vgo5n:
|
||||
<<: *vgo_wifi_iface
|
||||
ssid: 'Vermont Green Offices'
|
||||
|
||||
vgo5c:
|
||||
<<: *vgo_wifi_iface
|
||||
ssid: 'Vermont Green Offices 5AC'
|
||||
ieee80211k: 0
|
||||
ieee80211r: 0
|
||||
ieee80211v: 0
|
||||
bss_transition: 0
|
||||
|
||||
labb: &labb_wifi_iface
|
||||
<<: *default_wifi_iface
|
||||
@@ -45,15 +59,9 @@ wifi_iface:
|
||||
3163343464646535370a636331383863653137646636343831643961633633333536393539643861
|
||||
62326536343964333331653966663931313438333161626533393235373232626265
|
||||
|
||||
labbmesh:
|
||||
labbwpa3: &labb_wifi_iface_wpa3
|
||||
<<: *labb_wifi_iface
|
||||
<<: *mesh_wifi_iface
|
||||
mesh_id: 'Laboratory B_Mesh'
|
||||
|
||||
vgomesh2:
|
||||
<<: *vgo_wifi_iface
|
||||
<<: *mesh_wifi_iface
|
||||
mesh_id: 'Vermont Green Offices 2G_Mesh'
|
||||
encryption: 'sae'
|
||||
|
||||
wifi_device:
|
||||
|
||||
@@ -61,12 +69,38 @@ wifi_device:
|
||||
channel: auto
|
||||
country: US
|
||||
disabled: 0
|
||||
log_level: 0
|
||||
|
||||
qca9880_5:
|
||||
<<: *default_wifi_device
|
||||
band: 5g
|
||||
htmode: VHT80
|
||||
|
||||
mt761x_2:
|
||||
<<: *default_wifi_device
|
||||
band: 2g
|
||||
htmode: VHT20
|
||||
|
||||
mt761x_5:
|
||||
<<: *default_wifi_device
|
||||
band: 5g
|
||||
htmode: VHT80
|
||||
|
||||
mt791x_2:
|
||||
<<: *default_wifi_device
|
||||
band: 2g
|
||||
htmode: HE20
|
||||
|
||||
mt791x_5:
|
||||
<<: *default_wifi_device
|
||||
band: 5g
|
||||
htmode: HE80
|
||||
|
||||
mt7916_6:
|
||||
<<: *default_wifi_device
|
||||
band: 6g
|
||||
htmode: HE160
|
||||
|
||||
ath9k_2:
|
||||
<<: *default_wifi_device
|
||||
band: 2g
|
||||
17
roles/netpkgconfig/handlers/main.yml
Normal file
17
roles/netpkgconfig/handlers/main.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
- name: Touch a file
|
||||
command:
|
||||
argv:
|
||||
- touch
|
||||
- /tmp/test_proof
|
||||
|
||||
- name: Restart prometheus-ucode
|
||||
service:
|
||||
name: prometheus-node-exporter-ucode
|
||||
state: restarted
|
||||
enabled: yes
|
||||
|
||||
- name: Restart prometheus-lua
|
||||
service:
|
||||
name: prometheus-node-exporter-lua
|
||||
state: restarted
|
||||
enabled: yes
|
||||
2
roles/netpkgconfig/meta/main.yml
Normal file
2
roles/netpkgconfig/meta/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- role: gekmihesg.openwrt
|
||||
86
roles/netpkgconfig/tasks/main.yml
Normal file
86
roles/netpkgconfig/tasks/main.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
- name: Install the correct wpad packages
|
||||
opkg:
|
||||
name: "{{ item.name }}"
|
||||
state: "{{ item.state }}"
|
||||
loop: "{{ packages.wpad | default([]) }}"
|
||||
notify: "{{ item.notify | default([]) }}"
|
||||
register: wpad_config
|
||||
|
||||
- name: Reload wpad
|
||||
nohup:
|
||||
command: "wifi down; /etc/init.d/wpad restart; wifi up"
|
||||
delay: 10
|
||||
when:
|
||||
- wpad_config.changed
|
||||
|
||||
- name: Wait for connection after netpkg reconfig
|
||||
wait_for_connection:
|
||||
timeout: 70
|
||||
delay: 5
|
||||
when:
|
||||
- wpad_config.changed
|
||||
- openwrt_wait_for_connection
|
||||
|
||||
- name: Install the correct ath10k packages
|
||||
opkg:
|
||||
name: "{{ item.name }}"
|
||||
state: "{{ item.state }}"
|
||||
loop: "{{ packages.ath10k | default([]) }}"
|
||||
notify: "{{ item.notify | default([]) }}"
|
||||
|
||||
# - name: Install prometheus-ucode packages
|
||||
# opkg:
|
||||
# name: "{{ item }}"
|
||||
# state: present
|
||||
# loop:
|
||||
# - prometheus-node-exporter-ucode
|
||||
# - prometheus-node-exporter-ucode-wifi
|
||||
# - prometheus-node-exporter-ucode-netstat
|
||||
# - prometheus-node-exporter-ucode-openwrt
|
||||
# notify: Restart prometheus-ucode
|
||||
|
||||
# - name: Setup prometheus-ucode properly
|
||||
# uci:
|
||||
# command: set
|
||||
# key: 'prometheus-node-exporter-ucode.main'
|
||||
# value:
|
||||
# listen_interface: 'lan'
|
||||
# notify: Restart prometheus-ucode
|
||||
|
||||
# - name: commit changes to prometheus-node-exporter-ucode
|
||||
# uci:
|
||||
# command: commit
|
||||
# key: prometheus-node-exporter-ucode
|
||||
|
||||
- name: Install prometheus-lua packages
|
||||
opkg:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
loop:
|
||||
- prometheus-node-exporter-lua
|
||||
- prometheus-node-exporter-lua-wifi
|
||||
- prometheus-node-exporter-lua-wifi_stations
|
||||
- prometheus-node-exporter-lua-hostapd_stations
|
||||
- prometheus-node-exporter-lua-hostapd_ubus_stations
|
||||
- prometheus-node-exporter-lua-netstat
|
||||
- prometheus-node-exporter-lua-dawn
|
||||
notify: Restart prometheus-lua
|
||||
|
||||
- name: Setup prometheus-lua properly
|
||||
uci:
|
||||
command: set
|
||||
key: 'prometheus-node-exporter-lua.main'
|
||||
value:
|
||||
listen_interface: 'lan'
|
||||
notify: Restart prometheus-lua
|
||||
|
||||
- name: commit changes to prometheus-node-exporter-lua
|
||||
uci:
|
||||
command: commit
|
||||
key: prometheus-node-exporter-lua
|
||||
|
||||
- name: Install dawn
|
||||
opkg:
|
||||
name: dawn
|
||||
state: present
|
||||
|
||||
@@ -1,78 +1,5 @@
|
||||
- hosts: openwrt
|
||||
roles:
|
||||
- gekmihesg.openwrt
|
||||
tasks:
|
||||
|
||||
- name: Setup network devices
|
||||
uci:
|
||||
command: section
|
||||
config: network
|
||||
type: device
|
||||
find_by:
|
||||
name: "{{ item.name }}"
|
||||
value:
|
||||
type: "{{ item.type }}"
|
||||
ports: "{{ item.ports }}"
|
||||
stp: "{{ item.stp | default() }}"
|
||||
loop: "{{ network['device'] }}"
|
||||
|
||||
- name: Setup network interfaces
|
||||
uci:
|
||||
command: section
|
||||
config: network
|
||||
type: interface
|
||||
name: "{{ item.key }}"
|
||||
value:
|
||||
device: "{{ item.device }}"
|
||||
proto: "{{ item.proto }}"
|
||||
ifname: "{{ item.ifname | default() }}"
|
||||
loop: "{{ network['interface'] }}"
|
||||
|
||||
- name: commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: network
|
||||
notify: restart network
|
||||
|
||||
- name: Setup wireless devices (radios)
|
||||
uci:
|
||||
command: section
|
||||
config: wireless
|
||||
type: wifi-device
|
||||
find_by:
|
||||
path: "{{ item.path }}"
|
||||
value:
|
||||
band: "{{ item.band | default(wifi_device[item.template].band) | default() }}"
|
||||
channel: "{{ item.channel | default(wifi_device[item.template].channel) }}"
|
||||
country: "{{ item.country | default(wifi_device[item.template].country) }}"
|
||||
disabled: "{{ item.disabled | default(wifi_device[item.template].disabled) }}"
|
||||
hwmode: "{{ item.hwmode | default(wifi_device[item.template].hwmode) | default() }}"
|
||||
htmode: "{{ item.htmode | default(wifi_device[item.template].htmode) }}"
|
||||
loop: "{{ wireless['wifi_device'] }}"
|
||||
|
||||
- name: Setup wireless ifaces (VIFs)
|
||||
uci:
|
||||
command: section
|
||||
config: wireless
|
||||
type: wifi-iface
|
||||
find:
|
||||
ifname: "{{ item.ifname | default(wifi_iface[item.template].ifname) | default('') }}"
|
||||
value:
|
||||
ifname: "{{ item.ifname | default(wifi_iface[item.template].ifname) | default('') }}"
|
||||
mode: "{{ item.mode | default(wifi_iface[item.template].mode) }}"
|
||||
device: "{{ item.device | default(wifi_iface[item.template].device) }}"
|
||||
network: "{{ item.network | default(wifi_iface[item.template].network) }}"
|
||||
ssid: "{{ item.ssid | default(wifi_iface[item.template].ssid) | default() }}"
|
||||
mesh_id: "{{ item.mesh_id | default(wifi_iface[item.template].mesh_id) | default() }}"
|
||||
encryption: "{{ item.encryption | default(wifi_iface[item.template].encryption) }}"
|
||||
key: "{{ item.key | default(wifi_iface[item.template].key) }}"
|
||||
disabled: "{{ item.disabled | default(wifi_iface[item.template].disabled) | default(0) }}"
|
||||
skip_inactivity_poll: "{{ item.skip_inactivity_poll | default(wifi_iface[item.template].skip_inactivity_poll) | default() }}"
|
||||
disassoc_low_ack: "{{ item.disassoc_low_ack | default(wifi_iface[item.template].disassoc_low_ack) | default() }}"
|
||||
loop: "{{ wireless['wifi_iface'] }}"
|
||||
|
||||
- name: commit changes
|
||||
uci:
|
||||
command: commit
|
||||
key: wireless
|
||||
notify: reload wifi
|
||||
- config
|
||||
- netpkgconfig
|
||||
- netconfig
|
||||
|
||||
Reference in New Issue
Block a user