PowerCLI での VM テンプレート確認と ESXi 紐付け変更方法。

PowerCLI での VM テンプレート確認と ESXi 紐付け変更方法。

VMのテンプレートは、実はVM と同様に ESXi に紐付けされています。

普段はテンプレートがどこにあるか、あまり気にならないはずです。
しかし、テンプレートを別のESXi に移動するのが結構面倒だということに気づいてしまいました。

vm_template1.png

一般的な方法で vSphere Client や Web Client から
手作業でテンプレートを移動しようとすると下記のような流れになると思います。

  1. テンプレートを右クリックして VM に変換する。
  2. その VMを別のホストに移動する。
  3. 移動した VM を右クリックし、再びテンプレートに変換する。

これは単調な作業ですが、テンプレートが何十個もあるような場合はとても大変です。

そんなときに、PowerCLI を使用すると
1行のコマンドラインでテンプレートを移動することができます。

VM テンプレートと ESXi の紐付け確認

まず、VMとESXiの紐付けを確認しておきます。

PowerCLI> Get-Template | select Name,@{N="ESXi";E={(Get-VMHost -Id $_.ExtensionData.Runtime.Host).Name}} | ft -AutoSize

Name           ESXi
----           ----
oel64-template hv552.vmad.local
oel63-template hv551.vmad.local
oel62-template hv551.vmad.local

VM テンプレートを 別のESXi に移動してみます。

PowerCLI で下記の処理を実行します。

  • Set-Template に「-ToVM」を指定することで、テンプレートを VM に変換します。
  • Move-VM で VM を移動します。
    仮想ディスクを共有データストアに配置していない場合や、
    ESXi の紐付けだけでなく格納するデータストアも変更したい場合は
    「-Datastore <データストア名>」も指定します。(今回は省略しています)
  • Set-VM に「-ToTemplate」を指定することで、VM をテンプレートに変換します。
  • それぞれのコマンドレットは、パイプ「|」でつなげて実行します。

コマンドラインは、下記のようになります。(1行で記載します)

Set-Template -Template <テンプレート名> -ToVM | Move-VM -Destination (Get-VMHost <移動先ESXi名>) | Set-VM -ToTemplate -Confirm:$false

(実際のコマンドラインの例)

PowerCLI> Set-Template -Template oel64-template -ToVM | Move-VM -Destination (Get-VMHost hv552.vmad.local) | Set-VM -ToTemplate -Confirm:$false


上記の処理をスクリプトにする場合は、あえて
コマンドラインを複数行に分割したほうが読みやすいと思います。

スクリプト例(move_vm_template.ps1)

$template_name = $args[0]
$hv_name = $args[1]
$vm = Set-Template -Template $template_name -ToVM
$vm | Move-VM -Destination (Get-VMHost $hv_name)
$vm | Set-VM -ToTemplate -Confirm:$false

このスクリプトは、下記のようなコマンドラインで実行します。

※先頭のドット・バックスラッシュ(.\)は日本語環境だとYenマークになります。

.\move_vm_template.ps1 <テンプレート名> <移動先ESXi名>

(実際のコマンドラインの例)

PowerCLI> .\move_vm_template.ps1 oel63-template hv554.vmad.local

スクリプトでのVMテンプレート移動~ESXi の確認をしてみたときの実行イメージです。

vm_template2.png

ちなみに、vCenter 5.5 + PowerCLI 5.1 R2 で試していますが、

vCenter 5.x であれば同様にできるはずです。


以上です。ESXi のVMテンプレート確認&移動についての工夫でした。

Version history
Revision #:
1 of 1
Last update:
‎12-25-2013 07:29 AM
Updated by: