Verwenden von PowerShell DSC zum Erstellen eines Hyper-V-Hosts

Während Hyper-V hinsichtlich des Marktanteils hinter VMware zurückbleibt, hat sich der Hypervisor von Microsoft langsam durchgesetzt. Unternehmen lieben den Preis – manchmal kostenlos – und die ständig wachsenden Funktionen der Hyper-V-Plattform. Diese Fortschritte haben Administratoren dazu veranlasst, immer mehr Hyper-V-Hosts bereitzustellen.

Wir können Richten Sie einen Hyper-V-Host ein auf einem vorhandenen Server unter Windows Server 2012 R2 mithilfe der Automatisierung, um den Prozess wiederholbar zu machen. In diesem Lernprogramm wird erläutert, wie Sie Windows PowerShell, insbesondere die PowerShell Desired State Configuration (DSC), zum Ausführen der Bereitstellung verwenden.

Was braucht es, um eine zu bauen Hyper-V-Host von einem vorhandenen Windows Server? Für unsere Zwecke sind drei Dinge erforderlich: einige Windows-Funktionen, ein Verzeichnis zum Speichern von VMs und ein Switch zum Verbinden des Netzwerks mit den VMs.

Aufbau des Frameworks

Beginnen Sie beim Starten eines PowerShell DSC-Projekts mit einer einzelnen PS1 PowerShell-Cmdlet-Datei und einem darin enthaltenen Konfigurationsblock. Wir werden die Konfiguration HyperVBuild aufrufen.
Konfiguration HyperVBuild {

}}
Eine Konfiguration ähnelt einer Funktion. Es enthält Code, der nach Belieben ausgeführt werden kann, sich jedoch etwas anders verhält. Nach dem Konfigurationsblock ist das Folgende normalerweise ein Parameter für die Konfiguration, genau wie bei einer PowerShell-Funktion. Ein allgemeiner Parameter ist $ NodeName; Dieser Parameter gibt den Computer an, auf den die Konfiguration angewendet wird. In diesem Fall verwenden wir standardmäßig den lokalen Host, da sich das Skript auf dem Server befindet, auf dem der Hyper-V-Host erstellt werden soll.
Fügen Sie den Knotenblock hinzu und weisen Sie dort den Wert des Parameters $ NodeName zu. Dadurch wird Windows angewiesen, eine Konfiguration für den in $ NodeName angegebenen Computernamen zu erstellen.
Konfiguration HyperVBuild {
param (
[string]$ NodeName = “localhost”
)

Knoten $ NodeName {

}}
}}

Fügen Sie einen Schuss Hyper-V hinzu

