VMware vSphere環境で検証用マシンが複数台必要なとき、テンプレートを用いて簡単に仮想マシンを作成することができます。
本記事ではPowerCLIを活用してテンプレートから仮想マシンをデプロイする方法をご紹介します。
仮想マシンの作成
まず、テンプレートにするための仮想マシンを作成します。
通常の仮想マシンを1台作成し、OSのインストールや、リモートデスクトップ有効化などのOS設定を行います。
なお、テンプレートとなる仮想マシンではIPアドレス設定は不要となります。
設定が完了したら仮想マシンをパワーオフにします。
仮想マシンテンプレート作成
続いて、先ほど作成した仮想マシンをテンプレート化します。
仮想マシン画面から「アクション」-「テンプレート」-「テンプレートに変換」をクリックします。
「はい」をクリックします。
仮想マシンがテンプレートとして保存されます。
仮想マシンのカスタマイズ仕様作成
仮想マシンデプロイ時のsysprepを自動化させるため、仮想マシンのカスタマイズ仕様を作成します。
「新規セキュリティ ID (SID) の作成」にチェックが入っていれば、カスタイマイズ仕様適用時にsysprepが実行されます。
また、コンピュータ名で「仮想マシン名を使用」を選択しておくことで、仮想マシンのデプロイ時に仮想マシン名と同じホスト名がOSでも設定されます。
スクリプトファイル作成
次に、スクリプトファイル(.ps1ファイル)を作成し、以下内容を記述します。
# Connect to vCenter Server
Connect-VIServer -Server 〈vCenter Server FQDN or IPアドレス〉 -User '〈vCenter Server 管理者ユーザ〉' -Password '〈vCenter Server パスワード〉' -force
#Create a new VM from a template
$template = Get-Template -Name "〈テンプレート名〉"
$newVM = New-VM -Name "〈新規仮想マシン名〉" -Template $template -VMHost "〈デプロイ先ESXi〉" -Datastore "〈デプロイ先データストア〉"
# Apply Custom Specifications
$customSpec = Get-OSCustomizationSpec -Name "〈仮想マシンのカスタマイズ仕様名〉"
Set-VM -VM $newVM -OSCustomizationSpec $customSpec -Confirm:$false
# Power on VM
Start-VM -VM $newVM
# Disconnect from vCenter Server
Disconnect-VIServer -Server 〈vCenter Server FQDN or IPアドレス〉 -Confirm:$False
このスクリプトでは、以下の操作を自動化しています。
- テンプレートからの仮想マシン作成
- カスタマイズ仕様の適用
- 仮想マシン作成後のパワーオン
スクリプト実行
作成したスクリプトを、PowerCLIがインストールされたマシンで実行します。
PowerCLIのインストール方法はこちらをご確認ください。
スクリプトファイルを右クリックし、「PowerShellで実行」をクリックします。
スクリプトが実行されます。
スクリプトが終了したら、仮想マシンが作成されていることをvSphere Clientで確認します。
sysprepにより仮想マシンが数回再起動され、OSにホスト名が設定されたらデプロイ完了です。
おわりに
今回はPowerCLIを用いてテンプレートから仮想マシンを作成する方法をご紹介しました。
テンプレートやPowerCLIを活用することで、仮想マシン作成の時間を短縮できますので、本記事がその一助となれば幸いです。