Esercizio: Configurare l'ambiente Azure DevOps
In questa sezione si assicurerà che l'organizzazione di Azure DevOps sia configurata per completare il resto di questo modulo. Si creeranno anche gli ambienti del servizio app di Azure in cui si distribuirà.
Per configurare il sistema, è necessario:
- Aggiungere un utente per assicurarsi che Azure DevOps possa connettersi alla sottoscrizione di Azure.
- Configurare un progetto Azure DevOps per questo modulo.
- In Azure Boards spostare l'elemento di lavoro per questo modulo nella colonna In corso .
- Creare gli ambienti del servizio app di Azure usando l'interfaccia della riga di comando di Azure in Azure Cloud Shell.
- Creare variabili pipeline che definiscono i nomi degli ambienti di Servizio app.
- Creare una connessione al servizio che consente ad Azure Pipelines di accedere in modo sicuro alla sottoscrizione di Azure.
Aggiungere un utente ad Azure DevOps
Per completare questo modulo, è necessaria la propria sottoscrizione di Azure. È possibile iniziare gratuitamente a usare Azure.
Anche se non è necessaria una sottoscrizione di Azure per usare Azure DevOps, in questo modulo si userà Azure DevOps per distribuire le risorse esistenti nella sottoscrizione di Azure. Per semplificare il processo, è necessario usare lo stesso account Microsoft per accedere sia alla sottoscrizione di Azure che all'organizzazione Azure DevOps.
Se si usano account Microsoft diversi per accedere ad Azure e Azure DevOps, aggiungere un utente all'organizzazione DevOps con l'account Microsoft usato per accedere ad Azure. Per altre informazioni, vedere Aggiungere utenti all'organizzazione o al progetto. Quando si aggiunge l'utente, scegliere il livello di accesso Basic .
Disconnettersi quindi da Azure DevOps e accedere di nuovo con l'account Microsoft usato per accedere alla sottoscrizione di Azure.
Ottenere il progetto Azure DevOps
In questa sezione ci si assicurerà che l'organizzazione Azure DevOps sia configurata per completare il resto del modulo. Si inizierà eseguendo un modello che crea il progetto in Azure DevOps.
I moduli in questo percorso di apprendimento fanno parte di una progressione che segue il Team Web Tailspin attraverso il loro percorso DevOps. Ai fini dell'apprendimento, a ogni modulo è associato un progetto Azure DevOps.
Eseguire il modello
Eseguire un modello che configura l'organizzazione Azure DevOps.
Importante
Azure DevOps Demo Generator non è più supportato, ma è comunque possibile usarlo per creare ambienti demo. Al momento non esiste alcuna sostituzione e le relative funzionalità o disponibilità potrebbero cambiare in futuro.
Ottenere ed eseguire il progetto ADOGenerator in Visual Studio o nell'IDE preferito.
Quando viene richiesto di immettere il numero di modello dall'elenco dei modelli, immettere 33 per Esegui test non funzionali in Azure Pipelines e quindi premere INVIO.
Scegliere il metodo di autenticazione. È possibile configurare e usare un token di accesso personale (PAT) o usare l'account di accesso del dispositivo.
Annotazioni
Se si configura un token di accesso personale, assicurarsi di autorizzare gli ambiti necessari. Per questo modulo è possibile usare l'accesso completo, ma in una situazione reale è necessario assicurarsi di concedere solo gli ambiti necessari.
Immettere il nome dell'organizzazione di Azure DevOps e quindi premere INVIO.
Se richiesto, immettere il pat di Azure DevOps, quindi premere INVIO.
Immettere un nome di progetto, ad esempio Space Game - web - Test non funzionali, quindi premere INVIO.
Dopo aver creato il progetto, passare all'organizzazione di Azure DevOps nel browser (in
https://dev.azure.com/<your-organization-name>/) e selezionare il progetto.
Creare una copia tramite fork del repository
Se non lo hai già fatto, crea un fork del repository mslearn-tailspin-spacegame-web-deploy.
In GitHub, passare al repository mslearn-tailspin-spacegame-web-deploy.
Selezionare Fork in alto a destra dello schermo.
Scegli il tuo account GitHub come proprietario, quindi seleziona Crea fork.
Importante
La pagina Pulisci l'ambiente Azure DevOps in questo modulo contiene importanti passaggi di pulizia. La pulizia consente di assicurarsi che i minuti di compilazione gratuiti non si esauriscano. Assicurarsi di eseguire la procedura di pulizia anche se non si completa questo modulo.
Impostare la visibilità del progetto
Inizialmente, il fork del repository Space Game su GitHub è pubblico, mentre il progetto creato dal modello Azure DevOps è privato. Un repository pubblico in GitHub può essere accessibile da chiunque, mentre un repository privato è accessibile solo all'utente e alle persone con cui si sceglie di condividerlo. Analogamente, in Azure DevOps, i progetti pubblici forniscono l'accesso in sola lettura agli utenti non autenticati, mentre i progetti privati richiedono l'accesso e l'autenticazione degli utenti per accedere ai servizi.
Al momento, non è necessario modificare alcuna di queste impostazioni ai fini di questo modulo. Tuttavia, per i progetti personali, è necessario determinare la visibilità e l'accesso che si desidera concedere ad altri utenti. Ad esempio, se il progetto è open source, è possibile rendere pubblici il repository GitHub e il progetto Azure DevOps. Se il progetto è closed source, probabilmente si preferirà che il repository GitHub e il progetto DevOps di Azure siano privati.
Più avanti, è possibile trovare le risorse seguenti utili per determinare quale opzione è migliore per il progetto:
- Usare progetti privati e pubblici
- Modificare la visibilità del progetto in modalità pubblica o privata
- Impostazione della visibilità del repository
Configurare il progetto in locale
Qui si carica il progetto Space Game in Visual Studio Code, si configura Git, si clona il repository in locale e si imposta il repository remoto upstream in modo da poter scaricare il codice di avvio.
Annotazioni
Se si è già configurato con il progetto mslearn-tailspin-spacegame-web-deploy in locale, è possibile passare alla sezione successiva.
Aprire il terminale integrato
In Visual Studio Code è disponibile un terminale integrato. Qui è possibile modificare i file e lavorare dalla riga di comando.
Avvia Visual Studio Code.
Scegliere Terminale dal menu Visualizza.
Nell'elenco a discesa selezionare Git Bash. Se si ha familiarità con un'altra shell Unix che si preferisce usare, selezionare invece tale shell.
Nella finestra del terminale è possibile scegliere qualsiasi shell installata nel sistema. Ad esempio, è possibile scegliere Git Bash, PowerShell o un'altra shell.
Qui si userà Git Bash, parte di Git per Windows, che semplifica l'esecuzione di comandi Git.
Annotazioni
In Windows, se Git Bash non è elencato come opzione, assicurarsi di aver installato Git e quindi riavviare Visual Studio Code.
Eseguire il
cdcomando per passare alla directory in cui si vuole lavorare. Scegliere la home directory (~) o una directory diversa, se necessario.cd ~
Configurazione di Git
Se non si ha familiarità con Git e GitHub, eseguire prima alcuni comandi per associare l'identità a Git ed eseguire l'autenticazione con GitHub. Per altre informazioni, vedere Configurare Git.
Come minimo, è necessario completare i passaggi seguenti. Eseguire i comandi dal terminale integrato.
- Impostare il nome utente.
- Imposta l'indirizzo email per i commit
- Memorizzare nella cache la password di GitHub.
Annotazioni
Se si usa già l'autenticazione a due fattori con GitHub, creare un token di accesso personale. Quando richiesto, usare il token al posto della password.
Considerare il token di accesso come una password. e conservarlo in un luogo sicuro.
Configurare il progetto in Visual Studio Code
Nel percorso di apprendimento Compilare applicazioni con Azure DevOps è stato creato un fork e quindi clonato un repository Git. Il repository contiene il codice sorgente del sito web Space Game. Il fork è stato connesso ai progetti in Azure DevOps in modo che la compilazione venga eseguita quando si esegue il push delle modifiche in GitHub.
Importante
In questo percorso di apprendimento si passa a un repository Git diverso, mslearn-tailspin-spacegame-web-deploy. Quando hai eseguito il modello per configurare il tuo progetto Azure DevOps, il processo ha creato automaticamente un fork del repository per te.
In questa parte si clona il fork in locale in modo da poter modificare e compilare la configurazione della pipeline.
Clonare il fork in locale
È ora disponibile una copia del progetto Web Space Game nell'account GitHub. A questo punto si scarica o si clona una copia nel computer in modo da poterla usare.
Un clone, analogamente a un fork, è una copia di un repository. Quando si clona un repository, è possibile apportare modifiche, verificare che funzionino come previsto e quindi caricare tali modifiche in GitHub. È anche possibile sincronizzare la copia locale con le modifiche apportate da altri utenti autenticati alla copia gitHub del repository.
Per clonare il progetto Web Space Game nel computer:
Vai al fork del progetto web Space Game (mslearn-tailspin-spacegame-web-deploy) su GitHub.
Seleziona Codice. Nella scheda HTTPS selezionare quindi il pulsante accanto all'URL visualizzato per copiare l'URL negli Appunti.
In Visual Studio Code passare alla finestra del terminale.
Nel terminale passare alla directory in cui si vuole lavorare. Scegliere la home directory (
~) o una directory diversa, se necessario.cd ~Eseguire il comando
git clone. Sostituire l'URL visualizzato in questa sezione con il contenuto degli Appunti:git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-deploy.gitPassare alla directory
mslearn-tailspin-spacegame-web-deploy. Si tratta della directory radice del repository.cd mslearn-tailspin-spacegame-web-deploy
Impostare il repository remoto upstream
Un repository Git remoto è un repository Git in cui i membri del team collaborano (ad esempio un repository in GitHub). Qui sono elencati i repository remoti ed è possibile aggiungerne uno che punta alla copia Microsoft del repository in modo che sia possibile ottenere il codice di esempio più recente.
Esegui questo comando
git remoteper elencare i remoti:git remote -vPuoi vedere che hai accesso sia al fetch (download) che al push (upload) sul tuo repository.
origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch) origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push)Origin specifica il repository in GitHub. Quando si crea un fork del codice da un altro repository, il repository remoto originale (quello da cui è stato eseguito il fork) viene spesso denominato upstream.
Eseguire il comando
git remote addper creare un repository remoto denominato upstream che punta al repository Microsoft:git remote add upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.gitEseguire
git remotedi nuovo per visualizzare le modifiche:git remote -vSi vede che si dispone ancora sia dell'accesso per il recupero (download) sia dell'accesso per il caricamento (push) al proprio repository. È ora anche possibile recuperare l'accesso al repository Microsoft:
origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (fetch) origin https://github.com/username/mslearn-tailspin-spacegame-web-deploy.git (push) upstream https://github.com/MicrosoftDocs/mslearn-tailspin-spacegame-web-deploy.git (fetch)
Aprire il progetto in Esplora file
In Visual Studio Code, la finestra del terminale punta alla directory radice del progetto Web di Space Game. Ora si aprirà il progetto da Esplora file per poterne visualizzare la struttura e usare i file.
Il modo più semplice per aprire il progetto è riaprire Visual Studio Code nella directory corrente. A questo scopo, eseguire il comando seguente nel terminale integrato:
code -r .In Esplora file vengono visualizzati la directory e l'albero dei file.
Riaprire il terminale integrato. Il terminale posiziona l'utente alla radice del progetto Web.
Se il comando code non riesce, è necessario aggiungere Visual Studio Code al percorso di sistema. A questo scopo:
- In Visual Studio Code, selezionare F1 o selezionare Visualizza>Palette comandi per accedere alla palette comandi.
- Nella palette dei comandi, inserisci Comando shell: Installa il comando 'code' in PATH.
- Ripetere la procedura precedente per aprire il progetto in Esplora file.
È ora possibile usare il codice sorgente di Space Game e la configurazione di Azure Pipelines dall'ambiente di sviluppo locale.
Creare gli ambienti del servizio app di Azure
In questo caso si creeranno gli ambienti che definiscono le fasi della pipeline. Si creerà un'istanza del servizio app che corrisponde a ogni fase: Sviluppo, Test e Gestione temporanea.
Nei moduli precedenti è stata usata l'interfaccia della riga di comando di Azure per creare le istanze del servizio app. In questo caso si eseguirà la stessa operazione.
Importante
Tenere presente che è necessaria la propria sottoscrizione di Azure per completare gli esercizi in questo modulo.
Visualizzare Cloud Shell tramite il portale di Azure
- Passare al portale di Azure ed eseguire l'accesso.
- Sulla barra dei menu selezionare Cloud Shell. Quando viene chiesto, selezionare l'esperienza Bash.
Selezionare un'area di Azure
Qui si specifica l'area predefinita o la posizione geografica in cui creare le risorse di Azure.
In Cloud Shell eseguire il comando seguente
az account list-locationsper elencare le aree disponibili nella sottoscrizione di Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output tableNella colonna Nome nell'output, scegliere una regione vicina a te. Ad esempio, scegliere eastasia o westus2.
Eseguire
az configureper impostare l'area predefinita. Sostituire <REGION> con il nome dell'area scelta.az configure --defaults location=<REGION>Ecco un esempio che imposta westus2 come area predefinita:
az configure --defaults location=westus2
Creare le istanze del servizio app
In questo caso si creeranno le istanze del servizio app per le tre fasi in cui si distribuirà: Sviluppo, Test e Gestione temporanea.
Annotazioni
A scopo di apprendimento, usare le impostazioni di rete predefinite. Queste impostazioni rendono il sito accessibile da Internet. In pratica, è possibile configurare una rete virtuale di Azure che inserisce il sito Web in una rete che non è instradabile da Internet ed è accessibile solo al team. In un secondo momento, quando si è pronti, è possibile riconfigurare la rete per rendere disponibile il sito Web agli utenti.
In Cloud Shell generare un numero casuale che rende univoco il nome di dominio dell'app Web.
webappsuffix=$RANDOMEseguire il comando seguente
az group createper creare un gruppo di risorse denominato tailspin-space-game-rg.az group create --name tailspin-space-game-rgEseguire il comando seguente
az appservice plan createper creare un piano di servizio app denominato tailspin-space-game-asp.az appservice plan create \ --name tailspin-space-game-asp \ --resource-group tailspin-space-game-rg \ --sku B1 \ --is-linuxL'argomento
--skuspecifica il piano B1 , che viene eseguito nel livello Basic . L'argomento--is-linuxspecifica di usare ruoli di lavoro Linux.Importante
Se lo SKU B1 non è disponibile come parte della sottoscrizione di Azure, scegliere un piano diverso, ad esempio S1 (Standard).
Eseguire i comandi seguenti
az webapp createper creare le tre istanze del servizio app, una per ogni ambiente di sviluppo, test e gestione temporanea .az webapp create \ --name tailspin-space-game-web-dev-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0" az webapp create \ --name tailspin-space-game-web-test-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0" az webapp create \ --name tailspin-space-game-web-staging-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNET|6.0"Ai fini dell'apprendimento, in questo caso si applica lo stesso piano di servizio app , B1 Basic, a ogni istanza del servizio app. In pratica, è necessario assegnare un piano che corrisponda al carico di lavoro previsto.
Eseguire il comando seguente
az webapp listper elencare il nome host e lo stato di ogni istanza del servizio app.az webapp list \ --resource-group tailspin-space-game-rg \ --query "[].{hostName: defaultHostName, state: state}" \ --output tablePrendere nota del nome host per ogni servizio in esecuzione. In seguito, avrai bisogno di questi nomi host quando verificherai il tuo lavoro. Ecco un esempio:
HostName State ------------------------------------------------------- ------- tailspin-space-game-web-dev-21017.azurewebsites.net Running tailspin-space-game-web-test-21017.azurewebsites.net Running tailspin-space-game-web-staging-21017.azurewebsites.net RunningCome passaggio facoltativo, passare a uno o più nomi elencati per verificare che siano in esecuzione e che venga visualizzata la home page predefinita.
Verrà visualizzata questa pagina:
Importante
La pagina Pulisci l'ambiente Azure DevOps in questo modulo contiene importanti passaggi di pulizia. La pulizia garantisce che non vengano addebitati costi per le risorse di Azure dopo aver completato questo modulo. Assicurarsi di eseguire la procedura di pulizia anche se non si completa questo modulo.
Creare variabili nelle pipeline di Azure Pipelines
In Eseguire test funzionali in Azure Pipelines è stata aggiunta una variabile per ognuna delle istanze del servizio app. Le istanze corrispondono alle fasi di sviluppo, test e gestione temporanea nella pipeline. In questo caso, si seguirà lo stesso modello.
Ogni fase della configurazione della pipeline usa le variabili per identificare l'istanza del servizio app in cui eseguire la distribuzione.
Per aggiungere le variabili:
In Azure DevOps, vai al progetto Space Game - web - Test non funzionali.
In Pipeline selezionare Libreria.
Selezionare + Gruppo di variabili.
Per il nome del gruppo di variabili, in Proprietà immettere Release.
In Variabili selezionare + Aggiungi.
Per il nome della variabile immettere WebAppNameDev. Come valore, immettere il nome dell'istanza del Servizio App corrispondente all'ambiente di sviluppo ad esempio tailspin-space-game-web-dev-1234.
Ripetere i passaggi 5 e 6 due volte più per creare variabili per gli ambienti di test e gestione temporanea , come illustrato in questa tabella:
Nome variabile Valore di esempio WebAppNameTest tailspin-space-game-web-test-1234 WebAppNameStaging tailspin-space-game-web-staging-1234 Assicurati di sostituire ogni valore di esempio con l'istanza di App Service che corrisponde al tuo ambiente.
Importante
Assicurarsi di impostare il nome dell'istanza di Servizio app, non il nome host. In questo esempio si immette tailspin-space-game-web-dev-1234 e non tailspin-space-game-web-dev-1234.azurewebsites.net.
Per salvare la variabile nella pipeline, selezionare Salva nella parte superiore della pagina.
Il gruppo di variabili è simile al seguente:
Creare gli ambienti di sviluppo, test e pre-produzione
In Eseguire test funzionali in Azure Pipelines sono stati creati ambienti per gli ambienti di sviluppo, test e gestione temporanea . In questo caso, si ripeterà il processo.
Per creare gli ambienti di sviluppo, test e gestione temporanea :
In Azure Pipelines selezionare Ambienti.
Per creare l'ambiente di sviluppo :
- Selezionare Crea ambiente.
- In Nome immettere dev.
- Lasciare i valori predefiniti negli altri campi.
- Scegliere Crea.
Per creare l'ambiente di test :
- Tornare alla pagina Ambienti .
- Selezionare Nuovo ambiente.
- In Nome immettere test.
- Scegliere Crea.
Per creare l'ambiente di staging:
- Tornare alla pagina Ambienti .
- Selezionare Nuovo ambiente.
- In Nome inserisci staging.
- Scegliere Crea.
Creare una connessione al servizio
In questo caso si creerà una connessione al servizio che consente ad Azure Pipelines di accedere alla sottoscrizione di Azure. Azure Pipelines usa questa connessione al servizio per distribuire il sito Web nel servizio app. È stata creata una connessione al servizio simile nel modulo precedente.
Importante
Assicurarsi di aver eseguito l'accesso sia al portale di Azure che ad Azure DevOps con lo stesso account Microsoft.
In Azure DevOps, vai al progetto Space Game - web - Test non funzionali.
Nell'angolo inferiore della pagina selezionare Impostazioni progetto.
In Pipeline selezionare Connessioni al servizio.
Selezionare Nuova connessione al servizio, quindi scegliere Azure Resource Manager e quindi avanti.
Nella parte superiore della pagina, selezionare Entità servizio (automatica). Quindi selezionare Avanti.
Compilare i campi seguenti:
Campo Valore Livello di scopo Abbonamento Abbonamento la propria sottoscrizione di Azure Gruppo di risorse tailspin-space-game-rg Nome della connessione al servizio Resource Manager - Tailspin - Space Game Durante il processo, potrebbe essere richiesto di accedere all'account Microsoft.
Assicurarsi che l'opzione Concedi l'autorizzazione di accesso a tutte le pipeline sia selezionata.
Selezionare Salva.
Azure DevOps esegue una connessione di test per verificare che possa connettersi alla sottoscrizione di Azure. Se Azure DevOps non riesce a connettersi, è possibile accedere una seconda volta.