Eaton UPS(イートン 無停電電源装置) テクニカルブログ

Nutanix AHVをTera Termでシャットダウンする

Nutanix AHVの”クラスタ停止”、”CVMシャットダウン”、”AHVシャットダウン”をIPMの「クラスタのシャットダウン」を使用しないで、Tera Termでシャットダウンする手順です。

※Nutanixゲスト仮想マシンのシャットダウンは、IPMの「仮想マシンの電源操作(ゲストのシャットダウン)」を使用してください。

本解説の構成

ゲスト仮想マシンはシャットダウン完了しており、CVMとAHVだけ起動している状態です。

Tera Term インストール

最新版のTera Termをダウンロードしてインストールします

https://ja.osdn.net/projects/ttssh2/releases/

インストール途中で、.ttlファイルを ttpmacro.exe に関連付けます

Tera Termにて全CVMと全AHVにログイン

Tera Termをインストールしたら、全てのCVMとAHVにログインテストします。ログインできたら、何もせずに exit します。

※セキュリティ警告は[続行]を選択します

設定の流れ

  1. 「クラスタ停止 ⇒ CVMシャットダウン ⇒ AHVシャットダウン」を実行するマクロとバッチファイルを任意フォルダ(例:c:\scripts)に保存します
  2. バッチファイルを実行するタスクを作成します
  3. タスクを実行するIPMアクションを作成します

これら設定により、アクションが実行されるとシャットダウンマクロが実行されます

IPMのアクション実行 ⇒ タスク実行 ⇒ バッチファイル実行 ⇒ 各Tera Termマクロ実行

クラスタ停止、CVMシャットダウン、AHVシャットダウン 設定

Nutanix AHV シャットダウン フロー

「クラスタ停止 ⇒ CVMシャットダウン ⇒ AHVシャットダウン」の各コマンド

1. クラスタ停止

 任意のCVM1台にSSHで接続して、 echo Y | cluster stop を実行。

2. CVMシャットダウン

 各CVMにSSHで接続して、 sudo shutdown -h now を実行。

3. AHVシャットダウン

 各AHVにSSHで接続して、 shutdown -h now を実行。

上記1~3のスクリプトをTeraTermで作成しました。

Nutanix AHV シャットダウン サンプルスクリプト

TeraTerm サンプル.ttl

3種のttlファイルをc:\scripts に保存します。

各ttl内のIPアドレス、ユーザー名、パスワードは、環境に合わせて変更してください。

【1. クラスタ停止】

nutanix_cluster_stop.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.5' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; CVM1にSSH接続
connect COMMAND 

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end
endif

;; クラスター停止
sendln 'echo Y | cluster stop'

;; クラスター停止完了を最大180秒待機
timeout = 180
wait '$'
if result = 0 then 
    goto ending
endif

:ending

;; SSH切断
unlink

【2. CVMシャットダウン】

※ノード数が4ノード以外の場合、ノード数に合わせてください。

nutanix_cvm1_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.5' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; CVM1にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then
    disconnect 0
    end
endif

;; CVM1シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
unlink

nutanix_cvm2_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.6' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; CVM2にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM2シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
unlink

nutanix_cvm3_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.7' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; CVM3にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM3シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
unlink

nutanix_cvm4_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.8' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; CVM4にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM4シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
unlink

【3. AHVシャットダウン】

※ノード数が4ノード以外の場合、ノード数に合わせてください。

nutanix_ahv1_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.1' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; AHV1にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end
endif

;; AHV1シャットダウン
sendln 'shutdown -h now'

;; SSH切断
unlink

nutanix_ahv2_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.2' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; AHV2にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV2シャットダウン
sendln 'shutdown -h now'

;; SSH切断
unlink

nutanix_ahv3_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.3' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; AHV3にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV3シャットダウン
sendln 'shutdown -h now'

;; SSH切断
unlink

nutanix_ahv4_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.4' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /V'

;; AHV4にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV4シャットダウン
sendln 'shutdown -h now'

;; SSH切断
unlink

Nutanix シャットダウン サンプル.bat

各ttlを5秒間待機しながら実行、最後にWindows Serverがシャットダウンするbatファイルのサンプルです。Windows Serverをシャットダウンさせない場合は、最後の1行を削除すること。

※ノード数が4ノード以外の場合、ノード数に合わせてください。

nutanix_ahv_shutdown.bat

"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_cluster_stop.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_cvm1_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_cvm2_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_cvm3_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_cvm4_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_ahv1_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_ahv2_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_ahv3_shutdown.ttl"
timeout 5 /NOBREAK
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V /I "C:\scripts\nutanix_ahv4_shutdown.ttl"
timeout 5 /NOBREAK
shutdown /s /f /t 0

バッチファイルを実行するタスクを作成する

タスク スケジューラを起動します。

タスク スケジューラ ライブラリを右クリックして、タスクの作成を選択します。

【全般】タブ

タスクの名前は、「nutanix_shutdown」とします。
「ユーザーがログオンしているかどうかにかかわらず実行する」を選択します。
「最上位の特権で実行する」にチェックを入れます。

◇◆重要◆◇ 構成は、必ず「Windows Server 2003、XP、2000」を選択します。

【トリガー】タブ

何もしません。

【操作】タブ

新規をクリックします。

参照を押して、C:\scripts\nutanix_ahv_shutdown.bat を選択します。

【条件】タブ

「コンピュータをAC電源で使用している場合のみタスクを開始する」のチェックを外します。

【設定】タブ

何もしません。

右下の「OK」を押すと、batを実行するタスクが作成されます。アカウント情報を求められた時は、ユーザー名とパスワードを入力します。
このタスクはトリガーが無いため、通常は動作しません。

タスクを実行するIPMアクションを作成する

アクションの作成

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:Nutanix AHV Shutdown Action)
イベントリスト:任意のイベントを選択 (例:Shutdown Start 180s)
イベントソース:任意のソース
アクションのタイプ:コマンド

コマンド:

schtasks.exe /run /tn "nutanix_shutdown"

再トリガ可能:はい

※ダブルクォーテーション内の[文字列]は、作成したタスクの[名前]と一致する必要があります。
※パスが通っていない場合は、c:\windows\system32\schtasks.exe ~と絶対パスから入力します。

おわりに

環境により、Tera Termのセッションが切断された時に[Application Fault]が発生しますが、シャットダウン動作に影響ありません。どうしてもx2消したい場合、全てのttl内13行目 strconcat COMMAND ‘ /V’ をコメントアウトアウトしてください。

;; strconcat COMMAND ' /V'

掲載しているスクリプトは、サンプルです。
ダイトロンは、このサンプルスクリプトに関する動作保証は致しかねます。ご了承ください。

ページの先頭へ