前回は仮想マシンクローンの自動化をスクリプト化しました。
今回はスナップショット取得を自動化した備忘録です。
スナップショットは仮想マシンが停止中または起動中のどちらでも取得出来ますが、起動中だと時間がかかるので停止した状態で取得します。
スクリプト実行前に、VMwareのモジュールをインポートしておきます。
VMware.PowerCLI
https://www.powershellgallery.com/packages/VMware.PowerCLI/12.0.0.15947286
1.スナップショット作成用スクリプト
処理の流れとしては下記の通りです。
- 仮想マシンが起動中なら停止する
- 仮想マシンが停止するまで5秒間待機をループする
- 仮想マシンが停止したらスナップショットを作成する
- スナップショットを作成したら仮想マシンを起動する
Import-Module VMware.PowerCLI
Connect-VIServer -Server vcsa -User root -Password “Passw0rd!” -Force
Write-Host “VMName:” -NoNewLine
$vmname = Read-Host
$vm=Get-VM
$vmname$snapname = (Get-Date).ToString(“yyyyMMdd-HH”)
if ($vm.PowerState -eq ‘PoweredOn’){
Shutdown-VMGuest -VM $vm -Confirm:$false
}
while ($vm.PowerState -ne ‘Powered Off’){
Start-Sleep -Seconds 5
$vm=Get-VM $vmname
$vm.PowerState
}
New-Snapshot -VM $vm -Name $snapname
Start-VM -VM $vm
Disconnect-VIServer -Confirm:$false
2.コマンドおよびオプションの説明
vCenter または ESXi への接続および切断はこちらをご確認ください。
Shutdown-VMGuest
⇒仮想マシンのOSをシャットダウンします。
※仮想マシンの停止ではありません
New-Snapshot
⇒スナップショットを作成します。
オプション | 値 |
VM | 仮想マシン |
Name | スナップショット名 |
Start-VM
⇒仮想マシンを起動します。
VMwareスナップショット作成の自動化については以上です。
コメント