maxhoesel.nut_netclient

maxhoesel.nut_netclient

Version Statut CI Licence

Installez NUT et upsmon sur un système cible et configurez-le pour suivre un UPS distant sur le réseau en mode netclient.

Exigences

  • Un hôte exécutant l'une des distributions suivantes
    • Ubuntu 18.04 LTS ou plus récent
    • Debian 9 ou plus récent
  • Droits de superutilisateur sur l'hôte

Variables de rôle

REMARQUE : Voir ici pour plus d'informations sur les valeurs de upsmon.conf et leur but.

nut_netclient_monitors
  • Liste des systèmes UPS à surveiller
  • Doit être une liste d'entrées de moniteurs, chaque entrée étant un dictionnaire contenant les valeurs suivantes :
    • system: Le système à surveiller. Format : <upsname>[@<hostname>[:<port>]]
    • powervalue: Nombre de sources d'alimentation alimentant l'hôte. En général, 1
    • username: Nom de l'utilisateur moniteur distant
    • password: Mot de passe de l'utilisateur moniteur distant
    • type: Type de relation UPS, soit maître soit esclave
  • Exemple :
    nut_netclient_monitors:
        - system: "[email protected]"
          powervalue: 1
          username: monitor
          password: un-mot-de-passe-sécurisé
          type: esclave
        - system: "[email protected]"
          powervalue: 1
          username: monitor
          password: un-autre-mot-de-passe
          type: esclave
    
  • Requis : oui
  • Par défaut : indéfini
nut_netclient_notifymsg_<type>
  • Définir un message de notification personnalisé pour un type de message donné
  • Les types valides peuvent être trouvés dans le manuel upsmon (section NOTIFYMSG)
  • Exemple :
    nut_netclient_notifymsg_online: UPS %s est de nouveau en ligne
    nut_netclient_notifymsg_lowbatt: UPS %s est maintenant sur batterie faible
    
nut_netclient_notifyflag_<type>
  • Définir des indicateurs de notification pour des types d'événements individuels
  • Les types et indicateurs valides peuvent être trouvés dans le manuel upsmon
  • Exemple :
    nut_netclient_notifyflag_online: SYSLOG
    nut_netclient_notifyflag_lowbatt: SYSLOG+WALL+EXEC
    

Préfixe pour toutes les variables ci-dessous : nut_netclient_

Nom Résumé Requis Par défaut
deadtime Temps avant que l'UPS ne soit déclaré "mort" en secondes 15
finaldelay Temps entre l'avertissement de fermeture finale et la commande en s 5
hostsync Délai entre le maître et les esclaves dans les situations d'arrêt en s 15
minsupplies Nombre minimum de sources nécessaires pour continuer à fonctionner 1
nocommwarntime Intervalle entre les avertissements d'erreur de communication en s 300
notifycmd Exécutez cette commande pour envoyer des messages indéfini
pollfreq Temps entre les sondages de l'UPS en s 5
pollfreqalert Temps entre les sondages de l'UPS lorsqu'il fonctionne sur batterie en s 5
powerdownflag Fichier d'indicateur que upsmon crée pendant l'arrêt /etc/killpower
rbwarntime Intervalle pour envoyer des messages de remplacement de batterie en s 43200
run_as_user Exécutez le moniteur en tant qu'utilisateur différent indéfini
shutdowncmd Commande à exécuter lors de l'arrêt du système. Doit être entre guillemets si elle contient des espaces "/sbin/shutdown -h +0"
certpath Chemin vers un fichier ou une DB de cert indéfini
certident Identité du certificat à récupérer (si utilisation de NSS) indéfini
certhost Directives d'hôte (si utilisation de NSS) indéfini
certverify Si l'on doit valider les certificats SSL. Doit être soit 0 ou 1 indéfini
forcessl Si l'on doit forcer les connexions SSL. Doit être soit 0 ou 1 indéfini

Exemple de Playbook

- hosts: all
  become: yes
  tasks:
    - name: Exécuter nut_netclient
      include_role:
        name: maxhoesel.nut_netclient
      vars:
        nut_netclient_monitors:
          - system: "[email protected]"
            powervalue: 1
            username: monitor
            password: un-mot-de-passe-sécurisé
            type: esclave

Tests

Ce rôle utilise tox et molecule pour les tests. Vous aurez besoin des éléments suivants installés sur votre système :

  • python3-tox
  • Docker

Ensuite, il suffit d'exécuter test.sh dans le répertoire racine de ce rôle. Vous pouvez consulter et exécuter des tests individuels avec tox -l.

À propos du projet

Install and configure NUT to act as a netclient slave

Installer
ansible-galaxy install maxhoesel.nut_netclient
Licence
gpl-3.0
Téléchargements
11.9k
Propriétaire
Junior Automation and Infrastructure Engineer, Bachelor in CompSci. I write Ansible content and DevOps-related tools, mostly in Rust