Distribuzioni
Le distribuzioni offrono la possibilità di pacchettizzare e versionare i repository di configurazione di PowerShell Universal. Possono essere distribuite in un cluster di nodi PowerShell Universal per garantire che tutti i nodi abbiano la stessa configurazione senza la necessità di configurare la sincronizzazione git. Le distribuzioni sono pacchettizzate come moduli PowerShell e possono essere distribuite direttamente dai repository PowerShell.
Le distribuzioni non possono essere utilizzate con la sincronizzazione git. Quando si utilizzano le distribuzioni, è consigliabile gestire git e il controllo del codice sorgente al di fuori di PowerShell Universal.
Le distribuzioni possono essere utilizzate anche per creare rapidamente snapshot delle configurazioni PSU ed eseguire il rollback o il roll forward senza dover modificare manualmente i file.
Creazione di una distribuzione
È necessaria l'autorizzazione Settings.Deployments\Create per creare nuove distribuzioni.
API
L'API e il modulo di gestione di PowerShell Universal possono essere utilizzati per creare distribuzioni di PowerShell Universal. Il cmdlet New-PSUDeployment può essere utilizzato per generare una nuova distribuzione. Questa distribuzione verrà archiviata nel database. Conterrà lo stato corrente del repository di PowerShell Universal per il computer a cui è connesso.
-Path è facoltativo e conterrà il file NuPkg del modulo.
New-PSUDeployment -Name 'Production' -Version '1.0.1' -Path .\production.1.0.1.nupkgPuò anche chiamare l'API di HTTP.
Invoke-RestMethod http://localhost:5000/api/v1/deployments -Method POST -Body (@{
Name = 'Production'
Version = '1.0.1'
} | ConvertTo-Json)Applicazione di una distribuzione come modulo
Se desidera che il modulo di distribuzione compaia nel PSModulePath, può aggiungere il parametro della stringa di query asModule al percorso. Questo garantisce che le funzioni del modulo di distribuzione siano disponibili nell'ambiente.
Console di amministrazione
Non consigliamo di creare manualmente le distribuzioni poiché è preferibile l'automazione, ma è possibile farlo tramite la console di amministrazione.
Faccia clic su Impostazioni \ Distribuzioni per accedere alla pagina delle distribuzioni. È necessaria l'autorizzazione Setings.Deployments\Read per visualizzare questa pagina. Faccia clic su Crea distribuzione per configurare una nuova distribuzione. Questa distribuzione verrà mostrata nella tabella delle distribuzioni.
Applicazione di una distribuzione
L'applicazione di una distribuzione riconfigura tutti i nodi di un cluster PowerShell Universal con il contenuto della distribuzione selezionata. È necessaria una sola chiamata API per riconfigurare l'intero cluster.
È necessaria l'autorizzazione Settings.Deployments\Execute per applicare una distribuzione.
Pinning
Il pinning applica una distribuzione e garantisce che la console di amministrazione e l'API di gestione siano di sola lettura. Ciò impedisce agli utenti di modificare le risorse nel cluster.
API
Può utilizzare il cmdlet Select-PSUDeployment o l'API di gestione per applicare una distribuzione. Questa operazione può essere eseguita utilizzando un repository PowerShell o selezionando una distribuzione presente nel database.
Console di amministrazione
Non consigliamo di gestire le distribuzioni tramite la console di amministrazione, ma è possibile. Preferisca sempre l'automazione ai processi di distribuzione manuali. Nella console di amministrazione, faccia clic su Impostazioni \ Distribuzioni.
Da lì, può vedere tutte le distribuzioni elencate che sono state create nell'ambiente PSU. Faccia clic sul pulsante Applica per applicare la distribuzione al cluster. Avrà la possibilità di eseguire il pin della distribuzione.
Repository PowerShell
Può utilizzare l'API di gestione e il modulo Universal per applicare una distribuzione direttamente da un repository PowerShell, come PowerShell Gallery o una condivisione file. Il repository deve essere registrato su tutti i nodi del cluster per poter applicare correttamente la distribuzione. Può utilizzare Register-PSResourceRepository per registrare un repository.
Per applicare la distribuzione, chiami Select-PSUDeployment con il parametro Module impostato.
GitHub Actions
Può utilizzare l'azione ironmansoftware/deploy-universal per distribuire il suo repository direttamente da GitHub. Esegue il checkout del repository corrente e invia le modifiche a PowerShell Universal.
Di seguito è riportato un esempio di YAML per farlo. Per maggiori informazioni sull'azione di distribuzione, faccia clic qui.
Git vs distribuzioni
La sincronizzazione git e le distribuzioni offrono funzionalità simili. Sia la sincronizzazione git sia le distribuzioni garantiscono che tutti i nodi di un cluster condividano una configurazione, ma ognuna presenta pro e contro diversi.
Git
Git consente agli utenti di effettuare commit direttamente in PowerShell Universal. Potranno visualizzare la cronologia e confrontare le modifiche senza dover uscire dalla console di amministrazione. Git può anche essere complicato e problematico da configurare. PowerShell Universal offre funzionalità git limitate. La sincronizzazione git ha il vantaggio di conoscere la differenza tra la configurazione corrente e quella in arrivo e può ricaricare solo le risorse che cambiano. Detto questo, spesso è complicato e soggetto a errori.
Pro
Configurazione condivisa nell'intero cluster
Interazione con git direttamente nella console di amministrazione
Visualizzazione della cronologia dei commit direttamente nella console di amministrazione
Gli aggiornamenti incrementali delle risorse limitano i tempi di inattività
Contro
Richiede un repository git esterno per i cluster
Può essere complicato da configurare
Le modifiche ai sistemi git esterni possono impedire la sincronizzazione di PSU
Gli aggiornamenti incrementali delle risorse sono complicati e soggetti a errori
La modifica diretta in istanze PSU condivise può essere problematica per i team di grandi dimensioni
Distribuzioni
Le distribuzioni offrono un modo per applicare pacchetti di distribuzione immutabili ai cluster PowerShell Universal. Non sono necessari sistemi esterni e i pacchetti di distribuzione sono semplicemente moduli PowerShell che possono essere archiviati nel database o, facoltativamente, in repository di risorse PowerShell esterni. Le distribuzioni non contengono alcuna cronologia dei file, né si integrano con il controllo del codice sorgente. Le distribuzioni possono essere create in PowerShell Universal o all'esterno con i cmdlet PowerShell standard.
Pro
Semplici da creare e distribuire con i cmdlet PowerShell standard
Nessun sistema esterno richiesto
Configurazioni immutabili semplici da distribuire per PowerShell Universal
Possono essere integrate con i repository di risorse PowerShell per il versionamento
Contro
Il controllo del codice sorgente deve essere gestito al di fuori di PSU
Sistemi esterni necessari per automatizzare le distribuzioni
La riconfigurazione può richiedere tempo poiché l'intera configurazione del server viene reimpostata
Ultimo aggiornamento
È stato utile?