maxhoesel.nut_netclient

maxhoesel.nut_netclient

Release CI Status License

NUTとupsmonをターゲットシステムにインストールし、ネットワーク上でリモートUPSをモニタリングするためにnetclientモードで設定します。

要件

  • 次のいずれかのディストリビューションを実行しているホスト
    • Ubuntu 18.04 LTS以上
    • Debian 9以上
  • ホスト上で特権を持つこと

ロール変数

注意: upsmon.confの値とその目的についての詳細はこちらを参照してください。

nut_netclient_monitors
  • 監視するUPSシステムのリスト
  • 各エントリが次の値を含む辞書である監視エントリのリストである必要があります:
    • system: 監視するシステム。形式: <upsname>[@<hostname>[:<port>]]
    • powervalue: このシステムがホストに供給する電源の数。通常は1
    • username: リモートモニタユーザーの名前
    • password: リモートモニタユーザーのパスワード
    • type: UPSの関係のタイプ、masterまたはslave
  • 例:
    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
    
  • 必須: はい
  • デフォルト: 未定義
nut_netclient_notifymsg_<type>
  • 特定のメッセージタイプにカスタム通知メッセージを設定します
  • 有効なタイプは、upsmonマニュアル(NOTIFYMSGセクション)で確認できます
  • 例:
    nut_netclient_notifymsg_online: UPS %s がオンラインに戻りました
    nut_netclient_notifymsg_lowbatt: UPS %s は低バッテリーです
    
nut_netclient_notifyflag_<type>
  • 各イベントタイプの通知フラグを設定します
  • 有効なタイプとフラグは、upsmonマニュアルで確認できます
  • 例:
    nut_netclient_notifyflag_online: SYSLOG
    nut_netclient_notifymsg_lowbatt: SYSLOG+WALL+EXEC
    

以下のすべての変数の接頭辞: nut_netclient_

名前 概要 必須 デフォルト
deadtime UPSが「死亡」と見なされるまでの時間(秒) 15
finaldelay 最終的なシャットダウン警告とコマンドの間の時間(秒) 5
hostsync シャットダウン時のマスターとスレーブの間のタイムアウト(秒) 15
minsupplies 動作を維持するのに必要な最小供給量 1
nocommwarntime 通信エラー警告の間隔(秒) 300
notifycmd メッセージを送信するためにこのコマンドを呼び出します 未定義
pollfreq UPSポーリング間の時間(秒) 5
pollfreqalert バッテリー電源使用時のUPSポーリング間の時間(秒) 5
powerdownflag upsmonがシャットオフ中に作成するフラグファイル /etc/killpower
rbwarntime バッテリー交換メッセージを送信する間隔(秒) 43200
run_as_user 異なるユーザーとしてモニタを実行します 未定義
shutdowncmd システムをシャットダウンする際に実行するコマンド。スペースを含む場合は引用符で囲む必要があります "/sbin/shutdown -h +0"
certpath 証明書ファイルまたはDBのパス 未定義
certident 取得する証明書の識別子(NSSを使用する場合) 未定義
certhost ホスト指示(NSSを使用する場合) 未定義
certverify SSL証明書を検証するかどうか。0または1のいずれかでなければなりません 未定義
forcessl SSL接続を強制するかどうか。0または1のいずれかでなければなりません 未定義

サンプルプレイブック

- hosts: all
  become: yes
  tasks:
    - name: 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

テスト

このロールは、テストにtoxとmoleculeを使用します。システムに以下をインストールしておく必要があります:

  • python3-tox
  • Docker

次に、このロールのルートディレクトリで test.shを実行します。個々のテストを表示したり実行したりするには、tox -lを使用できます。

プロジェクトについて

Install and configure NUT to act as a netclient slave

インストール
ansible-galaxy install maxhoesel.nut_netclient
ライセンス
gpl-3.0
ダウンロード
11.9k
所有者
Junior Automation and Infrastructure Engineer, Bachelor in CompSci. I write Ansible content and DevOps-related tools, mostly in Rust