Compare commits

..

1 Commits

Author SHA1 Message Date
8a65696289 a test 2022-08-02 14:54:01 -04:00
12 changed files with 117 additions and 439 deletions

View File

@ -5,12 +5,12 @@ wifi_iface:
mode: 'ap'
encryption: 'psk2'
key: 'password'
skip_inactivity_poll: '1'
disassoc_low_ack: '0'
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
@ -31,8 +31,7 @@ wifi_iface:
ssid:
mode: 'mesh'
encryption: 'psk2+ccmp'
skip_inactivity_poll: 1
disassoc_low_ack:
skip_inactivity_poll:
labb: &labb_wifi_iface
<<: *default_wifi_iface
@ -46,10 +45,6 @@ wifi_iface:
3163343464646535370a636331383863653137646636343831643961633633333536393539643861
62326536343964333331653966663931313438333161626533393235373232626265
labbwpa3: &labb_wifi_iface_wpa3
<<: *labb_wifi_iface
encryption: 'sae'
labbmesh:
<<: *labb_wifi_iface
<<: *mesh_wifi_iface
@ -66,38 +61,12 @@ 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

View File

@ -1,48 +1,6 @@
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_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:
ap3825i1:
packages:
ath10k: *package_ath10k_mesh
wpad: *package_wpad_mesh
ap3825i2.lan:
network:
device:
- name: br-lan
@ -50,55 +8,11 @@ openwrt:
ports:
- eth0
- eth1
stp: 1
interface:
- key: lan
device: br-lan
proto: dhcp
wireless:
wifi_device:
- name: radio0
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
template: qca9880_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: labbmesh5
device: radio0
template: labbmesh
disabled: 0
- ifname: labb2
device: radio1
template: labb
ap3825i4:
packages:
ath10k: *package_ath10k_mesh
wpad: *package_wpad_mesh
network:
device:
- name: br-lan
type: bridge
ports:
- eth0
- eth1.7
stp: 1
- name: br-vgolan
type: bridge
ports:
- eth0.2
- eth1.2
stp: 1
interface:
- key: lan
@ -114,48 +28,32 @@ openwrt:
- name: radio0
path: ffe0a000.pcie/pcia000:02/a000:02:00.0/a000:03:00.0
template: qca9880_5
channel: 48
- name: radio1
path: ffe09000.pcie/pci9000:00/9000:00:00.0/9000:01:00.0
template: ath9k_2
channel: 6
wifi_iface:
- ifname: vgo2
device: radio1
template: vgo2
disabled: 0
- ifname: vgomesh2
device: radio1
template: vgomesh2
disabled: 0
disabled: 1
- ifname: vgo5
device: radio0
template: vgo5
disabled: 0
disabled: 1
# What if I added comments?
- ifname: labb2
device: radio1
template: labb
- ifname: labbmesh5
device: radio0
template: labbmesh
disabled: 0
- ifname: labb5
device: radio0
template: labb
- ifname: labbmesh2
device: radio1
template: labbmesh
disabled: 0
ap3825i3:
ap3825i3.lan:
network:
device:
- name: br-lan
@ -207,7 +105,7 @@ openwrt:
device: radio0
template: labb
mr16_4:
mr16_3.lan:
network:
device:
- name: br-lan
@ -216,29 +114,55 @@ openwrt:
- eth0
stp: 1
- name: br-vgolan
type: bridge
ports:
- eth0.2
interface:
- key: lan
device: br-lan
proto: dhcp
- key: vgolan
device: br-vgolan
proto: dhcp
wireless:
wifi_device:
- name: radio0
path: pci0000:00/0000:00:11.0
template: ath9k_2
hwmode:
band: 2g
hwmode: 11n
band:
channel: 6
disabled: 1
- name: radio1
path: pci0000:00/0000:00:12.0
template: ath9k_5
hwmode:
band: 5g
hwmode: 11n
band:
channel: 48
wifi_iface:
- ifname: vgo5
device: radio1
template: vgo5
disabled: 0
- ifname: vgomesh2
device: radio0
template: vgomesh2
disabled: 0
- ifname: labb2
device: radio0
template: labb
- ifname: labb5
device: radio1
template: labb
- ifname: labbmesh2
device: radio0
template: labbmesh
@ -247,119 +171,4 @@ openwrt:
device: radio1
template: labbmesh
ap3825i7:
packages:
ath10k: *package_ath10k_mesh
wpad: *package_wpad_mesh
network:
device:
- name: br-lan
type: bridge
ports:
- eth0.7
- eth1.7
- 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: labb2
device: radio0
template: labb
- ifname: labb5
device: radio1
template: labb
- ifname: vgo2
device: radio0
template: vgo2
- ifname: vgo5
device: radio1
template: vgo5
ap3825i6:
packages:
ath10k: *package_ath10k_mesh
wpad: *package_wpad_mesh
network:
device:
- name: br-lan
type: bridge
ports:
- eth1
stp: 1
- name: br-vgolan
type: bridge
ports:
- eth1.2
stp: 1
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: vgo2
device: radio1
template: vgo2
disabled: 0
- ifname: vgo5
device: radio0
template: vgo5
disabled: 0
- ifname: labb2
device: radio1
template: labb
- ifname: labb5
device: radio0
template: labb
# What if I added comments?

View File

@ -1,5 +0,0 @@
- name: Reload dropbear
service:
name: dropbear
state: reloaded
enabled: yes

View File

@ -1,2 +0,0 @@
dependencies:
- role: gekmihesg.openwrt

View File

@ -1,45 +0,0 @@
- 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: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_ed25519.pub') }}"
state: present
create: yes
mode: 644
- 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

View File

@ -1,8 +0,0 @@
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

View File

@ -1,2 +0,0 @@
dependencies:
- role: gekmihesg.openwrt

View File

@ -1,75 +0,0 @@
- 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 }}"
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() }}"
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

View File

@ -1,5 +0,0 @@
- name: Touch a file
command:
argv:
- touch
- /tmp/test_proof

View File

@ -1,2 +0,0 @@
dependencies:
- role: gekmihesg.openwrt

View File

@ -1,29 +0,0 @@
- 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([]) }}"

View File

@ -1,5 +1,78 @@
- hosts: openwrt
roles:
- config
- netpkgconfig
- netconfig
- 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