ブログ内検索
Windows Hyper-V上にIPM2を仮想マシンとして稼働させた時、IPM2仮想マシンとホストのWindowsをシャットダウンする手順を解説します。
はじめに
IPM2の基本設定(IP設定、ライセンス適用、UPS検出など)は済んでいる前提で話が進みます。予めご了承ください。
単にWindows Hyper-Vをシャットダウンするだけなら、WindowsにIPPをインストールして、仮想マシンをHyper-Vの機能でシャットダウンさせることができます。
https://www.eaton-daitron.jp/techblog/5691.html
複数のUPSを一元管理したいなどIPM2の機能を利用する場合は、このブログの手順に従ってシャットダウンの設定を行ってください。
構成
Server
- Windows Server 2022 x1 (Hyper-V、OpenSSH サーバー、PowerShell)
- Eaton IPM 2.6.0 (VM) x1
UPS
- Eaton 5PX1000 UPS x1
- Eaton Network-M2 3.0.5 x1
シャットダウンの概要
1.UPSのシャットダウンは、Network-M2で設定します。
(本ブログでは、停電が60秒継続したらシャットダウンシーケンス開始、その300秒後にUPSをシャットダウンする設定)
2.IPM2仮想マシンのシャットダウンは、Hyper-Vの機能で設定します。
(本ブログでは、停電が60秒継続したらシャットダウンを開始する設定)
3.Windowsのシャットダウンは、Windows内にシャットダウンスクリプトを配置し、IPM2がWindowsにSSH接続してそのスクリプトを実行することで実現します。
※各タイマーはご使用の要件・環境に合わせて変更してください。本ブログはテスト環境のため短く設定しています。
UPSのシャットダウン設定
UPSのシャットダウンは、Network-M2で設定します。
最初に、シャットダウンシーケンスを開始する条件を設定します。
保護 > 停電時のシャットダウン
・バッテリー運転が60秒継続した時
次に、シャットダウンシーケンスが開始したら、300秒後にUPSをシャットダウンする設定をします。
保護 > エージェントはシーケンスをシャットダウンします
PRIMARYのOSシャットダウン時間(秒)のローカルに、300を入力します。
これで、停電(バッテリー運転)が60秒継続したら、その300秒後にUPSをシャットダウンする設定になりました。
仮想マシンのシャットダウン設定
IPM2仮想マシンのシャットダウンは、WindowsのHyper-V マネジャーで設定します。
<Hyper-V マネジャー>
仮想マシンの状態が「オフ」である必要があります。起動中であれば、シャットダウンします。
仮想マシンを右クリックで[設定]を押します
「自動停止アクション」と「自動開始アクション」を設定します。
自動停止アクションは[ゲストOSをシャットダウンする]を選択します。
自動起動アクションは[常にこの仮想マシンを自動的に起動する]を選択します。
Windows シャットダウン設定
ホストのWindowsのシャットダウンは、Windowsのローカルディスク(Cドライブ)にシャットダウンコマンドを記述したPowerShellスクリプトを配置して実現します。
シャットダウンコマンドは1行です。
shutdown /s /t 10
本ブログでは、C:\scripts\HyperV\ShutdwonHyperV.ps1 としてPowerShellスクリプトを配置しました。
※ このスクリプトをPowerShellで実行したら、仮想マシンおよびWindowsがシャットダウンすることを確認しておきます。
OpenSSH サーバーの有効化
IPM2仮想マシンがホストのWindowsにSSH接続できるように、OpenSSH サーバー機能を有効化します。
詳しくは、マイクロソフトの手順をご確認ください。
https://learn.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse
[設定] を開き、 [アプリ] > [アプリと機能] の順に選んで、 [オプション機能] を選択します。
OpenSSH サーバーをインストール済みの状態にします。
SSH接続確認
WindowsのOpenSSH サーバーを有効化したら、実際にIPM2仮想マシンからWindowsへSSH接続できることを確認します。
具体的には、IPM2のコンソール画面からコマンド(CLI)でWindowsへSSH接続してみます。
IPM2のコンソールにログインします。(アカウントはadmin、パスワードはIPM2にブラウザでログインするパスワード)
コマンドでWindowsにSSH接続します。
ssh -l {Windowsの管理者アカウント} {WindowsのIPアドレス}
Passwordを聞かれたら、Windowsの管理者アカウントのパスワードを入力してログインします。
下記コマンドでWindowsのローカルディスクに配置したPowerShellスクリプトを実行します。
powershell -ExecutionPolicy Bypass -command C:\scripts\HyperV\ShutdownHyperV.ps1
これで、IPM2仮想マシンからWindowsにSSH接続してWindows内のシャットダウンスクリプトを実行。シャットダウン命令を受けたWindowsは、IPM2仮想マシンをシャットダウンした後に、シャットダウンします。
オートメーション設定 (自動化設定)
オートメーションは、IPM2で実装された新機能です。
トリガーとなる条件が満たされた時に、アクションが実行されます。
オートメーション > 新規作成
[オートメーション]を選択します。
自動化名は任意です。読んで分かりやすい名前が良いでしょう。
次に、「トリガー」を設定します。ここで設定した条件を満たした時に、下のアクションが実行されます。
[電力の問題]を選択します。
[UPSのAC停電]を選択して次へ。
パワーソースにするUPSを選択して終了。
[選択したUPSがAC停電した時]を条件とするトリガーができました。
続いて、「アクション」に移ります。
UPSが停電を検知したらすぐにアクションを実行されたくありません。
一定時間(ここでは120秒)待っても停電したままだったらアクションを実行してもらいたいです。
このような時は、実行したいアクションより前に[遅延タイム]と[初期トリガーの確認]を挿入します。
[遅延タイム]を選択します。
待機時間(秒)に60を入力して[終了]を押します
アクションの1番目に待機時間(いわゆるシャットダウンタイマー)が追加されました。
[初期トリガーの有効性チェック]を選択します。
待機時間経過後にトリガーの条件が今も有効かどうかのチェックを行います。
無効だった場合(UPSが停電から回復している場合)、これ以降のアクションに進ませたくありません。オートメーション(自動化)を終了するように設定します。
【重要】
[自動化を終了します]を選択します。
アクションの2番目に「トリガー条件を確認して満たしていなかったら、オートメーションを終了する」アクションが追加されました。
[ITアクション]を選択します。
[サーバーアクション]を選択して次へ。
[SSH]を選択して次へ。
サーバーのホスト名:WindowsのIPアドレス
サーバのポート:22
Credentialを選択して[新しいクレデンシャルを追加する]を押します。
[ユーザーとパスワード]を選択します。
クレデンシャル名:任意。読んで分かりやすい名前が良いでしょう。
クレデンシャルの使用:ユーザースクリプト
ユーザーとパスワードは、Windowsの管理者アカウントとパスワードを入力してSaveします。
確認はIPM2のパスワードを入力して[Confirm]を押します。
再びCredentialを押して、作成したクレデンシャルを選択します。
SSHコマンド:IPM2コンソールで実行確認したコマンドを貼り付けます。
powershell -ExecutionPolicy Bypass -command C:\scripts\HyperV\ShutdownHyperV.ps1
アクションを実行した結果、何かしらの原因でエラーが返ってきた場合、自動化を続行するのか、それとも終了するのかを選択します。※基本的に「初期トリガーの有効性チェック」アクションの時は終了。「初期トリガーの有効性チェック」以外のアクションは続行を選択します。
また、このアクションを抜けるタイムアウト値(秒)も入力します。
「トリガー」と「アクション」が完成したのでSaveします。
オートメーションが1つ作成されました。ステータスが「Inactive」なので有効化します。
これで、UPSが60秒間バッテリー運転したら、IPM2がWindowsにSSH接続してスクリプトを実行する設定ができました。
シャットダウンテスト
UPSの入力電源ケーブルを抜いてシャットダウンテストを実施します。
IPM2のオートメーションが実行されて、IPM2仮想マシン → Windowsの順でシャットダウンしました。
Network-M2の停電時のシャットダウンが実行されて、UPSがシャットダウンしました。
おわりに
TwitterとYouTubeでEaton UPSの情報を配信しております。よろしくお願い致します。
Twitter : https://twitter.com/eaton_daitron
YouTube : https://www.youtube.com/user/EatonDaito
- カテゴリー