Distribuire modelli di Azure Resource Manager come parte delle attività CI/CD con GitHub Actions

Completato

GitHub Actions consente al team di essere agile e competitivo nell'attuale mercato. Consente di automatizzare le attività per il ciclo di vita di sviluppo di sistemi o soluzioni.

Si supponga di voler sviluppare, insieme al proprio team, una soluzione che richiede un numero significativo di risorse in un ambiente di Azure. È necessario assicurarsi che la soluzione possa essere distribuita rapidamente e automaticamente come parte di una pipeline di integrazione continua e recapito continuo (CI/CD). In questo modo, è possibile automatizzare la creazione e la disinstallazione dell'infrastruttura del progetto. Includendo la gestione delle risorse nella pipeline CI/CD, si adotta un modello di infrastruttura come codice (IaC) per automatizzare le attività IT.

Pipeline CI/CD appropriate consentono anche di includere una fase di test nelle attività di distribuzione usando strumenti come il toolkit di test dei modelli di Azure Resource Manager (in breve, arm-ttk). Per altre informazioni su questo toolkit, vedere Convalidare la distribuzione tramite what-if e il toolkit di test.

È consigliabile includere test nella pipeline per potersi concentrare sulla creazione. Il toolkit arm-ttk esegue una serie di test per convalidare il modello durante la distribuzione per evitare problemi.

Sono disponibili diversi strumenti che consentono di raggiungere questi obiettivi, ma, poiché si sta già usando GitHub per il repository di codice, si decide di esaminare GitHub Actions per verificare se possa offrire l'automazione necessaria.

Questo modulo presenta GitHub Actions, uno strumento per distribuire i modelli di Azure Resource Manager.

Che cos'è GitHub Actions?

Le azioni di GitHub Actions sono script in pacchetto che consentono di automatizzare le attività in un flusso di lavoro di sviluppo in GitHub.

GitHub Actions consente di creare flussi di lavoro personalizzati per il ciclo di vita di sviluppo del software direttamente nel repository GitHub in cui sono archiviati i modelli di Azure Resource Manager. Un file YAML definisce un flusso di lavoro.

I flussi di lavoro includono uno o più processi. Ogni processo contiene un set di passaggi che eseguono singole attività. I passaggi possono eseguire comandi o usare un'azione. È possibile creare azioni personalizzate o usare azioni condivise dalla community di GitHub e personalizzarle in base alle esigenze.

Un flusso di lavoro di base per la distribuzione di un modello di Azure Resource Manager può includere almeno tre passaggi:

  1. Eseguire il checkout di un file modello.
  2. Accedere ad Azure.
  3. Distribuire il modello.

L'azione di accesso ad Azure usa un'entità servizio per l'autenticazione su Azure. Per l'entità servizio di un flusso di lavoro CI/CD per la distribuzione di risorse di Azure, sono necessari i diritti di collaboratore predefiniti corretti.