r/nut: Add role for Network UPS Tools

The *nut* role installs and configures Network UPS Tools.
ntfy
Dustin 2021-10-31 14:25:59 -05:00
parent 19330ac555
commit 4beade5465
6 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,5 @@
nut_users: []
nut_listen:
address: '::'
port: 3493
nut_ups: []

View File

@ -0,0 +1,4 @@
- name: restart nut
service:
name: nut-server
state: restarted

62
roles/nut/tasks/main.yml Normal file
View File

@ -0,0 +1,62 @@
- name: ensure nut is installed
package:
name: nut
state: present
tags:
- install
- name: ensure upsd is configured
template:
src: upsd.conf.j2
dest: /etc/ups/upsd.conf
owner: root
group: nut
mode: 'o=rw,g=r,o='
notify:
- restart nut
tags:
- nut-config
- name: ensure ups is configured
template:
src: ups.conf.j2
dest: /etc/ups/ups.conf
owner: root
group: nut
mode: 'o=rw,g=r,o='
notify:
- restart nut
tags:
- nut-config
- name: ensure upsd users are configured
template:
src: upsd.users.j2
dest: /etc/ups/upsd.users
owner: root
group: nut
mode: 'o=rw,g=r,o='
notify:
- restart nut
tags:
- nut-users
- name: ensure nut starts at boot
service:
name: nut-server
enabled: true
tags:
- service
- name: ensure nut is running
service:
name: nut-server
state: started
tags:
- service
- name: ensure firewall is configured for nut
firewalld:
port: '{{ nut_listen.port }}/tcp'
state: enabled
immediate: true
permanent: true
tags:
- firewalld

View File

@ -0,0 +1,8 @@
{% for name, settings in nut_ups.items() %}
[{{ name }}]
{% for setting in settings %}
{% for key, value in setting|dictsort %}
{{ key }} = "{{ value }}"
{% endfor %}
{% endfor %}
{% endfor %}

View File

@ -0,0 +1 @@
LISTEN {{ nut_listen.address }} {{ nut_listen.port }}

View File

@ -0,0 +1,8 @@
{% for username, settings in nut_users.items() %}
[{{ username }}]
{% for setting in settings %}
{% for key, value in setting|dictsort %}
{{ key }} = {{ value }}
{% endfor %}
{% endfor %}
{% endfor %}