Adam der Automator

PowerCLI von VMware wird zur allgegenwärtigen Schnittstelle für Hypervisor-Virtualisierungsadministratoren von ESXi-unterstützter Hardware. Das Erlernen der Verwaltung von VMware über PowerShell und PowerCLI ist eine starke Ergänzung Ihres Toolkits. In diesem PowerCLI-Tutorial erfahren Sie, wie Sie genau das tun.

In diesem Tutorial lernen Sie:

  • die Grundlagen der Verbindung zur VMware-Infrastruktur mit PowerCLI
  • Machen Sie sich mit Cmdlets für die Arbeit mit VMware-Objekten vertraut
  • Befähigen Sie sich mit dem Wissen, VMware über PowerCLI weiter zu verwalten

Los geht’s!

Inhaltsverzeichnis

Was Sie haben und wissen müssen

Bevor Sie in diesem PowerCLI-Tutorial zu weit kommen, ist es immer wichtig sicherzustellen, dass Sie und ich uns beide auf derselben Seite befinden. Für diesen Artikel gehe ich davon aus, dass:

  • Sie haben grundlegende PowerShell-Erfahrung. Sie müssen auf keinen Fall ein PowerShell-Experte sein, aber jede PowerShell-Vertrautheit, die Sie haben, wird Ihnen gute Dienste leisten.
  • Sie haben einen VMware ESXi-Host oder eine vCenter Appliance zum Verbinden und Testen
  • Sie arbeiten an einer Windows-Workstation (oder Mac / Linux)
  • Sie haben PowerCLI bereits installiert und sind verbunden. Wenn nicht, lesen Sie diesen PowerCLI-Installationsartikel.

Ich werde PowerCLI v 11.4.0 verwenden. Ich werde von einer Windows 10-Workstation mit Windows PowerShell 5 arbeiten.1, aber Sie können gerne PowerShell 6 stattdessen verwenden, da es Feature-Parität für dieses Tutorial gibt.

Sammeln Sie Informationen über ESXi-Hosts mit PowerCLI

Bevor Sie in die virtuelle Schicht unserer vSphere-Umgebung eintauchen, sollten Sie die physische Hardwareschicht überprüfen. VMware PowerCLI stellt zu diesem Zweck direkt ein Cmdlet zur Verfügung, um detaillierte Informationen mit dem Namen Get-VMHost zu sammeln.

Führen Sie das folgende Cmdlet aus, während Sie mit Ihrem vCenter Server- oder ESXi-Host verbunden sind.

PS51> Get-VMHost
Get-VMHost
Get-VMHost

Da ich mit einer vCenter Server Appliance verbunden bin bei der Verwaltung von zwei separaten ESXi-Hosts erhalten Sie einige grundlegende Informationen zu den zu verwaltenden Hosts. Mit Get-VMHost können Sie die Hardwarefunktionen Ihrer Virtualisierungshosts überprüfen. Standardmäßig gibt Get-VMHost jedoch nicht alle Informationen zurück, die es kann.

Wenn Sie das Get-VMHost Cmdlet an Format-List , erhalten Sie eine Konsolenausgabe für alle Informationen zu den angegebenen Hosts.

Get-VMHost | Format-List
Get-VMHost | Format-List

Alternativ können Sie wählerischer sein und nur einzelne Eigenschaften des VMHost-Objekts, mit dem Sie arbeiten, wie:

PS51> Get-VMHost | format-list -Property State,LicenseKey,Version

Wenn Sie diese ausführlichere Ausgabe nutzen, erhalten Sie einen noch besseren Überblick über die zugrunde liegende Hardware, auf der Ihre virtualisierten Workloads ausgeführt werden. Einige der Informationen wären insbesondere:

  • License validation info
  • CPU/Memory totals
  • Hardware vendor model
  • DNS hostname

Nach der Überprüfung kann dies in eine CSV-Datei kompiliert werden, möglicherweise mit dem Export-CSV Cmdlet.

Überprüfen von VMs mit PowerCLI

Lassen Sie uns nun in ein anderes Thema in diesem PowerCLI-Lernprogramm durch Überprüfen virtueller Hosts eintauchen: Überprüfen, welche virtuellen Maschinen derzeit auf einem bestimmten ESXi-Host vorhanden sind.

