VMware vSphere PowerCLI (PowerShell) Portgruppe mit VLAN hinzufügen

Da virtuelle Switches (vSwitches) immer noch Hostsache sind und daher nicht via vCenter „verteilt“ werden können, ist es sinnvoll so eine Aufgabe für mehrere Hosts zu automatisieren. Dank PowerCLI ist so ein Rollout aber verhältnismäßig schnell erledigt.

Neue Portgruppe mit VLAN (tagged) zu vSwitch0 auf einem ESXi hinzufügen

Das PowerCLI importieren und mit dem vCenter verbinden:

PS C:\> Import-Module VMware.PowerCLI
PS C:\> Connect-VIServer vcenter.example.fqdn

Dann kann man direkt die Portgruppe hinzufügen

Get-VMHost -name <ESXHOST> | Get-VirtualSwitch -Name <vSWITCH> | New-VirtualPortGroup -name <PORTGRUPPEN-NAME> -VLanId <ID>

Beispiel: Auf Host „esx15“ Portgruppe „vlan_11“ mit dem vlan tag „11“ zum „vSwitch0“ hinzufügen:

Get-VMHost -name esx15 | Get-VirtualSwitch -Name vSwitch0 | New-VirtualPortGroup -name vlan_11 -VLanId 11

Alle ESXi Hosts im Cluster auf einmal

Alle Host im Cluster kann man mit einer einfachen Schleife erreichen:

$VMHosts = Get-cluster <CLUSTER-NAME> | Get-VMHost

foreach ($VMHost in $VMHosts) {

    Get-VMHost -name $VMhost | Get-VirtualSwitch -name vSwitch0 | New-VirtualPortGroup -name <PORTGRUPPEN-NAME> -VLanId <ID>

}

vCenter 6.7/7 Host hinzufügen schlägt fehl „Unable to push CA certificates and CRLs to host“

Das Hinzufügen eines neuen Hosts (ab vSphere ESX 6.7 U3) ins vCenter schlägt mit der Meldung fehl:

Ein allgemeiner Systemfehler ist aufgetreten: Unable to push CA certificates and CRLs to host <HOSTNAME>

Oder auch auf English:

Unable to push CA certificates and CRLs to host <HOST>

Lösung

Mit vSphere 6.7U3 wurde die Zertifikatssicherheit verschärft. Die Fehlermeldung ist (indirekt) darauf zurückzuführen, dass selbstsignierte Zertifikate (oder Zertifikate ohne vertraute CA) aus dem TRUSTED_ROOTS Speicher des vCenters Server beim Hinzufügen (oder Verbinden) den ESXi-Host übertragen werden sollen. Ab U3 lässt der Host das aber nicht mehr zu.

Man kann diese Verhalten aber zum Glück ändern:

  1. vSphere Host-Client des neuen hosts öffnen
  2. Verwalten -> System -> Erweiterte Einstellungen
  3. Config.HostAgent.ssl.keyStore.allowSelfSigned auf „true“ setzen

vCenter 6.7 „Exception in invoking authentication handler User password expired.“

Ein vCenter mag „plötzlich“ keine root-Anmeldung mehr für das VMware Appliance Management machen.

Das kommt schon mal vor, weil Kennwort Standartmäßig in der VCSA ablaufen und es eineige Admins gibt die sich auch gerne länge mal nicht einloggen. „Warum auch, läuft doch“ 😉

Lösung

  1. Öffnen einer SSH-Sitzung auf den vCenter Server, einloggen als ‚root‘ (dort funktioniert das auch noch)
  2. Mit shell die Shell öffnen
  3. Mit passwd ein neues Kennwort vergeben (das kann auch dem alten entsprechen)

… und schon funktioniert die Anmeldung sofort wieder, ein Neustart ist nicht notwendig.

Kennwort nicht ablaufen lassen

Meist stehen „solche“ vmWare vCenter Applicances eher „isoliert“, daher kann man das Kennwort dort auch nicht ablaufen lassen. Das geht in der Weboberfläche unter Verwaltung > Einstellungen für Kennwortablauf

vSphere 7 VMware PowerCLI (v12.1+) installieren

Dies ist wieder so ein klassicher Fall von Selbst-Notiz: Nachdem ich schon wieder aus Gewohnheit das aktuellen VMware PowerCLI aus dem vMware Code Portal herunterladen wollte.

Das ist jetzt ein (NuGet) PowerShell Modul – man muss nichts mehr einzeln herunterladen. Install-Module läd das passende NuGet-Paket, sofern nicht vorhanden, auch gleich mit herunter.

PS> Install-Module -Name VMware.PowerCLI

Der native Download des NuGet-Paketes (für Offline-PCs) liegt hier:

https://psg-prod-eastus.azureedge.net/packages/vmware.powercli.12.1.0.17009493.nupkg

Veeam Backup & Replication Console startet nicht (veeam.backup.shell.exe System.Xml.XmlException)

Problem

Die Veeam Backup & Replication Console startet „auf einmal“ nicht mehr. Gestern ging es noch, heute passiert (scheinbar) nichts mehr, es ist nicht einmal der Anmeldedialog zu sehen. Im Ereignisprotokoll sind nach jedem Versuch veeam.backup.shell.exe zu starten diese Fehler zu sehen:

  • Protokoll: Anwendung
  • Quelle: .NET Runtime
  • Ereignis-ID: 1026
Anwendung: veeam.backup.shell.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Xml.XmlException
bei System.Xml.XmlTextReaderImpl.Throw(System.Exception)
bei System.Xml.XmlTextReaderImpl.ParseText(Int32 ByRef, Int32 ByRef, Int32 ByRef)
bei System.Xml.XmlTextReaderImpl.ParseText()
bei System.Xml.XmlTextReaderImpl.ParseElementContent()

[...]

Lösung

Warscheinlich ist nur die Benutzerkonfiguration der Konsole kaputt. Das .NET Framework ist (ausnahmsweise) da mal nicht schuld.

Es hilft das Löschen der Datei:

%USERPROFILE%\AppData\Local\Veeam_Software_Group_GmbH\veeam.backup.shell.exe_Url_hu1utqnj52thvmhrg5kie2bl15o22i22\10.0.0.0\user.config

Danach startet die Konsole sofort wieder.