VMware PowerCLIで仮想マシンを自動デプロイする

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のインストール方法はこちらをご確認ください。

https://techdocs.broadcom.com/us/en/vmware-cis/vcf/power-cli/latest/powercli/installing-vmware-vsphere-powercli/install-powercli.html

スクリプトファイルを右クリックし、「PowerShellで実行」をクリックします。

スクリプトが実行されます。

スクリプトが終了したら、仮想マシンが作成されていることをvSphere Clientで確認します。

sysprepにより仮想マシンが数回再起動され、OSにホスト名が設定されたらデプロイ完了です。

おわりに

今回はPowerCLIを用いてテンプレートから仮想マシンを作成する方法をご紹介しました。

テンプレートやPowerCLIを活用することで、仮想マシン作成の時間を短縮できますので、本記事がその一助となれば幸いです。

執筆担当者プロフィール
M.Matsuura

M.Matsuura(日本ビジネスシステムズ株式会社)

クラウドやオンプレミス環境でのサーバー設計・構築を担当しています。

担当記事一覧