Der Befehl Get-VM ist ein praktischer Befehl, mit dem Sie VM-Informationen überprüfen können.

PS51> Get-VMHost -Name <Host FQDN> | Get-VM

Die Ausgabe dieses Cmdlets sieht ungefähr so aus:

PS51 Erhalte-VMHost -Namen Host-FQDN | Erhalte-VM
PS51> Erhalte-VMHost -Namen | Erhalte-VM

Die obige Ausgabe enthält eine vollständige Statusliste der aktuell ausgeführten VMs auf einem bestimmten Host. Wenn Sie sich dafür entscheiden, keinen einzelnen Host anzugeben, wie ich es oben getan habe, erhalten Sie eine Tabelle mit Informationen für jeden nachfolgenden Host und die VMs auf jedem Host.

Wenn Sie jemals ein Problem beheben und die Anzahl der virtuellen Maschinen auf einem bestimmten Host kennen müssen oder VMware PowerCLI zum Sammeln von ESXi-Hostinformationen verwenden müssen, können Sie diese Cmdlets in Zukunft verwenden. Die Berichtsfunktionalität, die Sie zur Hand haben, beginnt sich zu erweitern!

Überprüfen virtueller Switches mit PowerCLI

Für diejenigen von uns, die mit der Konfiguration oder Verwaltung der virtuellen Netzwerke eines vCenter-Clusters beauftragt sind, gibt es eine vollständige Palette von Netzwerk-Cmdlets für jeden Anwendungsfall. Wenn Sie die virtuellen Switches in Ihrer vSphere-Umgebung konfiguriert sehen möchten, verwenden Sie Folgendes:

PS51> Get-VirtualSwitch

Abhängig von der Anzahl der virtuellen Netzwerke und virtuellen Switches, die Sie haben, kann die resultierende Liste ziemlich groß sein. In meinem Fall habe ich, wie Sie unten sehen, einen einzelnen DSwitch, der ein verteilter virtueller Switch ist.

In einer Enterprise vSphere-Implementierung mit vielen ESXi-Hosts in einem Cluster vereinfachen DSwitches die Bereitstellung virtueller Switches und Portgruppen auf einer Vielzahl von Hosts mit derselben Konfiguration. Dies erspart die manuelle Erstellung identischer Netzwerkkonfigurationen auf jedem Host manuell und ist eine großartige Möglichkeit, Ihren Cluster zu skalieren!

Get-VirtualSwitch
Get-VirtualSwitch

Finden von VMs, die mit PowerCLI an ein virtuelles Netzwerk angeschlossen sind

Beim Versuch, die aufgrund eines Problems fragen Sie sich möglicherweise, welche VMs mit welchen Netzwerken verbunden sind. Um das herauszufinden, können Sie den Befehl Get-VirtualPortGroup . In diesem PowerCLI-Lernprogramm erfahren Sie mehr über dieses Cmdlet.

Eine Portgruppe ist im Wesentlichen ein virtuelles Netzwerk. Um alle Portgruppen anzuzeigen, führen Sie Get-VirtualPortGroup ohne Parameter aus. Sie sollten dann eine Liste aller in Ihrer vSphere-Umgebung vorhandenen virtuellen Portgruppen sehen.

Get-VirtualPortGroup
Get-VirtualPortGroup

Um alle VMs innerhalb dieser Portgruppe (in meinem Fall DPortGroup) zu finden, können Sie das folgende Skript ausführen. Ersetzen Sie den Wert DPortGroup durch den Namen Ihrer virtuellen Portgruppe.

PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}

In diesem Einzeiler erhalten wir eine Liste aller virtuellen Maschinen, die in dieser vCenter Appliance vorhanden sind, und filtern dann mit dem Where-Object Cmdlet, um nur die VMs mit einem Netzwerknamen abzurufen, der unserer Portgruppe entspricht.

Abrufen von VMs mit nur einer bestimmten Portgruppe
Abrufen von VMs mit nur einer bestimmten Portgruppe

Mit dieser Ausgabe können Sie definieren, welche Maschinen für jedes Netzwerk angeschlossen und konfiguriert sind.

