web-dev-qa-db-ja.com

切断NICオン電源オフVM

ESXi6.0とPowerCLIを使用しています。本番VMのクローンを作成しました。

$Source_VM = Get-VM -Name "MyProductionServer"
$Target_VMHost = Get-VMHost -VM $Source_VM
$Cloned_VM = (New-VM -Name "MyPreProdServer" -VM $Source_VM -VMHost $Target_VMHost)

MyProductionServerのOS側に静的IPアドレスが設定されています。 $ Cloned_VMを起動すると、同じサブネット上に重複するIPがあります。私がやりたいのは、これを開始する前に、クローンされたNICでVMを切断することです。

私が見つけたのは:

1)電源がオンになっているVMの場合:

Get-NetworkAdapter -VM $Cloned_VM | Set-NetworkAdapter -Connected:$false -StartConnected:$false -Confirm:$false

これは機能していますが、複製されたVMの状態のため、これを行うことはできません。

2)VMからNICを削除します:

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].Operation = "Remove"
$spec.DeviceChange[0].Device = $Cloned_VM.ExtensionData.Config.Hardware.Device | ?{$_.DeviceInfo.Label -eq "Network adapter 1"}
$Cloned_VM.ExtensionData.ReconfigVM_Task($spec)

出典: https://communities.vmware.com/thread/454525

これも機能していますが、私が望んでいるものとは異なります。

現在のNICを切断して、複製されたVMを起動し、IPアドレスを変更してから、NIC(+再起動))を接続して複製を作成します。 VM別のIPアドレスを使用しています。

簡単に言うと、1)電源がオフのVMで実行したいと思います。それは可能ですか?

1
locobastos

だから私はこれをテスト環境でテストしました、そしてそれは働いています。

# Saving the NIC
$Saved_NIC = $Cloned_VM.ExtensionData.Config.Hardware.Device | ?{$_.DeviceInfo.Label -eq "Network adapter 1"}

# Removing the NIC
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].Operation = "Remove"
$spec.DeviceChange[0].Device = $Saved_NIC
$Cloned_VM.ExtensionData.ReconfigVM_Task($spec)

# Modifying my VM (boot + launch script + poweroff)

# Adding the NIC
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.deviceChange[0].Operation = "Add"
$spec.DeviceChange[0].Device = $Saved_NIC
$Cloned_VM.ExtensionData.ReconfigVM_Task($spec)

# Boot again my VM and test to reach the internet: WORKING!
Start-VM -VM $Cloned_VM

大丈夫のようです。後でプリプロダクション環境で確認します:)

1
locobastos