Trennen Sie die Netzwerkkarte bei ausgeschalteter VM

Trennen Sie die Netzwerkkarte bei ausgeschalteter VM

Ich verwende ESXi 6.0 und PowerCLI. Ich habe einen Klon einer Produktions-VM erstellt:

$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)

Mein MyProductionServer hat auf der Betriebssystemseite eine statische IP-Adresse. Wenn ich $Cloned_VM starte, habe ich eine doppelte IP im selben Subnetz. Ich möchte die Netzwerkkarte der geklonten VM TRENNEN, bevor ich diese starte.

Ich habe Folgendes herausgefunden:

1) Auf einer eingeschalteten VM:

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

Das funktioniert, aber ich kann es aufgrund des Zustands der geklonten VM nicht tun.

2) Entfernen Sie die Netzwerkkarte aus der VM:

$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)

Quelle:https://communities.vmware.com/thread/454525

Das funktioniert auch, ist aber nicht genau das, was ich möchte.

Ich möchte die aktuelle Netzwerkkarte TRENNEN, um die geklonte VM booten zu können, die IP-Adresse ändern und dann die Netzwerkkarte VERBINDEN (+ Neustart), damit die geklonte VM mit einer anderen IP-Adresse funktioniert.

Einfach ausgedrückt würde ich 1) gerne auf einer ausgeschalteten VM durchführen. Ist das möglich?

Antwort1

Also habe ich dies in einer Testumgebung getestet und es funktioniert.

# 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

Es scheint in Ordnung zu sein, ich werde es mir später in der Pre-Prod-Umgebung ansehen :)

verwandte Informationen