Eseguire la distribuzione alle macchine virtuali di Azure usando i gruppi di distribuzione in Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Nelle versioni precedenti di Azure Pipelines, le applicazioni da distribuire in più server richiedevano una notevole quantità di pianificazione e manutenzione. La comunicazione remota di Windows PowerShell doveva essere abilitata manualmente, le porte richieste aperte e gli agenti di distribuzione installati in ognuno dei server. Le pipeline devono quindi essere gestite manualmente se è necessaria una distribuzione di implementazione.
Tutte le sfide precedenti sono state sviluppate senza problemi con l'introduzione dei gruppi di distribuzione.
Un gruppo di distribuzione installa un agente di distribuzione in ognuno dei server di destinazione nel gruppo configurato e indica alla pipeline di versione di distribuire gradualmente l'applicazione in tali server. È possibile creare più pipeline per le distribuzioni di implementazione in modo che la versione più recente di un'applicazione possa essere distribuita in più fasi a più gruppi di utenti per la convalida delle nuove funzionalità introdotte.
Nota
I gruppi di distribuzione sono un concetto usato nelle pipeline classiche. Se si usano pipeline YAML, vedere Ambienti.
Questa esercitazione descrive quanto segue:
- Provisioning dell'infrastruttura di macchine virtuali in Azure con un modello
- Creazione di un gruppo di distribuzione di Azure Pipelines
- Creazione ed esecuzione di una pipeline CI/CD per distribuire la soluzione con un gruppo di distribuzione
Prerequisiti
- Un account Microsoft Azure.
- Un'organizzazione di Azure DevOps.
Usare azure DevOps Demo Generator per effettuare il provisioning del progetto di esercitazione nell'organizzazione Azure DevOps.
Configurazione dell'ambiente di distribuzione di Azure
Viene effettuato il provisioning delle risorse seguenti in Azure usando un modello di Resource Manager:
- Sei server Web Macchine virtuali (VM) con IIS configurato
- MACCHINA virtuale di SQL Server (server di database)
- Bilanciamento del carico di rete di Azure
Fare clic sul collegamento Distribuisci in Azure di seguito per avviare il provisioning delle risorse. Specificare tutte le informazioni necessarie e selezionare Acquista. È possibile usare qualsiasi combinazione di nomi utente e password amministrativi consentiti perché non vengono usati di nuovo in questa esercitazione. Il prefisso Env Name è preceduto da tutti i nomi delle risorse per assicurarsi che tali risorse vengano generate con nomi univoci globali. Provare a usare qualcosa di personale o casuale, ma se viene visualizzato un errore di conflitto di denominazione durante la convalida o la creazione, provare a modificare questo parametro ed eseguire di nuovo.
Nota
Per completare la distribuzione sono necessari circa 10-15 minuti. Se si ricevono errori di conflitto di denominazione, provare a modificare il parametro specificato per Nome prefisso Env.
Al termine della distribuzione, è possibile esaminare tutte le risorse generate nel gruppo di risorse specificato usando il portale di Azure. Selezionare la macchina virtuale del server di database con sqlSrv nel nome per visualizzarne i dettagli.
Prendere nota del nome DNS. Questo valore è obbligatorio in un passaggio successivo. È possibile usare il pulsante copia per copiarlo negli Appunti.
Creazione e configurazione di un gruppo di distribuzione
Azure Pipelines semplifica l'organizzazione dei server necessari per la distribuzione di applicazioni. Un gruppo di distribuzione è una raccolta di computer con agenti di distribuzione. Ogni computer interagisce con Azure Pipelines per coordinare la distribuzione dell'app.
Poiché non sono necessarie modifiche di configurazione per la pipeline di compilazione, la compilazione viene attivata automaticamente dopo il provisioning del progetto. Quando si accoda una versione in un secondo momento, viene usata questa compilazione.
Passare al progetto Azure DevOps creato dal generatore demo.
In Pipeline passare a Gruppi di distribuzione.
Selezionare Aggiungi un gruppo di distribuzione.
Immettere il nome del gruppo di distribuzione release e selezionare Crea. Viene generato uno script di registrazione. È possibile registrare i server di destinazione usando lo script fornito se si lavora autonomamente. In questa esercitazione, tuttavia, i server di destinazione vengono registrati automaticamente come parte della pipeline di versione. La definizione di versione usa le fasi per distribuire l'applicazione nei server di destinazione. Una fase è un raggruppamento logico delle attività che definisce la destinazione di runtime in cui verranno eseguite le attività. Ogni fase del gruppo di distribuzione esegue le attività nei computer definiti nel gruppo di distribuzione.
In Pipeline passare a Versioni. Selezionare la pipeline di versione denominata Gruppi di distribuzione e selezionare Modifica.
Selezionare la scheda Attività per visualizzare le attività di distribuzione nella pipeline. Le attività sono organizzate come tre fasi denominate fase agente, fase del gruppo di distribuzione e fase di distribuzione IIS.
Selezionare la fase agente. In questa fase i server di destinazione sono associati al gruppo di distribuzione usando l'attività Distribuzione gruppo di risorse di Azure. Per l'esecuzione, è necessario definire un pool di agenti e una specifica. Selezionare il pool di Azure Pipelines e la specifica più recente di Windows.
Selezionare l'attività Distribuzione gruppo di risorse di Azure. Configurare una connessione al servizio alla sottoscrizione di Azure usata in precedenza per creare l'infrastruttura. Dopo aver creato la connessione, selezionare il gruppo di risorse creato per questa esercitazione.
Questa attività verrà eseguita nelle macchine virtuali ospitate in Azure e dovrà essere in grado di connettersi a questa pipeline per completare i requisiti del gruppo di distribuzione. Per proteggere la connessione, saranno necessari un token di accesso personale ( PAT).To secure the connection, they will need a personal access token (PAT). Nell'elenco a discesa Impostazioni utente aprire Token di accesso personali in una nuova scheda. La maggior parte dei browser supporta l'apertura di un collegamento in una nuova scheda tramite il menu di scelta rapida o CTRL+Clic.
Nella nuova scheda selezionare Nuovo token.
Immettere un nome e selezionare l'ambito di accesso completo. Selezionare Crea per creare il token. Dopo la creazione, copiare il token e chiudere la scheda del browser. Si torna all'editor di Azure Pipeline.
In Connessione al servizio Azure Pipelines selezionare Nuovo.
Immettere l'URL di Connessione ion per l'istanza corrente di Azure DevOps. Questo URL è simile
https://dev.azure.com/[Your account]
a . Incollare il token di accesso personale creato in precedenza e specificare un nome di connessione del servizio. Selezionare Verifica e salva.Nota
Per registrare un agente, è necessario essere membri del ruolo Amministrazione istrator nel pool di agenti. L'identità dell'amministratore del pool di agenti è necessaria solo al momento della registrazione. L'identità dell'amministratore non viene salvata in modo permanente nell'agente e non viene usata in alcuna comunicazione successiva tra l'agente e Azure Pipelines. Dopo la registrazione dell'agente, non è necessario rinnovare il token di accesso personale perché è necessario solo al momento della registrazione.
Selezionare il progetto Team corrente e il gruppo Distribuzione creato in precedenza.
Selezionare la fase Fase del gruppo di distribuzione. Questa fase esegue le attività nei computer definiti nel gruppo di distribuzione. Questa fase è collegata al tag SQL-Svr-DB . Scegliere il gruppo di distribuzione dall'elenco a discesa.
Selezionare la fase di distribuzione IIS. Questa fase distribuisce l'applicazione ai server Web usando le attività specificate. Questa fase è collegata al tag WebSrv . Scegliere il gruppo di distribuzione dall'elenco a discesa.
Selezionare l'attività Disconnetti servizio di bilanciamento del carico di rete di Azure. Poiché i computer di destinazione sono connessi al bilanciamento carico di rete, questa attività disconnetterà i computer dal bilanciamento carico di rete prima della distribuzione e riconnetterli al bilanciamento carico di rete dopo la distribuzione. Configurare l'attività per l'uso della connessione di Azure, del gruppo di risorse e del servizio di bilanciamento del carico (deve essere presente solo una).
Selezionare l'attività Gestione app Web IIS. Questa attività viene eseguita nei computer di destinazione della distribuzione registrati con il gruppo di distribuzione configurato per l'attività/fase. Crea un'app Web e un pool di applicazioni in locale con il nome PartsUnlimited in esecuzione nella porta 80
Selezionare l'attività Distribuzione app Web IIS. Questa attività viene eseguita nei computer di destinazione della distribuzione registrati con il gruppo di distribuzione configurato per l'attività/fase. Distribuisce l'applicazione nel server IIS usando Distribuzione Web.
Selezionare l'attività Connessione servizio di bilanciamento del carico di rete di Azure. Configurare l'attività per l'uso della connessione di Azure, del gruppo di risorse e del servizio di bilanciamento del carico (deve essere presente solo una).
Selezionare la scheda Variabili e immettere i valori delle variabili come indicato di seguito.
Nome variabile Valore variabile DatabaseName PartsUnlimited-Dev DBPassword P2ssw0rd@123 DBUserName sqladmin Impostazione predefinita Connessione ionString Origine dati=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; ID utente=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; Connessione ion Timeout=30; ServerName localhost Importante
Assicurarsi di sostituire il nome DNS di SQL Server (annotato in precedenza da portale di Azure) nella variabile Default Connessione ionString.
Il valore predefinito Connessione ionString dovrebbe essere simile a questa stringa dopo la sostituzione del DNS SQL:
Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;
L'elenco di variabili finale avrà un aspetto simile al seguente:
Nota
È possibile che venga visualizzato un errore che indica che la
DefaultConnectionString
variabile deve essere salvata come segreto. In tal caso, selezionare la variabile e fare clic sull'icona del lucchetto visualizzata accanto al relativo valore per proteggerla.
Accodamento di una versione ed esame della distribuzione
Selezionare Salva e conferma.
Selezionare Crea versione e confermare. Seguire la versione fino al completamento. La distribuzione è quindi pronta per la revisione.
Nella portale di Azure aprire una delle macchine virtuali Web nel gruppo di risorse. È possibile selezionare qualsiasi elemento nel
websrv
nome.Copiare il DNS della macchina virtuale. Azure Load Balancer distribuirà il traffico in ingresso tra istanze integre di server definiti in un set con carico bilanciato. Di conseguenza, il DNS di tutte le istanze del server Web è lo stesso.
Aprire una nuova scheda del browser sul DNS della macchina virtuale. Verificare che l'app distribuita sia in esecuzione.
Riepilogo
In questa esercitazione è stata distribuita un'applicazione Web in un set di macchine virtuali di Azure usando Azure Pipelines e gruppi di distribuzione. Anche se questo scenario ha illustrato alcuni computer, è possibile ridimensionare facilmente il processo fino a supportare centinaia, o anche migliaia, di macchine che usano praticamente qualsiasi configurazione.
Pulizia delle risorse
Questa esercitazione ha creato un progetto Azure DevOps e alcune risorse in Azure. Se non si intende continuare a usare queste risorse, eliminarle con la procedura seguente:
Eliminare il progetto Azure DevOps creato dal generatore demo di Azure DevOps.
Tutte le risorse di Azure create durante questa esercitazione sono state assegnate al gruppo di risorse specificato durante la creazione. L'eliminazione di tale gruppo eliminerà le risorse che contengono. Questa eliminazione può essere eseguita tramite l'interfaccia della riga di comando o il portale.