Wenn Sie gefragt werden, welche VMs mit einem bestimmten Netzwerk in VMware verbunden sind, können Sie nun eine PowerCLI-Berichtslösung für diese Frage bereitstellen.

Abrufen von Betriebssystemversionsinformationen auf Ihren VMs mit PowerCLI

Der Großteil der administrativen Arbeit in VMware wird auf der Ebene der virtuellen Maschine erledigt. Sie erhalten wahrscheinlich unzählige Anfragen für Aufgaben wie das Abrufen einer Liste aller Festplattengrößen auf VMs oder das Abrufen von Gastbetriebssystemversionen für alle Ihre Server.

Diese Aufgaben sind im Maßstab umständlich. PowerCLI ist in der Lage, diese mit ein paar wichtigen Cmdlets zu rationalisieren, um sie Ihrem Arsenal hinzuzufügen.

Möglicherweise wurden Sie irgendwann gefragt: „Wie viele Ubuntu-Server haben wir in unserem VMware-Cluster?”. Möglicherweise haben Sie dann viel zu viel Zeit damit verbracht, in vCenter nach einer Antwort zu suchen. PowerCLI kann diesen Prozess optimieren, indem es sich die VM-Objekte in vCenter ansieht und PowerShell-Magie auf die Ausgabe anwendet.

Schauen Sie sich das folgende Skript an, das VM-Informationen zusammenfasst. Dieses Snippet verwendet den Befehl Get-View, auf den wir später eingehen werden, aber im Moment sollten Sie wissen, dass dies eine erweiterte Methode zum Abrufen von VMware-Objekteigenschaften ist. In diesem Fall sammeln wir verschachtelte Eigenschaften, die mit dieser Methode am einfachsten abgerufen werden können.

PS51> Get-VM | Sort-Object -Property Name | Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName") | Select-Object -Property Name, @{N="Configured OS";E={$_.Config.GuestFullName}}, @{N="Running OS";E={$_.Guest.GuestFullName}}

Der obige Code ruft eine Liste virtueller Maschinen über das Cmdlet PowerCLI Get-VM ab, sortiert diese Liste mit dem Cmdlet PowerShell Sort-Object und ruft dann einige der Objekteigenschaften mit dem Cmdlet PowerCLI Get-View Cmdlet.

Wenn Sie dies in meiner Umgebung ausführen, erhalten Sie das folgende Ergebnis. Sie können den Namen der VM in vCenter sehen, die Configured OS So wird die virtuelle Hardware von VMware so eingestellt, dass sie das Gastbetriebssystem interpretiert, und die tatsächliche Running OS das repräsentiert das tatsächliche Betriebssystem.

VMs anhand verschiedener Kriterien finden
VMs anhand verschiedener Kriterien finden

Wenn der VMs-Replikant und Scriptrunner im Cluster ausgeschaltet sind, können Sie keine VMs nach verschiedenen Kriterien siehe den Running OS Wert für sie. Das Betriebssystem wird vom VMware Tools-Dienst erfasst. Wenn es nicht verfügbar ist, kann PowerCLI die Betriebssysteminformationen nicht abrufen.

Erstellen von CSV-Berichten mit PowerCLI

VMware Tools ist ein In-Guest-Service für Windows- und Linux-VMs, der dem Hypervisor zusätzliche Informationen und Verwaltungsfunktionen bietet. In den meisten Fällen bietet dies ein sauberes Herunterfahren, Betriebssysteminformationen und eine Konsolenansicht der VMs mit höherer Auflösung.

Eine bequeme Möglichkeit, diese Informationen zu melden und bereitzustellen, besteht darin, das obige Skript in das Export-CSV Cmdlet zu leiten. Export-Csv erstellt eine CSV-Datei mit denselben Informationen, die Sie in der Konsole sehen.

PS51> Get-VM | Sort-Object -Property Name | Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName") |Select -Property Name, @{N="Configured OS";E={$_.Config.GuestFullName}}, @{N="Running OS";E={$_.Guest.GuestFullName}} | Export-CSV C:\report.csv -NoTypeInformation 

