maxhoesel.nut_netclient

maxhoesel.nut_netclient

Release CI Status License

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 sea master o slave.
  • 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.

Acerca del proyecto

Install and configure NUT to act as a netclient slave

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