こんにちは、ネットワールドの 仮想基盤の魔術師 の海野です。
※実際にはそんな役職や肩書はないです。
2017年もNutanix Advent Calendarに参加しました。お手柔らかによろしくお願いします。
この企画に参加する方はヘビーな内容を書く方が多そうですので、私はアッサリ仕上げたいと思います。
V2V : Nutanix AHV環境への移行
最近流行りのXtract for VMs以外に、従来のイメージサービスなどを使ったvSphereからNutanix AHVへのV2V方式がいくつかありますが、
その中で避けて通れないものが「VMware Toolsをどうするか」ということです。
当然、AHV環境ではVMware Toolsは不要ですから、いままでお世話になったVMware Toolsを偲びながらもアンインストールを実行すると思います。
仮想マシンの台数が少なければ手作業によるアンインストールも現実的ですし、実際にそうされる方も多いと思います。
一方で、VDIをはじめとする非常に多数の仮想マシンがある環境や、とても大きなスケールのサーバー統合基盤ではどうでしょうか。
マスターイメージ化されているVDIであれば、VMware Toolsのアンインストールも比較的簡単にできそうですが、
個別で作業を行う必要があるフルクローンですと、話はそう単純ではありません。
PowerShellを使ったVMware Toolsのアンインストール
そこで、CLIを使いシンプルにVMware Toolsをアンインストールをするための手段として、PowerShellをご紹介します。
以下のコマンドをPowerShellにて実行することでVMware Toolsをアンインストールすることが可能です。
参考リンク : Get-WMiObject コマンドレットの使用
※ソースはサンプルです。使用は自己責任でご判断ください。
$App = Get-WmiObject -Class Win32_Product | where { $_.name -eq "VMware Tools" }
$App.uninstall()
コケたときのために
PowerShellコマンドの中にTry-Catchを組み合わせれば、エラーが発生した状況を検知することも可能です。
このソースでは、何らかの理由でアンインストールが失敗した場合、
共有フォルダー内にファイル名を [ "コンピューター名" + "yyyyMMdd-HH-mmss" .txt ] とし、テキストの中身を "Error" で出力させます。
※共有フォルダーには適切な権限が設定されていることを前提としています。
参考リンク : Get-WMiObject コマンドレットの使用
$OutputFileName = "<★共有フォルダーのパス>" + $Env:COMPUTERNAME + "-" +(Get-Date).ToString("yyyyMMdd-HHmmss") +".txt"
try{
$App = Get-WmiObject -Class Win32_Product | where { $_.name -eq "VMware Tools" }
$App.Uninstall() # > $OutputFileName
}
catch
{
Write-Output "Error" > $OutputFileName
}
どうやってPowerShellを実行させるか
VDI環境であれば、Active Directoryが事実上必須であるため、GPOを利用することが可能です。
ログオンスクリプトをRunOnceと組み合わせることで、移行後の初回起動時にだけこのPowerShellを実行させるといったことも可能です。
環境ごとの移行プランにあわせてご検討ください。
まとめ
Nutanix環境へのV2V時に課題となるVMware Toolsの後片付けですが、PowerShellとGPOを組み合わせることで、膨大な手作業を行わずにアンインストールすることができます。
なお、繰り返しとなりますが、今回ご紹介したPowerShellのソースはサンプルです。
当社ならびに私個人が動作を保証するものではなく、自己責任でご利用いただくようお願いします。
AHVへの移行のご相談はぜひネットワールドまで。
では、Nutanixとともに素敵なクリスマスをお過ごしください。