Bereitstellungen
Deployments bieten die Möglichkeit, PowerShell Universal-Konfigurationsrepositorys zu verpacken und zu versionieren. Sie können auf einem Cluster von PowerShell Universal-Knoten bereitgestellt werden, um sicherzustellen, dass alle Knoten dieselbe Konfiguration haben, ohne dass Git-Sync konfiguriert werden muss. Deployments werden als PowerShell-Module verpackt und können direkt aus PowerShell-Repositorys bereitgestellt werden.
Deployments können nicht mit Git-Sync verwendet werden. Bei der Verwendung von Deployments wird empfohlen, Git und die Quellcodeverwaltung außerhalb von PowerShell Universal zu verwalten.
Deployments können auch verwendet werden, um schnell Snapshots von PSU-Konfigurationen zu erstellen und ohne manuelles Ändern von Dateien zurück- oder vorwärtszurollen.
Ein Deployment erstellen
Sie benötigen die Berechtigung Settings.Deployments\Create, um neue Deployments zu erstellen.
API
Die PowerShell Universal Management API und das Modul können zum Erstellen von PowerShell Universal-Deployments verwendet werden. Das Cmdlet New-PSUDeployment kann verwendet werden, um ein neues Deployment zu erzeugen. Dieses Deployment wird in der Datenbank gespeichert. Es enthält den aktuellen Zustand des PowerShell Universal-Repositorys für den Computer, mit dem es verbunden ist.
Der Parameter -Path ist optional und enthält die NuPkg-Datei des Moduls.
New-PSUDeployment -Name 'Production' -Version '1.0.1' -Path .\production.1.0.1.nupkgSie können die API auch über HTTP aufrufen.
Invoke-RestMethod http://localhost:5000/api/v1/deployments -Method POST -Body (@{
Name = 'Production'
Version = '1.0.1'
} | ConvertTo-Json)Ein Deployment als Modul anwenden
Wenn Ihr Deployment-Modul im PSModulePath erscheinen soll, können Sie den Abfragezeichenfolgenparameter asModule an den Pfad anhängen. Dies stellt sicher, dass die Funktionen im Deployment-Modul in der Umgebung verfügbar sind.
Admin-Konsole
Wir empfehlen nicht, Deployments manuell zu erstellen, da Automatisierung bevorzugt werden sollte, aber es ist über die Admin-Konsole möglich.
Öffnen Sie Source Control > Deployments. Sie benötigen die Berechtigung Setings.Deployments\Read, um diese Seite anzuzeigen. Klicken Sie auf Create Deployment, um eine neue Bereitstellung zu konfigurieren. Diese Bereitstellung wird in der Bereitstellungstabelle angezeigt.
Ein Deployment anwenden
Das Anwenden eines Deployments konfiguriert alle Knoten in einem PowerShell Universal-Cluster mit dem Inhalt des ausgewählten Deployments neu. Es ist nur ein einziger API-Aufruf erforderlich, um den gesamten Cluster neu zu konfigurieren.
Sie benötigen die Berechtigung Settings.Deployments\Execute, um ein Deployment anzuwenden.
Fixieren
Das Fixieren wendet ein Deployment an und stellt sicher, dass die Admin-Konsole und die Management API schreibgeschützt sind. Dies verhindert, dass Benutzer Ressourcen im Cluster bearbeiten.
API
Sie können das Cmdlet Select-PSUDeployment oder die Management API verwenden, um ein Deployment anzuwenden. Dies kann über ein PowerShell-Repository oder durch Auswahl eines Deployments erfolgen, das sich in der Datenbank befindet.
Admin-Konsole
Wir empfehlen nicht, Bereitstellungen über die Admin-Konsole zu verwalten, es ist jedoch möglich. Bevorzugen Sie immer Automatisierung gegenüber manuellen Bereitstellungsprozessen. Öffnen Sie in der Admin-Konsole Source Control > Deployments.
Von dort aus können Sie alle Deployments sehen, die in der PSU-Umgebung erstellt wurden. Klicken Sie auf die Schaltfläche Anwenden, um das Deployment auf den Cluster anzuwenden. Sie haben die Möglichkeit, das Deployment zu fixieren.
PowerShell-Repository
Sie können die Management API und das Universal-Modul verwenden, um ein Deployment direkt aus einem PowerShell-Repository anzuwenden, wie zum Beispiel der PowerShell Gallery oder einer Dateifreigabe. Das Repository muss auf allen Knoten im Cluster registriert sein, damit das Deployment erfolgreich angewendet werden kann. Sie können Register-PSResourceRepository verwenden, um ein Repository zu registrieren.
Um das Deployment anzuwenden, rufen Sie Select-PSUDeployment mit gesetztem Parameter Module auf.
GitHub Actions
Sie können die Action ironmansoftware/deploy-universal verwenden, um Ihr Repository direkt von GitHub aus bereitzustellen. Sie checkt das aktuelle Repository aus und überträgt die Änderungen an PowerShell Universal.
Nachfolgend finden Sie ein Beispiel für das YAML, um dies zu tun. Um mehr über die Deploy-Action zu erfahren, klicken Sie hier.
Git vs. Deployments
Git-Sync und Deployments bieten ähnliche Funktionalität. Sowohl Git-Sync als auch Deployments stellen sicher, dass alle Knoten innerhalb eines Clusters eine Konfiguration teilen, aber beide haben unterschiedliche Vor- und Nachteile.
Git
Git ermöglicht Benutzern, Commits direkt in PowerShell Universal zu erstellen. Sie können den Verlauf anzeigen und Änderungen vergleichen, ohne die Admin-Konsole verlassen zu müssen. Git kann außerdem kompliziert und problematisch zu konfigurieren sein. PowerShell Universal bietet begrenzte Git-Funktionen. Git-Sync hat den Vorteil, den Unterschied zwischen der aktuellen Konfiguration und der eingehenden Konfiguration zu kennen und kann nur die Ressourcen neu laden, die sich ändern. Allerdings ist dies oft kompliziert und fehleranfällig.
Vorteile
Gemeinsame Konfiguration über den Cluster hinweg
Git-Interaktion direkt in der Admin-Konsole
Commit-Verlauf direkt in der Admin-Konsole anzeigen
Inkrementelle Ressourcenaktualisierungen begrenzen Ausfallzeiten
Nachteile
Erfordert ein externes Git-Repository für Cluster
Kann kompliziert zu konfigurieren sein
Änderungen an externen Git-Systemen können PSU an der Synchronisierung hindern
Inkrementelle Ressourcenaktualisierungen sind kompliziert und fehleranfällig
Das direkte Bearbeiten in gemeinsam genutzten PSU-Instanzen kann für große Teams problematisch sein
Deployments
Deployments bieten eine Möglichkeit, unveränderliche Deployment-Pakete auf PowerShell Universal-Cluster anzuwenden. Externe Systeme sind nicht erforderlich, und Deployment-Pakete sind lediglich PowerShell-Module, die in der Datenbank oder optional in externen PowerShell-Ressourcenrepositorys gespeichert werden können. Deployments enthalten keinen Dateiverlauf und lassen sich auch nicht in die Quellcodeverwaltung integrieren. Deployments können in PowerShell Universal oder außerhalb mit Standard-PowerShell-Cmdlets erstellt werden.
Vorteile
Einfach zu erstellen und mit Standard-PowerShell-Cmdlets bereitzustellen
Keine externen Systeme erforderlich
Unveränderliche Konfigurationen, die für PowerShell Universal einfach bereitzustellen sind
Kann für die Versionierung mit PowerShell-Ressourcenrepositorys integriert werden
Nachteile
Die Quellcodeverwaltung muss außerhalb von PSU erfolgen
Externe Systeme sind erforderlich, um Deployments zu automatisieren
Die Neukonfiguration kann einige Zeit dauern, da die gesamte Serverkonfiguration zurückgesetzt wird
Zuletzt aktualisiert
War das hilfreich?