From 9b3daae6502d019d33597fb7ad3766c3b0f4468b Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 28 Aug 2021 02:21:52 +0200 Subject: add generic group for ups monitoring --- inventory/group_vars/ups/vars.yml | 161 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 inventory/group_vars/ups/vars.yml (limited to 'inventory/group_vars/ups') diff --git a/inventory/group_vars/ups/vars.yml b/inventory/group_vars/ups/vars.yml new file mode 100644 index 00000000..c1b58dbc --- /dev/null +++ b/inventory/group_vars/ups/vars.yml @@ -0,0 +1,161 @@ +--- +ups_name: "ups" +ups_query_sources: [] + + +install_playbook: openwrt + +openwrt_variant: openwrt +openwrt_release: 19.07.7 +openwrt_arch: ramips +openwrt_target: mt7620 +openwrt_profile: ravpower_wd03 +openwrt_output_image_suffixes: + - "{{ openwrt_profile }}-squashfs-sysupgrade.bin" + +openwrt_packages_remove: + - ppp + - ppp-mod-pppoe + - dnsmasq + - firewall + - odhcpd + - odhcpd-ipv6only +openwrt_packages_add: + - haveged + - htop + - ip + - less + - nano + - tcpdump-mini + - usbutils + - kmod-usb-storage + - nut-server + - nut-driver-usbhid-ups + - nut-upsc + - nut-upscmd + - prometheus-node-exporter-lua + - prometheus-node-exporter-lua-nat_traffic + - prometheus-node-exporter-lua-netstat + - prometheus-node-exporter-lua-openwrt + + +openwrt_mixin: + /etc/dropbear/authorized_keys: + content: "{{ ssh_keys_root | join('\n') }}\n" + + /etc/htoprc: + file: "{{ global_files_dir }}/common/htoprc" + + /usr/bin/powercycle-ups: + mode: "0755" + content: | + #!/bin/sh + + UPS="{{ ups_name }}" + + upscmd -u admin -p secret "$UPS" load.off + sleep 5 + upscmd -u admin -p secret "$UPS" load.on + + /etc/rc.d/S22network-fw: + link: "../init.d/network-fw" + + /etc/rc.d/K92network-fw: + link: "../init.d/network-fw" + + /etc/init.d/network-fw: + mode: "0755" + content: | + #!/bin/sh /etc/rc.common + + START=22 + STOP=91 + + start() { + iptables -A INPUT -p tcp --dport 3493 -s 127.0.0.0/8 -j ACCEPT + {% for src in ups_query_sources %} + iptables -A INPUT -p tcp --dport 3493 -s {{ src }} -j ACCEPT + {% endfor %} + iptables -A INPUT -p tcp --dport 3493 -j DROP + } + + stop() { + iptables -D INPUT -p tcp --dport 3493 -j DROP + {% for src in ups_query_sources %} + iptables -D INPUT -p tcp --dport 3493 -s {{ src }} -j ACCEPT + {% endfor %} + iptables -D INPUT -p tcp --dport 3493 -s 127.0.0.0/8 -j ACCEPT + } + + +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 'mgmt' + options: + ifname: "eth0" + proto: static + ipaddr: "{{ network_mgmt_zone.prefix | ipaddr(network_mgmt_zone.offsets[inventory_hostname]) | ipaddr('address') }}" + netmask: "{{ network_mgmt_zone.prefix | ipaddr('netmask') }}" + accept_ra: 0 + + prometheus-node-exporter-lua: + - name: prometheus-node-exporter-lua 'main' + options: + listen_interface: 'mgmt' + listen_ipv6: '0' + listen_port: '9100' + + nut_server: + - name: listen_address + options: + address: 0.0.0.0 + + - name: "driver '{{ ups_name }}'" + options: + driver: usbhid-ups + port: auto + enable_usb_serial: 0 + + - name: user + options: + username: admin + password: secret + instcmd: + - ALL -- cgit v1.2.3