Nachdem Sie den obigen Code ausgeführt haben, sollten Sie in der Lage sein, die CSV-Datei mit Excel zu öffnen, um den Bericht zu überprüfen.

CSV-Datei mit VM-Informationen
CSV-Datei mit VM-Informationen

Überprüfen virtueller Festplatten mit PowerCLI

Die Get-Harddisk Befehl ist ein weiterer nützlicher Befehl zu wissen. Mit dem Cmdlet Get-HardDisk können Sie Informationen zu virtuellen Festplatten überprüfen, die an VMs angeschlossen sind.

Um beispielsweise Informationen über die virtuelle Festplatte abzufragen, die an die exchange1-VMs angeschlossen ist, können Sie Folgendes ausführen:

PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
Informationen zur virtuellen Festplatte abfragen, die an die Exchange1-VMs angeschlossen ist
Informationen zur virtuellen Festplatte abfragen, die an die Exchange1-VMs angeschlossen ist

Einige dieser Informationen können redundant sein, z. B. die Kapazität in KB vs. GB. Es ist jedoch sinnvoll, die StorageFormat (Thin / Thick-Bereitstellungstypen) zu kennen. Und den VMDK-Dateinamen zu kennen.

Wenn beispielsweise ein häufiges Problem auftritt und sich alle VM-Festplatten auf demselben Datenspeichervolume befinden, kann dieses Wissen die Fehlerbehebung beschleunigen.

Überprüfen virtueller Netzwerkadapter mit PowerCLI

Neben der Überprüfung der Festplatteninformationen Ihrer virtuellen Maschinen möchten Sie möglicherweise auch die virtuellen Netzwerkadapter überprüfen. Um diese Eigenschaften für eine einzelne VM zu überprüfen, können Sie das Cmdlet Get-NetworkAdpter verwenden.

PS51> Get-NetworkAdapter -VM myVM

Während Sie zuvor in diesem Port nach allen VMs gesucht hatten, die sich im selben Netzwerk befanden, möchten Sie diesmal nur die Adapter sehen, die mit einer bestimmten VM verbunden sind.

Get-NetworkAdapter
Get-NetworkAdapter

Dies ist nützlich bei der Fehlerbehebung bei VMs, an die mehrere Netzwerkadapter angeschlossen sind. Sie können schnell und auf einen Blick feststellen, ob diese Adapter an die richtigen Netzwerke angeschlossen sind.

Ausführen von PowerShell-Skripten in VMs mit Invoke-VMScript

Mit der Invoke-VMScript können Sie PowerShell-Code auch direkt in der VM ausführen. Wenn Sie PowerShell Direct jemals in einer Hyper-V-Umgebung verwendet haben, wird dies eine ähnliche Erfahrung sein.

Anstatt eine PowerShell-Remoting-Sitzung zu erstellen oder das Cmdlet Invoke-Command über das Netzwerk zu verwenden, kann das Cmdlet Invoke-VMScript Befehle ohne normale WinRM- oder SSH-Konnektivität direkt an die VM senden.

Als Beispiel möchten Sie vielleicht eine einfache Verzeichnisauflistung auf einer VM namens exchange1 durchführen. Dazu würden Sie dir C:\ als Wert für den Parameter ScriptText wie unten gezeigt übergeben.

PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"

Die Ergebnisse sind so, als hätten Sie die Befehle von der VM-Konsole selbst ausgeführt. Invoke-VMScript gibt dann alle Ausgaben weiter, die der auf der VM ausgeführte Befehl zurückgibt.

Invoke-VMScript
Invoke-VMScript

Obwohl dies ein grundlegendes Beispiel ist, können Sie so kompliziert werden, wie Sie möchten. Mit diesem PowerCLI-Cmdlet können Sie Batch-, PowerShell- oder Bash-Typen im Parameter ScriptText angeben.

Sie können auch fortgeschrittener werden. Unten sehen Sie, wie Sie Invoke-VMScript verwenden, um PowerShell-Code mit einer separaten $script Variablen für die ScriptText Parametereingabe auszuführen. Auf diese Weise können wir mehr benutzerdefinierte Skripteingaben für die zu verarbeitende VM erstellen.

PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell

