For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 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.nupkg

Sie 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.

Fixieren wird für Produktions-Cluster von PowerShell Universal empfohlen.

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?