summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-08-22 22:49:18 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-08-22 22:49:18 +0200
commite115d41b23a45b0fe4b6b661e041e2a3ae5a40cd (patch)
tree806b02bd5cd383a8c53cfd3b30525b7372296add
parentupdate accesspoint openwrt version (diff)
initial support for new iot sensor nodes
-rw-r--r--inventory/group_vars/chaos-at-home-sensors/vars.yml122
-rw-r--r--inventory/group_vars/chaos-at-home/network.yml3
-rw-r--r--inventory/host_vars/ch-sensors1.yml2
-rw-r--r--inventory/hosts.ini6
4 files changed, 133 insertions, 0 deletions
diff --git a/inventory/group_vars/chaos-at-home-sensors/vars.yml b/inventory/group_vars/chaos-at-home-sensors/vars.yml
new file mode 100644
index 00000000..c725c053
--- /dev/null
+++ b/inventory/group_vars/chaos-at-home-sensors/vars.yml
@@ -0,0 +1,122 @@
+---
+sensornode_network_wired: no
+
+install_playbook: openwrt
+
+openwrt_variant: openwrt
+openwrt_release: 19.07.8
+openwrt_arch: ramips
+openwrt_target: mt76x8
+openwrt_profile: omega2p
+openwrt_output_image_suffixes:
+ - "{{ openwrt_profile }}-squashfs-sysupgrade.bin"
+
+openwrt_packages_remove:
+ - ppp
+ - ppp-mod-pppoe
+ - firewall
+ - dnsmasq
+ - odhcpd-ipv6only
+openwrt_packages_add:
+ - kmod-i2c-mt7628
+ - kmod-iio-bmp280-i2c
+ - kmod-usb-storage
+ - kmod-usb-storage-extras
+ - kmod-fs-vfat
+ - kmod-fs-exfat
+ - kmod-fs-ext4
+ - haveged
+ - htop
+ - ip
+ - less
+ - nano
+ - tcpdump-mini
+ - iperf
+ - iperf3
+ - mtr
+ - iptraf-ng
+ - usbutils
+ - i2c-tools
+ - prometheus-node-exporter-lua
+ - prometheus-node-exporter-lua-netstat
+ - prometheus-node-exporter-lua-openwrt
+ - prometheus-node-exporter-lua-wifi
+
+
+openwrt_mixin:
+ /etc/dropbear/authorized_keys:
+ content: "{{ ssh_keys_root | join('\n') }}\n"
+
+ /etc/htoprc:
+ file: "{{ global_files_dir }}/common/htoprc"
+
+
+openwrt_uci:
+ system:
+ - name: system
+ options:
+ hostname: '{{ host_name }}'
+ timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
+ ttylogin: '0'
+ log_size: '64'
+ urandom_seed: '0'
+
+ - name: timeserver 'ntp'
+ options:
+ enabled: '1'
+ enable_server: '0'
+ server:
+ - '0.lede.pool.ntp.org'
+ - '1.lede.pool.ntp.org'
+ - '2.lede.pool.ntp.org'
+ - '3.lede.pool.ntp.org'
+
+ dropbear:
+ - name: dropbear
+ options:
+ PasswordAuth: 'off'
+ RootPasswordAuth: 'off'
+ Port: '{{ ansible_port }}'
+
+ network:
+ - name: globals 'globals'
+ options:
+ ula_prefix: "fc{{ '%02x:%04x:%04x' | format((255 | random(seed=inventory_hostname + '0')), (65535 | random(seed=inventory_hostname + '1')), (65535 | random(seed=inventory_hostname + '2'))) }}::/48"
+
+ - name: interface 'loopback'
+ options:
+ ifname: lo
+ proto: static
+ ipaddr: 127.0.0.1
+ netmask: 255.0.0.0
+
+ - name: interface 'iot'
+ options:
+ ifname: "{{ sensornode_network_wired | ternary('eth0', 'wlan0') }}"
+ proto: static
+ ipaddr: "{{ network_zones.iot.prefix | ipaddr(network_zones.iot.offsets[inventory_hostname]) | ipaddr('address') }}"
+ netmask: "{{ network_zones.iot.prefix | ipaddr('netmask') }}"
+
+ - name: interface 'unused'
+ options:
+ ifname: "{{ sensornode_network_wired | ternary('wlan0', 'eth0') }}"
+ proto: none
+
+ wireless:
+ - name: wifi-device 'radio0'
+ options:
+ type: 'mac80211'
+ hwmode: '11g'
+ country: AT
+ path: "platform/10300000.wmac"
+ htmode: 'HT20'
+ disabled: "{{ sensornode_network_wired | ternary('1', '0') }}"
+
+ - name: wifi-iface
+ options:
+ device: 'radio0'
+ network: 'iot'
+ mode: 'sta'
+ ssid: '{{ network_zones.iot.wifi.ssid }}'
+ encryption: 'psk2'
+ key: '{{ network_zones.iot.wifi.key }}'
diff --git a/inventory/group_vars/chaos-at-home/network.yml b/inventory/group_vars/chaos-at-home/network.yml
index 305c1f93..c6102d7f 100644
--- a/inventory/group_vars/chaos-at-home/network.yml
+++ b/inventory/group_vars/chaos-at-home/network.yml
@@ -42,6 +42,9 @@ network_zones:
key: "{{ vault_wifi_keys.iot }}"
offsets:
ch-wled-test: 1
+ ch-sensors0: 10
+ ch-sensors1: 11
+ ch-sensors2: 12
ch-mon: 230
ch-iot: 254
diff --git a/inventory/host_vars/ch-sensors1.yml b/inventory/host_vars/ch-sensors1.yml
new file mode 100644
index 00000000..1fab589f
--- /dev/null
+++ b/inventory/host_vars/ch-sensors1.yml
@@ -0,0 +1,2 @@
+---
+sensornode_network_wired: yes
diff --git a/inventory/hosts.ini b/inventory/hosts.ini
index 1d684ac8..07b178f3 100644
--- a/inventory/hosts.ini
+++ b/inventory/hosts.ini
@@ -54,6 +54,7 @@ ch-alix1d
mz-chaos-at-home
chaos-at-home-switches
chaos-at-home-ap
+chaos-at-home-sensors
[mz-chaos-at-home]
mz-router ansible_host=chmz-router
@@ -71,6 +72,11 @@ ch-sw1 host_name=sw1 ansible_host=192.168.42.201
ch-ap0 host_name=ap0
ch-ap1 host_name=ap1
+[chaos-at-home-sensors]
+ch-sensors0 host_name=sensors0
+ch-sensors1 host_name=sensors1
+ch-sensors2 host_name=sensors2
+
[chaos-at-home-vpn-extern]
ch-router
ch-pan