Der ScriptText Parameterwert muss ein String sein. Aus diesem Grund hat die Variable $script die einfachen äußeren Anführungszeichen als Notwendigkeit.

Möglicherweise haben Sie auch die Verwendung des GuestCredential -Parameters bemerkt. Dieser Parameter wird verwendet, um sich beim VM-Betriebssystem zu authentifizieren. Dieser Parameter ist besonders nützlich, wenn Sie das Skript als ein anderes Konto ausführen möchten.

Ihr Skript in Aktion sollte zu einer ähnlichen Ausgabe wie unten führen.

Ausführen eines Skripts auf einer VM mit Invoke-VMScript
Ausführen eines Skripts auf einer VM mit Invoke-VMScript

Das Ergebnis dieses Skripts liefert uns die Festplatte der VM informationen. Auf dieser Grundlage sollten Sie wissen, dass es sich um eine Remote-VM handelt, da VMware Virtual Disk der Anzeigename des Laufwerks ist.

Erste Schritte mit Get-View

Möglicherweise haben einige der grundlegenden Cmdlets eine Eigenschaft namens ExtensionData zurückgegeben. Sie können diese Eigenschaft finden, indem Sie viele PowerCLI-Cmdlets an das PowerShell-Cmdlet Get-Member . Wenn Sie sich fragen, was das war, ist jetzt Ihre Chance, es herauszufinden.

Der nächste Schritt in diesem Projekt ist das Verständnis des Get-View Cmdlets. VMware PowerCLI nutzt viele verschiedene Abfragen an die VM, um die hübsche und einfache Ausgabe von Get-VM bereitzustellen. Aber es gibt eine Menge unter der Haube, auf die nur mit dem Get-View Cmdlet zugegriffen werden kann.

Sie werden wahrscheinlich viele Skripte sehen, die dieses Cmdlet verwenden. Sie sollten sich einige Zeit daran gewöhnen, dieses Cmdlet in Aktion zu sehen. Um sich vertraut zu machen, verwenden Sie das Cmdlet Get-View, um einige Informationen zur virtuellen Maschine abzurufen (in diesem Beispiel exchange1).

Die Filter -Optionen dieses Cmdlets erfordern die Verwendung einer PowerShell-Hashtabelle und nicht einzelner Zeichenfolgenwerte. Seien Sie sich bewusst, wenn Sie Ihre eigenen einzigartigen Skripte erstellen!

PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}

Das Ergebnis des obigen Befehls sind viele verschachtelte Konfigurationsinformationen und Methodenoptionen, um Aktionen gegen die VM auszuführen oder Objekteigenschaften abzurufen.

Get-View
Get-View

Wenn Sie dasselbe Skript oben verwenden und die Ausgabe an eine Variable senden, können Sie diese verschachtelten Optionen mit Punktnotation überprüfen. Hier können Sie alle zusätzlichen Informationen des Gastbetriebssystems sehen und abrufen, die Sie möglicherweise über PowerCLI melden möchten.

PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
Verwenden von Get-View mit dem Filterparameter
Verwenden von Get-View mit dem Filterparameter

Vielleicht möchten Sie um eine einzelne Eigenschaft auszuwählen. Wenn ja, können Sie Folgendes ausführen, um einen einzelnen Wert einzugrenzen.

PS51> $VM.Guest.GuestFullName

Es gibt viele Get-View Optionen für alle Arten von VMware-Objekten. Fühlen Sie sich frei, all diese Optionen zu erkunden und diesen informativen Artikel von VMware zu lesen, der ausführlich auf dieses leistungsstarke Cmdlet eingeht!

VMware Code Capture – Lernen Sie von Ihren Klicks

Wenn Sie PowerCLI nutzen möchten, aber lieber keinen Code durch Eingabe erstellen möchten, ist Code Capture in vCenter genau das Richtige für Sie. Code Capture ist ein neues Entwicklertool, das ähnlich wie das Active Directory-Verwaltungscenter funktioniert. Lassen Sie uns die Codeerfassung in diesem PowerCLI-Lernprogramm behandeln.

Dieses Tool zeichnet alle Aktionen auf, die Sie innerhalb der GUI ausführen. Es wandelt dann alle diese Aktionen um und stellt Ihnen PowerCLI-Skripte zur Verfügung.

