kazeno memo

メモとか

停電時 CyberPower UPSの管理ツールから Proxmoxノード(ホスト)をシャットダウンさせる

CyberPowerはUPSの管理ツールを無料で配布してるから、apcupsdとかNUTは使わない。

Linuxで動く管理ツールは次の二種類。

  • PowerPanel Business
  • PowerPanel Linux(簡易版)

BusinessはWebのコントロールパネルから操作できるので良いなと思ったけど、VMの中からProxmox(ホストOS)をシャットダウン出来ないっぽいのでPowerPanel Linux(簡易版)を使う。

PowerPanel Linuxの中身はpwrstatというコマンドとpwrstatdというデーモン。

インストール

公式ではDebian系(.deb)とRHEL系(.rpm)、汎用の.tarが配布されている。

.tarに入ってるinstall.shはArchLinuxだと上手く動かなかった。(rc.dにファイル置こうとしてたよう)

探してみるとArchWikiに書いてあった。AURでpowerpanelという名前でパッケージが配布されてる。

$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/powerpanel.tar.gz
$ tar xzf powerpanel.tar.gz
$ cd powerpanel/
$ makepkg -si

インストールが終わったらsystemdのサービスを動かす。

# systemctl enable pwrstatd
# systemctl start pwrstatd

pwrstatdを動かすとUPSからピッってビープ音がなります。

設定

詳しくはArchWIKIと設定ファイル見て下さい。

とりあえずhibernateとメール通知をoffにしました。

Proxmoxをシャットダウン

pwrstatdはシャットダウン条件が揃った時/etc/powerpanel/shutdown.shを実行するみたいです。

中身はsystemctl poweroff

Proxmoxへpoweroffコマンドを送る方法ですが、無難にsshすることにしました。

sshするときにパスワードを要求されると困るのでPublic keyの設定をする。(pwrstatdはRootで動いているので/root/.sshで作業する)

# mkdir /root/.ssh
# ssh-keygen -t ed25519 -C ""

/root/.ssh/config

Host pve
  HostName 10.11.12.13  //ProxmoxのIP
  User root
  IdentityFile /root/.ssh/id_ed25519

これでssh pveと打つだけでProxmoxにSSH接続できるように。一度接続してFingerprintの確認を済ませておく。

先程のshutdown.shをいじる

#!/bin/bash
# systemctl poweroff

ssh pve "poweroff"

これでshutdown.shが実行されProxmoxがシャットダウンされる。