PowerChute Network ShutdownでHPE VM Essentials環境を安全にシャットダウンする手順を記載します。
PowerChuteでスクリプトを実行すると、シャットダウンシーケンス開始時にVME Managerが利用可能かどうかを確認します。
VME Managerを利用できる場合は、Morpheus APIを使用して仮想マシンをシャットダウンし、
利用できない場合はSSH経由で各VMEホストに接続し、virshコマンドを使用して仮想マシンをシャットダウンします。
スクリプトの最後のステップでVMEホストをSSH経由でシャットダウンします。
スクリプトは本番環境に適用する前に必ずお客様ご自身の環境でテストしてください。
【ライセンス数のカウント方法】
ホストの台数分のライセンスが必要です。
【対象製品】
PowerChute Network Shutdown v5.2
【構成例】
1. PowerChute Network Shutdown for Linuxのインストール
PowerChuteはVMEクラスターで実行されている任意のLinux VMにインストールします。
PowerChute Network Shutdown for Linuxインストーラーを解凍して実行します。
詳細は各種マニュアルのインストールガイドを参照してください。
インストールが完了したらPowerChute Network Shutdownを起動し、
セットアップウィザードの手順に従って設定します。
詳細は各種マニュアルのユーザーズガイドを参照してください。
2. シャットダウンスクリプトで使用するSSHキーペアの生成
VMEホストへの接続に使用するSSHキーペアの作成手順を記載します。
- PowerChuteをインストールしているマシン上で次のコマンドを実行します。
ssh-keygen -t rsa -b 4096 - キーファイルを格納するパスを入力します。
- パスフレーズは空白のままにします。
キーペアは指定したパスに保存されます。
4. 公開鍵 pcns_key.pub をVMEホストにコピーします。(ssh-copy-idコマンドを使用)
ssh-copy-id -i <公開鍵ファイルへのパス> root@<VMEホストのIPアドレス>
VMEホストごとにこれを繰り返します。
秘密鍵ファイルを/opt/APC/PowerChute/user_filesフォルダにコピーします。
次のコマンドを使用してSSH接続をテストします。
ssh -i /opt/APC/PowerChute/user_files/<private_key_file> root@<vme_host_ip_address>
パスワードを入力することなく自動的にログインできることを確認してください。
3. シャットダウンスクリプト実行の設定
シャットダウンスクリプトが入っている.tar.gzファイルを展開して、
/opt/APC/PowerChute/user_files フォルダにコピーします。
- コマンド chmod +x <script_filename>を使用して、
morpheus_operations.py ファイルとvme_shutdown.sh ファイルに実行権限を付与します。 - スクリプトで使用する API トークンを生成します。
詳細はUser Settings - Morpheus Docs documentationを参照してください。
API トークン文字列は、Base64でエンコードされた文字列に変換する必要があります。
これをPowerShellで行うには次のようにします:
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('<APIトークン’))
これをLinuxマシンで行うには次のようにします:
echo -n <APIトークン> | base64 - config.iniファイルを開き、実行環境に必要な情報を入力します。
[morpheus]
host = <VME Manager の IP アドレス>
token = <Base64でエンコードされたAPI トークン>
vme_hosts = <VMEホスト1のIPアドレス>,<VMEホスト2のIPアドレス>
keyfile = /opt/APC/PowerChute/user_files/<private_keyfile_name>
[site]
site_cluster = < CLUSTER NAME >
# インスタンス名をカンマで区切る
skip_shutdown_vms = <PCNS VMの名前>
(注) スクリプトはPowerChuteを実行しているVMが
PCNS または pcns (PCNS-LINUX、pcnsvm)という名前で始まることを前提としています。
[general]
timeout = 120(すべての仮想マシンとVMEホストのシャットダウンに必要な時間)
autostart_vms = true (電源が復旧したときに仮想マシンを起動する設定)
startup_vms = <VM Name 1>,<VM Name 2>
(または、ここで起動する VM の名前を追加し、startup_vms.shスクリプトを使用することもできます。下記の手順5参照)
- PowerChute画面を開き構成タブの[シャットダウン設定]でシャットダウンコマンドファイルの設定を行います。
・コマンドファイルのフルパス :
実行するコマンドファイルをディスクドライブおよびボリューム名を含めたフルパス名で入力
・ 所要時間 :
シャットダウンスクリプトがすべての仮想マシンをシャットダウンし、その後にVMEホストをシャットダウンするために必要な時間を秒数で入力
5. startup_vms.sh スクリプトを使用する場合は、ターミナルでディレクトリを
/opt/APC/PowerChute/group1 に変更します。
VIコマンドを使用してファイルpcnsconfig.iniを編集し、[イベント]セクションまでスクロールして、
監視開始イベントのコマンドファイルアクションを有効にします。
APIトークンを権限のないユーザーに読み取られないようにするには、
/opt/APC/PowerChute/user_filesディレクトリのアクセス権を設定し、rootユーザーのみがアクセスできるようにすることをおすすめします。
この設定はrootユーザーで以下のコマンドを実行することで行えます。
chmod 700 /opt/APC/PowerChute/user_files
4. Morpheus APIトークンの更新
スクリプトで使用するMorpheus APIトークンは、一定期間更新しないと期限切れになります。
トークンを更新するにはAPI Access | HPE Morpheus VM Essentials Software Documentation v8.0.9の手順に従ってください。
新しいトークンが生成されたらそれをコピーしてpowershellで文字列をBase64 に変換し、pcnsconfig.iniで値を更新します。
以上です。