--- sensornode_network_wired: no install_playbook: openwrt openwrt_variant: openwrt openwrt_release: 21.02.0 openwrt_arch: ramips openwrt_target: mt76x8 openwrt_profile: onion_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-i2c-mux-pca954x - kmod-iio-bmp280-i2c - kmod-iio-am2315 - kmod-hwmon-ads1015 - kmod-hwmon-mcp3021 - kmod-w1-master-ds2482 - kmod-w1-slave-therm - 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 - iio-utils - 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" # TODO: add script to initialize i2c devices ## I2C Bus init examples: ## * add 8ch mux: echo "pca9548 0x70" > /sys/bus/i2c/devices/i2c-0/new_device ## * add DS2482: echo "ds2482 0x18" > /sys/bus/i2c/devices/i2c-0/new_device ## * add ADS1115: echo "ads1115 0x48" > /sys/bus/i2c/devices/i2c-0/new_device ## * add BME280: echo "bme280 0x76" > /sys/bus/i2c/devices/i2c-1/new_device ## * add AM2315: echo "am2315 0x5c" > /sys/bus/i2c/devices/i2c-1/new_device ## * add MCP3221: echo "mcp3221 0x77" > /sys/bus/i2c/devices/i2c-2/new_device # TODO: add collector for prometheus to export i2c-sensor data 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: - '{{ network_zones.iot.prefix | ipaddr(network_zones.iot.offsets["ch-iot"]) | ipaddr("address") }}' dropbear: - name: dropbear options: PasswordAuth: 'off' RootPasswordAuth: 'off' Port: '{{ ansible_port }}' prometheus-node-exporter-lua: - name: prometheus-node-exporter-lua 'main' options: listen_interface: 'iot' listen_ipv6: '0' listen_port: '9100' 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: device: lo proto: static ipaddr: 127.0.0.1 netmask: 255.0.0.0 - name: interface 'iot' options: device: "{{ 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: device: "{{ 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 }}' prometheus_scrape_endpoint: "{{ network_zones.iot.prefix | ipaddr(network_zones.iot.offsets[inventory_hostname]) | ipaddr('address') }}:9100" prometheus_exporters_default: - openwrt