maxhoesel.nut_netclient
maxhoesel.nut_netclient
Instalar NUT y upsmon en un sistema destino y configurarlo para seguir un UPS remoto a través de la red utilizando el modo netclient.
Requerimientos
- Un host que ejecute una de las siguientes distribuciones
- Ubuntu 18.04 LTS o más reciente
- Debian 9 o más reciente
- Privilegios de superusuario en el host
Variables del Rol
NOTA: Consulta aquí para más información sobre los valores de upsmon.conf y su propósito.
nut_netclient_monitors
- Lista de sistemas UPS a monitorear
- Debe ser una lista de entradas de monitoreo, donde cada entrada es un diccionario que contiene los siguientes valores:
system
: El sistema a monitorear. Formato:<upsname>[@<hostname>[:<puerto>]]
powervalue
: Número de fuentes de alimentación que este sistema proporciona al host. Generalmente 1.username
: Nombre del usuario del monitor remoto.password
: Contraseña del usuario del monitor remoto.type
: Tipo de relación UPS, ya seamaster
oslave
.
- Ejemplo:
nut_netclient_monitors: - system: "[email protected]" powervalue: 1 username: monitor password: a-secure-password type: slave - system: "[email protected]" powervalue: 1 username: monitor password: a-different-password type: slave
- Requerido: sí
- Predeterminado:
indefinido
nut_netclient_notifymsg_<type>
- Establecer un mensaje de notificación personalizado para un tipo de mensaje dado.
- Los tipos válidos se pueden encontrar en el manual de upsmon (sección NOTIFYMSG).
- Ejemplo:
nut_netclient_notifymsg_online: UPS %s está de nuevo en línea nut_netclient_notifymsg_lowbatt: UPS %s ahora tiene baja batería
nut_netclient_notifyflag_<type>
- Establecer banderas de notificación para tipos de eventos individuales.
- Los tipos y banderas válidos se pueden encontrar en el manual de upsmon.
- Ejemplo:
nut_netclient_notifyflag_online: SYSLOG nut_netclient_notifyflag_lowbatt: SYSLOG+WALL+EXEC
Prefijo para todas las variables a continuación: nut_netclient_
Nombre | Resumen | Requerido | Predeterminado |
---|---|---|---|
deadtime |
Tiempo antes de que el UPS sea declarado "muerto" en segundos | 15 | |
finaldelay |
Tiempo entre la advertencia de apagado final y el comando en s | 5 | |
hostsync |
Tiempo de espera entre maestro y esclavos en situaciones de apagado en s | 15 | |
minsupplies |
Cantidad mínima de suministros necesarios para seguir funcionando | 1 | |
nocommwarntime |
Intervalo entre advertencias de error de comunicación en s | 300 | |
notifycmd |
Llamar este comando para enviar mensajes | indefinido |
|
pollfreq |
Tiempo entre encuestas de UPS en s | 5 | |
pollfreqalert |
Tiempo entre encuestas de UPS cuando está en batería en s | 5 | |
powerdownflag |
Archivo de bandera que upsmon crea durante el apagado | /etc/killpower |
|
rbwarntime |
Intervalo para enviar mensajes de reemplazo de batería en s | 43200 | |
run_as_user |
Ejecutar el monitor como un usuario diferente | indefinido |
|
shutdowncmd |
Comando a ejecutar al apagar el sistema. Debe estar entre comillas si contiene espacios | "/sbin/shutdown -h +0" |
|
certpath |
Ruta a un archivo o base de datos de certificado | indefinido |
|
certident |
Identificador de certificado para recuperar (si se usa NSS) | indefinido |
|
certhost |
Directivas de host (si se usa NSS) | indefinido |
|
certverify |
Si validar certificados SSL. Debe ser 0 o 1 | indefinido |
|
forcessl |
Si forzar conexiones SSL. Debe ser 0 o 1 | indefinido |
Ejemplo de Playbook
- hosts: all
become: yes
tasks:
- name: Ejecutar nut_netclient
include_role:
name: maxhoesel.nut_netclient
vars:
nut_netclient_monitors:
- system: "[email protected]"
powervalue: 1
username: monitor
password: a-secure-password
type: slave
Pruebas
Este rol utiliza tox y molecule para pruebas. Necesitarás tener instalados los siguientes componentes en tu sistema:
- python3-tox
- Docker
Luego, simplemente ejecuta test.sh
en el directorio raíz de este rol. Puedes ver y ejecutar pruebas individuales con tox -l
.
Instalar
ansible-galaxy install maxhoesel.nut_netclient
Licencia
gpl-3.0
Descargas
11.9k
Propietario
Junior Automation and Infrastructure Engineer, Bachelor in CompSci. I write Ansible content and DevOps-related tools, mostly in Rust