VMの自動起動スクリプト

更新日 2018-03-31 (土) 04:21:24

PowershellとバッチファイルでVMをまとめて起動させたり、shutdownさせたりできる

VMware vSphere PowerCLI

VM用のコマンドレットを利用するためにVMware vSphere PowerCLIを以下からDLして、Windows Serverにインストール

バッチからPowershellのスクリプトを呼び出す。
スクリプトでPowerCLIをスナップインし、 仮想PFに接続し、VMの起動・Shutdownを行う。

VM起動

start.bat(起動バッチ)

@echo off

set ScriptPath="C:\Usr\VMware\Powershtest\Start.ps1"

REM 【ポリシー設定】(Powershaellでスクリプトを動くようにする)
@powershell.exe Set-ExecutionPolicy -executionpolicy Unrestricted

REM PowerShellExec
powershell.exe -command "& '%ScriptPath%'"

Start.ps1

# スナップインの追加
Add-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue

# 仮想PFと接続
Connect-VIServer -Server "192.168.10.76" -User "root" -Password "*****"

# VMを起動
Start-VM -VM "HA-Cent6"
# 20秒時間待ち
"20秒時間待ち・・・・(1)"
Start-Sleep -s "20"
Start-VM -VM "Vine6"
"20秒時間待ち・・・・(2)"
Start-Sleep -s "20"
Start-VM -VM "Vine6_SvMotion"

# 仮想PFの切断 (-Confirm:$false は確認メニューを表示しない)
Disconnect-VIServer -Server "192.168.10.76" -Confirm:$false

VMのshutdown

sd.bat(Shutdown バッチ)

@echo off

set ScriptPath="C:\Usr\VMware\Powershtest\sd.ps1"

REM 【ポリシー設定】
@powershell.exe Set-ExecutionPolicy -executionpolicy Unrestricted

REM PowerShellExec
powershell.exe -command "& '%ScriptPath%'"

sd.sp1

# スナップインの追加
Add-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue

Connect-VIServer -Server "192.168.10.76" -User "root" -Password "*****"
"10秒時間待ち・・・・"
Start-Sleep -s "10"
# VMをシャットダウン( Stop-VMだと電源OFF)
Shutdown-VMGuest -VM "HA-Cent6" -Confirm:$false
Shutdown-VMGuest -VM "Vine6" -Confirm:$false
Shutdown-VMGuest -VM "Vine6_SvMotion" -Confirm:$false

Disconnect-VIServer -Server "192.168.10.76" -Confirm:$false
  • Confirm:$false は確認画面を表示しない設定

color(red){注)Stop-VMレットはshutdownではなくPowerOFF};

実行

それぞれのバッチファイルのショートカットを作成し、管理者権限で実行

管理者権限の設定はショートカットのプロパティ→ショートカットプロパティ→詳細設定
管理者として実行

Teraterm マクロで、ESXiをShutdown

Teraterマクロ

  • host_sd.ttl
connect '192.168.10.104 /ssh /auth=challenge /user=root /passwd=******'
wait ']'
sendln '/bin/poweroff' ← haltはすぐshutdownするみたい
wait ']'
sendln 'exit'
  • /auth=challenge: チャレンジレスポンス認証を使う
  • /auth=passwd:  パスフレーズを使用
  • wait ']' : ']'が表示されるまで待つ

Teratermマクロを起動するバッチ

  • host_sd.bat
@echo off
echo "ESXi Shutdown......"
"C:\usr\teraterm\ttpmacro.exe" C:\temp\host_sd.ttl

VM起動停止.png

説明

  • 起動遅延時間 ユーザーが ESXi ホストを起動すると、ESXi ホストは自動起動が構成されている仮想マシンのパワーオンを開始します。ESXi ホストは、最初の仮想マシンをパワーオンした後、指定されている遅延時間だけ待機し、続いて次の仮想マシンをパワーオンします。仮想マシンのパワーオンは、[仮想マシンあたりの優先順序] ペインで指定されている起動順に行われます。
  • VMware Tools が起動したらすぐに続行 仮想マシンの起動遅延時間を短縮します。指定されている遅延時間が経過する前に VMware Tools が起動すると、ESXi ホストは遅延時間の経過を待たずに次の仮想マシンをパワーオンします。
  • シャットダウン遅延時間 ユーザーが ESXi ホストをパワーオフするときには、ESXi ホストはそれ自体で実行されている仮想マシンのパワーオフを開始します。仮想マシンのパワーオフは起動順の逆順で行われます。ESXi ホストは、最初の仮想マシンをパワーオフした後、指定されているシャットダウン遅延時間だけ待機し、続いて次の仮想マシンをパワーオフします。ESXi ホストのシャットダウンは、すべての仮想マシンがパワーオフした後で行われます。
  • シャットダウン アクション ホストがシャットダウンするときにそのホスト上の仮想マシンに適用されるシャットダウン アクションを選択します。
    • ゲスト シャットダウン
    • パワーオフ
    • サスペンド
    • なし

CentOSをshutdownするには以下を追加

sudoコマンドの環境追加

以下コマンドで/etc/sudoers ファイルを編集
(直接編集はしない方が良い。誤記でsudoが起動しなくなる)

# sudo visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
okada   ALL=(ALL)       ALL ←追加

追加箇所を記入するとokadaがsudoを利用できるようになる
(パスワードは必要)

  • ファイルpassにパスワードを記入(行末にEnterが必要)

以下のように使用するとパスワードが不要なる

$ sudo -S </home/okada/pass ls
pass  pass~

以下のbatとマクロを追加

  • centos-test_sd.ttl
connect '192.168.10.27 /ssh /auth=passwd /user=okada /passwd=*****'
wait ']'
sendln '/usr/bin/sudo -S </home/okada/pass /usr/sbin/shutdown -h now' 
wait ']'
sendln 'exit'
  • centos-test_sd.bat
@echo off
echo " centos-test Shutdown......"
"C:\usr\teraterm\ttpmacro.exe" C:\temp\UPS\centos-test_sd.ttl
echo "Wait 5S or Enter Any Key......."
timeout /T 5

この部分をhost_sd.batに追加する。

WindowsでShutdown時にbatを起動させる

  • 「gpedit.msc」を起動

SD時起動BAT.png

SD時起動BAT2.png

  • UPSユーティリティ起動確認

SD時起動BAT3.png

富士電機ユーティリティDL

ESXiのUSBパススルー

デバイスパススルーを有効にする。(BIOSでインテルのI/O仮想化技術「VT-d」を有効にする)

先にUSBコントロールを追加する。

USBパススルー0.png

USBパススルー1.png

USBパススルー2.png

参考


添付ファイル: fileUSBパススルー2.png 79件 [詳細] fileUSBパススルー1.png 81件 [詳細] fileUSBパススルー0.png 87件 [詳細] fileSD時起動BAT3.png 82件 [詳細] fileSD時起動BAT2.png 87件 [詳細] fileSD時起動BAT.png 72件 [詳細] fileVM起動停止.png 93件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-03-31 (土) 04:21:24 (601d)