summaryrefslogtreecommitdiff
path: root/inventory/group_vars/ele-ups/main.yml
blob: 285e8ea91cf43a6b6a881b40d6e962aa9d4e545d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
network_mgmt_zone: "{{ network_zones.mgmt }}"

openwrt_variant: openwrt
openwrt_release: 19.07.1
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


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="{{ inventory_hostname | regex_replace('^ele-ups-(.*)$', '\1') }}"

      upscmd -u admin -p secret "$UPS" load.off
      sleep 5
      upscmd -u admin -p secret "$UPS" load.on


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

  nut_server:
    - name: "driver '{{ inventory_hostname | regex_replace('^ele-ups-(.*)$', '\\1') }}'"
      options:
        driver: usbhid-ups
        port: auto
        enable_usb_serial: 0

    - name: user
      options:
        username: admin
        password: secret
        instcmd:
          - ALL