Nachdem dieses Framework eingerichtet ist, müssen wir ein Modul namens xHyper-V importieren. Da die Erstellung eines Hyper-V-Switch erforderlich ist, wird dieses PowerShell DSC-Modul benötigt, um diese Funktionalität zu erhalten. Das xHyper-V-Modul wird nicht mit Windows geliefert, kann jedoch von heruntergeladen werden Microsofts Github-Repository. Legen Sie es im Verzeichnis C: Programme WindowsPowerShell Modules ab. Es wird dann in allen nachfolgenden Skripten verfügbar sein.
Verwenden Sie das Cmdlet Import-DscResource und geben Sie den Modulnamen xHyper-V an.
Konfiguration HyperVBuild {
param (
[string]$ NodeName = “localhost”
)
Import-DscResource –Modulname xHyper-V
Knoten $ NodeName {

}}
}}
Wir können jetzt mit dem Hinzufügen der erforderlichen Ressourcen beginnen. Fügen Sie zunächst die Hyper-V-Windows-Funktion hinzu. Hierbei wird eine in Windows integrierte PowerShell DSC-Ressource verwendet. Erstellen Sie eine Zeile, die mit dem Ressourcennamen WindowsFeature beginnt, gefolgt von einer Bezeichnung für die Ressource. In diesem Fall nennen wir es Hyper-V.
Verwenden Sie dann innerhalb des Blocks das Attribut “Sicherstellen” und setzen Sie es auf “Präsentieren”, um die Windows-Funktion und den Namen der Windows-Funktion zu installieren, die beim Ausführen der Konfiguration installiert werden soll.
WindowsFeature ‘Hyper-V’ {
Stellen Sie sicher = “Anwesend”
Name = “Hyper-V”
}}
Als Nächstes müssen wir sicherstellen, dass die Hyper-V-PowerShell-Funktion installiert ist, damit wir einen weiteren Block erstellen.
WindowsFeature ‘Hyper-V-Powershell’ {
Stellen Sie sicher = “Anwesend”
Name = “Hyper-V-Powershell”
}}}}
Als Nächstes benötigen wir einen Ordner, bevor wir die VMs erstellen. Daher müssen wir sicherstellen, dass einer unter C: VMs erstellt wird. Dies verwendet die Dateiressourcen, um den Ordner zu erstellen. Die Dateiressource verfügt über ein Type-Attribut, das entweder eine Datei oder ein Verzeichnis angibt.
Datei VMsDirectory {
Stellen Sie sicher = “Anwesend”
Typ = “Verzeichnis”
DestinationPath = “$ ($ env: SystemDrive) VMs”
}}
Verwenden Sie für die letzte Funktion eine Ressource aus dem xHyper-V-Modul namens xVMSwitch zum Erstellen und Konfigurieren Hyper-V-Schalter. Machen Sie den Typ Intern, um ein Netzwerk für die VMs zu erstellen, die nicht außerhalb des Hosts kommunizieren können.
xVMSwitch LabSwitch {
DependsOn = ‘[WindowsFeature]Hyper-V ‘
Name = “LabSwitch”
Stellen Sie sicher = “Anwesend”
Typ = “Intern”
}}
Beachten Sie das DependsOn-Attribut. Dies ist ein gemeinsames Attribut für alle Ressourcen, mit dem Sie festlegen können, welche Auftragsressourcen ausgeführt werden. In diesem Beispiel stellen wir sicher, dass die Hyper-V-Windows-Funktion zuerst installiert wird, bevor Sie versuchen, den Switch zu erstellen.
Sie sollten jetzt eine Konfiguration haben, die ungefähr so ​​aussieht:
Konfiguration HyperVBuild
{
param (
[string]$ NodeName = “localhost”
)
Import-DscResource -Modulname xHyper-V
Knoten $ NodeName {
WindowsFeature ‘Hyper-V’ {
Stellen Sie sicher = “Anwesend”
Name = “Hyper-V”
}}
WindowsFeature ‘Hyper-V-Powershell’ {
Stellen Sie sicher = “Anwesend”
Name = “Hyper-V-Powershell”
}}
Datei VMsDirectory
{
Stellen Sie sicher = “Anwesend”
Typ = “Verzeichnis”
DestinationPath = “$ ($ env: SystemDrive) VMs”
}}
xVMSwitch LabSwitch {
DependsOn = ‘[WindowsFeature]Hyper-V ‘
Name = “LabSwitch”
Stellen Sie sicher = “Anwesend”
Typ = “Intern”
}}
}}
}}
Nachdem die Konfiguration erstellt wurde, generieren Sie die MOF-Dateien, die beim Start der Konfiguration auf das System angewendet werden sollen. Führen Sie dazu den Konfigurationsblock wie eine PowerShell-Funktion aus, indem Sie ihn unter dem Namen HyperVBuild aufrufen. Dadurch wird ein gleichnamiger Ordner erstellt, der eine MOF-Datei mit dem Namen localhost.mof enthält.
Der letzte Teil besteht darin, die Konfiguration auf den lokalen Computer anzuwenden. Verwenden Sie dazu das Cmdlet Start-DscConfiguration und einige verschiedene Parameter.
Start-DscConfiguration -Path. HyperVBuild -Wait -Force
Der erste Parameter ist Pfad. Dies zeigt Start-DscConfiguration auf den Ordner mit der MOF-Datei. Als Nächstes stellt der Parameter –Wait sicher, dass Start-DscConfiguration auf den Abschluss wartet, bevor die Steuerung an die Konsole freigegeben wird. Schließlich weist der Parameter –Force Start-DscConfiguration an, die Konfiguration zu “pushen”, anstatt zu ziehen. Das Push / Pull-Szenario wird in ausführlicher erläutert Dieser Artikel.
Nach dem Start von Start-DscConfiguration werden möglicherweise einige Meldungen auf der Konsole angezeigt, während die Konfiguration ausgeführt wird. Wenn alles gut geht, haben Sie einige Minuten später einen brandneuen Hyper-V-Server für VMs bereit.

Similar Posts

Leave a Reply