2012-05-03 20 views
0

私は、VMwareに1トンのVMをクローン化するという仕事をしてきました。クローンウィザードで何百回もクリックするのではなく、可能な限り自動化したいと思います。マルチスレッドPowerCLIと並行して複数のVMをクローン化する

テンプレートマシンが既に設定されており、「封印済み」です。クローンを作成して電源を入れると、新しくクローンされたインスタンスが起動し、sysprepsなどの間にそこに座ります。これには約20分かかります。

私はそれが必要なすべてを行う非常に素晴らしいscript over on MSFT TechNetを見つけました。私はそれを少し変更したので、値を変更して、プロセスの各ステップごとにスクリプトを再保存する必要はありません。スクリプト全体を通して$ステップカウンタの代わりに、私は単純にそれをいくつかのスタート - スリープ遅延に置き換えました。この時点で、正常に動作し、CSVファイルから読み込んだすべてのマシンを正常にクローンします。各マシンは、準備が整うまでに約35分かかります(マシンは別のAD OUに移動されます)。

唯一の問題は、すべてのプロセス(クローン、VLANの変更、マシンの起動とドメイン参加の待機、最終的なマシンオブジェクトの別のAD OUへの移行)が完了し、別のクローンを開始することです。

私は本当に何とかしたいのは、マルチスレッドなので、操作全体を高速化することです。テストでは、vSphere内のクローン作成が5つの別々のクローンジョブが実行されていると遅くなり始めたので、このスクリプトを修正して4つのクローン(ワークフロー全体を一度に実行)を実行したいと思います。

アイデア?必要に応じてコードを貼り付けることができます。

答えて

2

1つのテンプレートから最大8つのvmsを並行して複製できます。 -RunAsyncでnew-vmを実行する場合。 -RunAsyncを指定すると、コマンドはすぐに戻り、出力は1つ以上のTaskオブジェクトで構成されます。

複数のVMを複製する場合は、次のようにしてください。ループしてください。

Write-host "Deploying VM " -ForegroundColor Green -NoNewline; Write-Host $vmname -ForegroundColor Yellow 
get-OScustomizationspec $cs | get-OScustomizationNicMapping | set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vm.IP -SubnetMask $vm.subnet -DefaultGateway $vm.gateway -Dns $vm.Dns1, $vm.Dns2 

$vms = New-VM -Name $vm.Name -Location $vm.cluster -VMhost $vm.vmhost -Template $vm.template -Datastore $vm.datastore -OSCustomizationSpec $cs -confirm:$false **-RunAsync** 

if ($vm1.error) { 
    Write-Host "Error in deploying $vmname" -ForegroundColor Red 
} 
関連する問題