Standardmäßig ist die Codeerfassung nicht aktiviert. Um es zu aktivieren, öffnen Sie Ihre vCenter Appliance und navigieren Sie zu Menü –> Developer Center wie unten gezeigt.

Navigieren zum Menüpunkt Developer Center in vSphere
Navigieren zum Menüpunkt Developer Center in vSphere

Schalten Sie auf der Registerkarte Developer Center die Option Codeerfassung aktivieren um.

Aktivieren der Codeerfassung
Aktivieren der Codeerfassung

Wenn Sie die Codeerfassung aktivieren, wird in Ihrem vCenter-Header eine rote Aufnahmetaste angezeigt. Einmal aktiviert, wann immer Sie möchten, dass eine Aktion aufgezeichnet und in PowerCLI-Ausgabe umgewandelt wird, müssen Sie die GUI-Aktivität aufzeichnen, indem Sie auf die Schaltfläche Aufzeichnen klicken.

Anzeige für aktivierte Codeerfassung
Anzeige für aktivierte Codeerfassung

Die rote Aufnahmetaste wird neben Ihrem angemeldeten Benutzerbereich von vCenter angezeigt, sodass Sie jetzt jederzeit aufzeichnen können.

Um die Codeerfassung zu demonstrieren, gehen Sie durch den Assistenten zum Erstellen einer neuen virtuellen Maschine.

  1. Klicken Sie auf die Aufnahmetaste, um mit der Aufnahme zu beginnen. Dadurch beginnt die rote Aufnahmetaste zu pulsieren.Klicken Sie mit der rechten Maustaste auf Ihren VMware-Host, und erstellen Sie eine neue virtuelle Maschine. Führen Sie den resultierenden Assistenten durch und erstellen Sie eine neue virtuelle Maschine mit allen Standardwerten.
  2. Sobald die virtuelle Maschine erstellt wurde, klicken Sie auf die Schaltfläche Aufzeichnen und stoppen Sie die Aufzeichnung.

Die resultierende Ausgabe kann etwas ausführlicher sein als erwartet. Die Ausgabe enthält sogar alle Aktionen zum Durchsuchen der GUI vor dem Erstellen der VM. Sie sollten jedoch einen Abschnitt sehen, der in den Kommentaren mit CreateVM_Task . Hier beginnt der Code zum Erstellen einer VM.

Nachfolgend finden Sie einen Teil der Ausgabe von CreateVM_Task des neuen VM-Assistenten in der GUI über die Codeerfassung:

Generierter Code des Entwicklercenters
Generierter Code des Entwicklercenters

Diese Ausgabe kann ein wenig überwältigend sein, aber es macht Sie direkt auf die Anzahl der Konfigurationsoptionen zur Verfügung, um Ihre virtuellen Maschinen. Abhängig von Ihren eigenen Bedürfnissen können Sie jetzt Anpassungen in Ihren eigenen Skripten vornehmen und nach Herzenslust anpassen.

Das Dienstprogramm zur Codeerfassung ist nicht nur auf die VM-Erstellung beschränkt. Es kann auch Code für Netzwerkänderungen, kleine VM-Änderungen oder Hostkonfigurationsänderungen erstellen. Indem Sie die PowerCLI-Ausgabe von GUI-Aktionen überprüfen können, können Sie eine Abkürzung auf Ihrem Weg zur als Code bereitgestellten Infrastruktur nehmen.

Zusammenfassung des PowerCLI-Tutorials

In diesem Artikel haben Sie viel Boden gutgemacht. Gute Arbeit! Ich hoffe, dass Sie die Leistungsfähigkeit von PowerCLI für die Verwaltung der VMware-Infrastruktur erkannt haben.

Es gibt viele Cmdlets in PowerCLI für eine Vielzahl von Produktbasen, aber wir haben hier nur einige behandelt. Achten Sie darauf, in diesem Blog für weitere Artikel über dieses tolle Tool abgestimmt zu bleiben!

Weitere Informationen

  • Herunterladen und Installieren von PowerCLI
  • Offizielle VMware PowerCLI-Dokumente

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.