From b33323178af73c0e50b39cbbd5128bc5fbcbad35 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 17 May 2024 02:33:12 +0200 Subject: add cm4 based sensor nodes (base install) --- inventory/group_vars/chaos-at-home/network.yml | 2 + inventory/host_vars/ch-cm4-sensors0.yml | 36 ++++++++++++++++ inventory/host_vars/ch-cm4-sensors1.yml | 36 ++++++++++++++++ inventory/host_vars/ch-cm4-test.yml | 50 +++++++++++++--------- inventory/hosts.ini | 4 ++ .../raspios/image/templates/firstrun.sh.j2 | 14 ++++++ 6 files changed, 121 insertions(+), 21 deletions(-) create mode 100644 inventory/host_vars/ch-cm4-sensors0.yml create mode 100644 inventory/host_vars/ch-cm4-sensors1.yml diff --git a/inventory/group_vars/chaos-at-home/network.yml b/inventory/group_vars/chaos-at-home/network.yml index 2db3ab37..1108ebb1 100644 --- a/inventory/group_vars/chaos-at-home/network.yml +++ b/inventory/group_vars/chaos-at-home/network.yml @@ -96,6 +96,8 @@ network_zones: ch-gw-c3voc: 73 __svc_http__: 80 __svc_imap__: 143 + ch-cm4-sensors0: 200 + ch-cm4-sensors1: 201 ch-mon: 230 ch-greenbone: 231 ch-router-obsd: 253 diff --git a/inventory/host_vars/ch-cm4-sensors0.yml b/inventory/host_vars/ch-cm4-sensors0.yml new file mode 100644 index 00000000..f59eceb6 --- /dev/null +++ b/inventory/host_vars/ch-cm4-sensors0.yml @@ -0,0 +1,36 @@ +--- +raspios_variant: lite +raspios_arch: arm64 + +network: + nameservers: "{{ network_zones.svc.dns }}" + domain: "{{ host_domain }}" + primary: &_network_primary_ + name: eth0 + address: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets[inventory_hostname]) }}" + gateway: "{{ network_zones.svc.gateway }}" + static_routes: + - destination: "{{ network_zones.lan.prefix }}" + gateway: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets['ch-gw-lan']) | ansible.utils.ipaddr('address') }}" + interfaces: + - *_network_primary_ + +raspios_boot_config: + - regexp: '^#?otg_mode=1' + line: '#otg_mode=1' + - regexp: '^#?dtparam=i2c_vc' + line: 'dtparam=i2c_vc=on' + - regexp: '^#?dtoverlay=i2c-rtc' + line: 'dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi' + - regexp: '^#?dtoverlay=disable-bt' + line: 'dtoverlay=disable-bt' + - regexp: '^#?dtoverlay=disable-wifi' + line: 'dtoverlay=disable-wifi' + - regexp: '^#?dtoverlay=dwc2' + line: 'dtoverlay=dwc2,dr_mode=host' + - regexp: '^#?dtoverlay=audremap' + line: 'dtoverlay=audremap,pins_18_19' + - regexp: '^#?dtoverlay=gpio-shutdown' + line: 'dtoverlay=gpio-shutdown,gpio_pin=4' + +base_entropy_generator: rngd diff --git a/inventory/host_vars/ch-cm4-sensors1.yml b/inventory/host_vars/ch-cm4-sensors1.yml new file mode 100644 index 00000000..f59eceb6 --- /dev/null +++ b/inventory/host_vars/ch-cm4-sensors1.yml @@ -0,0 +1,36 @@ +--- +raspios_variant: lite +raspios_arch: arm64 + +network: + nameservers: "{{ network_zones.svc.dns }}" + domain: "{{ host_domain }}" + primary: &_network_primary_ + name: eth0 + address: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets[inventory_hostname]) }}" + gateway: "{{ network_zones.svc.gateway }}" + static_routes: + - destination: "{{ network_zones.lan.prefix }}" + gateway: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets['ch-gw-lan']) | ansible.utils.ipaddr('address') }}" + interfaces: + - *_network_primary_ + +raspios_boot_config: + - regexp: '^#?otg_mode=1' + line: '#otg_mode=1' + - regexp: '^#?dtparam=i2c_vc' + line: 'dtparam=i2c_vc=on' + - regexp: '^#?dtoverlay=i2c-rtc' + line: 'dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi' + - regexp: '^#?dtoverlay=disable-bt' + line: 'dtoverlay=disable-bt' + - regexp: '^#?dtoverlay=disable-wifi' + line: 'dtoverlay=disable-wifi' + - regexp: '^#?dtoverlay=dwc2' + line: 'dtoverlay=dwc2,dr_mode=host' + - regexp: '^#?dtoverlay=audremap' + line: 'dtoverlay=audremap,pins_18_19' + - regexp: '^#?dtoverlay=gpio-shutdown' + line: 'dtoverlay=gpio-shutdown,gpio_pin=4' + +base_entropy_generator: rngd diff --git a/inventory/host_vars/ch-cm4-test.yml b/inventory/host_vars/ch-cm4-test.yml index bc6f812c..030267d2 100644 --- a/inventory/host_vars/ch-cm4-test.yml +++ b/inventory/host_vars/ch-cm4-test.yml @@ -23,37 +23,45 @@ network: # - regexp: '^#?dtoverlay=disable-wifi' # line: 'dtoverlay=disable-wifi' -# ## Waveshare CM4-DUAL-ETH-BASE -# raspios_boot_config: -# - regexp: '^#?dtparam=i2c_vc' -# line: 'dtparam=i2c_vc=on' -# - regexp: '^#?dtoverlay=i2c-rtc' -# line: 'dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi' -# - regexp: '^#?dtoverlay=i2c-fan' -# line: 'dtoverlay=i2c-fan,emc2301,i2c_csi_dsi' -# - regexp: '^#?dtoverlay=disable-bt' -# line: 'dtoverlay=disable-bt' -# - regexp: '^#?dtoverlay=disable-wifi' -# line: 'dtoverlay=disable-wifi' - -## TuringPi v2.4 -#raspios_boot_config: -# - regexp: '^#?dtoverlay=disable-bt' -# line: 'dtoverlay=disable-bt' -# - regexp: '^#?dtoverlay=disable-wifi' -# line: 'dtoverlay=disable-wifi' - -## Cytron CM4 Maker Board +## Waveshare CM4-DUAL-ETH-BASE raspios_boot_config: - regexp: '^#?dtparam=i2c_vc' line: 'dtparam=i2c_vc=on' - regexp: '^#?dtoverlay=i2c-rtc' line: 'dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi' + - regexp: '^#?dtoverlay=i2c-fan' + line: 'dtoverlay=i2c-fan,emc2301,i2c_csi_dsi' - regexp: '^#?dtoverlay=disable-bt' line: 'dtoverlay=disable-bt' - regexp: '^#?dtoverlay=disable-wifi' line: 'dtoverlay=disable-wifi' +# ## TuringPi v2.4 +# raspios_boot_config: +# - regexp: '^#?dtoverlay=disable-bt' +# line: 'dtoverlay=disable-bt' +# - regexp: '^#?dtoverlay=disable-wifi' +# line: 'dtoverlay=disable-wifi' + +# ## Cytron CM4 Maker Board +# raspios_boot_config: +# - regexp: '^#?otg_mode=1' +# line: '#otg_mode=1' +# - regexp: '^#?dtparam=i2c_vc' +# line: 'dtparam=i2c_vc=on' +# - regexp: '^#?dtoverlay=i2c-rtc' +# line: 'dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi' +# - regexp: '^#?dtoverlay=disable-bt' +# line: 'dtoverlay=disable-bt' +# - regexp: '^#?dtoverlay=disable-wifi' +# line: 'dtoverlay=disable-wifi' +# - regexp: '^#?dtoverlay=dwc2' +# line: 'dtoverlay=dwc2,dr_mode=host' +# - regexp: '^#?dtoverlay=audremap' +# line: 'dtoverlay=audremap,pins_18_19' +# - regexp: '^#?dtoverlay=gpio-shutdown' +# line: 'dtoverlay=gpio-shutdown,gpio_pin=4' + base_entropy_generator: rngd diff --git a/inventory/hosts.ini b/inventory/hosts.ini index dc29d600..4ab98ab6 100644 --- a/inventory/hosts.ini +++ b/inventory/hosts.ini @@ -37,6 +37,8 @@ ch-vpn host_name=vpn ch-mon host_name=mon ch-greenbone host_name=greenbone ch-epimetheus host_name=epimetheus +ch-cm4-sensors0 host_name=cm4-sensors0 +ch-cm4-sensors1 host_name=cm4-sensors1 ch-mclr host_name=mclr ch-mcbr host_name=mcbr ch-octopi host_name=octopi @@ -340,6 +342,8 @@ ch-octopi ch-epimetheus ch-companion-raspi ch-rpi5-test +ch-cm4-sensors0 +ch-cm4-sensors1 ele-stage-raspi ele-companion-raspi [raspios:children] diff --git a/roles/installer/raspios/image/templates/firstrun.sh.j2 b/roles/installer/raspios/image/templates/firstrun.sh.j2 index 318b17dd..96c74b39 100644 --- a/roles/installer/raspios/image/templates/firstrun.sh.j2 +++ b/roles/installer/raspios/image/templates/firstrun.sh.j2 @@ -52,7 +52,21 @@ iface {{ network.primary.name }} inet static up echo 0 > /proc/sys/net/ipv6/conf/\$IFACE/autoconf address {{ network.primary.address | ansible.utils.ipaddr('address') }} netmask {{ network.primary.address | ansible.utils.ipaddr('netmask') }} +{% if 'gateway' in network.primary %} gateway {{ network.primary.gateway }} +{% endif %} +{% for address in network.primary.additional_addresses | default([]) %} + up /bin/ip addr add dev $IFACE {{ address }}/32 +{% endfor %} +{% for route in network.primary.static_routes | default([]) %} + up /bin/ip route add {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}{{ '' }} +{% endfor %} +{% for route in network.primary.static_routes | default([]) | reverse %} + down /bin/ip route del {{ route.destination }} via {{ route.gateway }}{% if 'source' in route %} src {{ route.source }}{% endif %}{{ '' }} +{% endfor %} +{% for address in network.primary.additional_addresses | default([]) | reverse %} + down /bin/ip addr del dev $IFACE {{ address }}/32 +{% endfor %} {% endif %} {% if 'wifi' in network.primary %} wpa-ssid {{ network.primary.wifi.ssid }} -- cgit v1.2.3