Esercizio: Configurare l'ambiente Azure DevOps
In questa sezione è necessario assicurarsi che l'organizzazione Azure DevOps sia configurata per completare il resto del modulo. Si creano anche gli ambienti del servizio app di Azure che verranno distribuiti.
Per eseguire queste attività, è necessario:
- Aggiungere un utente per assicurarsi che Azure DevOps possa connettersi alla sottoscrizione di Azure.
- Configurare un progetto Azure DevOps per questo modulo.
- Spostare l'elemento di lavoro per questo modulo in Azure Boards 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 di pipeline che definiscono i nomi degli ambienti di App Service.
- 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 lavorare con Azure DevOps, si userà Azure DevOps qui per distribuire le risorse presenti nella sottoscrizione di Azure. Per semplificare il processo, accedere sia alla sottoscrizione di Azure che all'organizzazione Azure DevOps con lo stesso account Microsoft.
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 questo caso, assicurarsi che l'organizzazione di Azure DevOps sia configurata per completare il resto di questo modulo. Per eseguire questa attività, eseguire un modello che crea un progetto in Azure DevOps.
I moduli in questo percorso di apprendimento formano una progressione mentre segui il team Tailspin Web nel 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 32 per Esegui test 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 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
Passare l'elemento di lavoro allo stato In corso
In questa parte si assegna un elemento di lavoro in Azure Boards correlato a questo modulo. È anche possibile spostare l'elemento di lavoro nello stato In corso . In pratica, il team creerà elementi di lavoro all'inizio di ogni sprint o iterazione di lavoro.
Con questo metodo di assegnazione è disponibile un elenco di controllo da cui lavorare. Offre al team visibilità su ciò che si sta lavorando e su quanto lavoro viene lasciato. Aiuta anche il team a imporre limiti al lavoro in corso (WIP) per evitare di assumere troppe attività contemporaneamente.
Ricorda che il team ha concordato su queste questioni principali per lo sprint corrente.
Annotazioni
All'interno di un'organizzazione Azure DevOps gli elementi di lavoro sono numerati in modo sequenziale. Nel progetto il numero per ogni elemento di lavoro potrebbe non corrispondere a quello visualizzato qui.
Qui si sposta il terzo elemento, Automatizzare i test di qualità, nella colonna In corso . Assegnare quindi l'elemento di lavoro a sé stessi. Automatizzare i test di qualità riguarda l'automazione dei test dell'interfaccia utente per il sito web Space Game.
Per configurare l'elemento di lavoro:
Da Azure DevOps passare a Boards e quindi selezionare Boards dal menu.
Nell'elemento di lavoro Automatizzare i test di qualità selezionare la freccia giù nella parte inferiore della scheda, quindi assegnare l'elemento di lavoro a se stessi.
Spostare l'elemento di lavoro dalla colonna Attività alla colonna In corso .
Al termine di questo modulo, dopo aver completato l'attività, la scheda verrà spostata nella colonna Fine .
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 di 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 eseguito automaticamente un fork del repository.
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 tuo 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 questo
git remote addcomando per creare un 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 noterà che sono ancora disponibili sia l'accesso di recupero (download) che l'accesso push (caricamento) al 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 oppure Visualizza>Paletta comandi per accedere alla paletta comandi.
- Nella palette dei comandi, immettere 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 creano gli ambienti che definiscono le fasi della pipeline. Si crea un'istanza del servizio app che corrisponde a ogni fase: Sviluppo, Test e Gestione temporanea.
Nel modulo Creare una pipeline a più fasi usando Azure Pipelines è stata usata l'interfaccia della riga di comando di Azure per creare le istanze del servizio app. Qui si eseguirà la stessa operazione.
Importante
Per completare gli esercizi in questo modulo, è necessaria una sottoscrizione di Azure personalizzata.
Visualizzare Cloud Shell tramite il portale di Azure
- Passare al portale di Azure ed eseguire l'accesso.
- Nella barra dei menu selezionare Cloud Shell. Quando vi viene richiesto, selezionate l'esperienza Bash.
Selezionare un'area di Azure
In questo caso si specifica l'area predefinita o la posizione geografica in cui creare le risorse di Azure.
Da 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 tableDalla colonna Nome nell'output, scegli un'area che sia 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 creano le istanze del servizio app per le tre fasi da distribuire in: Sviluppo, Test e Gestione temporanea.
Annotazioni
Ai fini dell'apprendimento, qui si usano 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 su Internet e accessibile solo all'utente e al team. In un secondo momento, quando si è pronti, è possibile riconfigurare la rete per rendere disponibile il sito Web agli utenti.
Da 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 fa 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 "DOTNETCORE|8.0" az webapp create \ --name tailspin-space-game-web-test-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNETCORE|8.0" az webapp create \ --name tailspin-space-game-web-staging-$webappsuffix \ --resource-group tailspin-space-game-rg \ --plan tailspin-space-game-asp \ --runtime "DOTNETCORE|8.0"Ai fini dell'apprendimento, si applica lo stesso piano di servizio app (B1 Basic) a ogni istanza del servizio app qui. 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. Ti serviranno questi nomi host più avanti 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, copiare e incollare uno o più nomi nel browser per verificare che siano in esecuzione e che venga visualizzata la home page predefinita.
Si dovrebbe ottenere una pagina simile alla seguente:
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
Nella pipeline Creare una pipeline a più fasi usando Azure Pipelines è stata aggiunta una variabile per ognuna delle istanze del servizio app, che corrispondono alle fasi di sviluppo, test e gestione temporanea nella pipeline. In questa sezione, si eseguirà la stessa operazione.
Ogni fase della configurazione della pipeline usa queste variabili per identificare l'istanza del servizio app in cui eseguire la distribuzione.
Per aggiungere le variabili:
In Azure DevOps passare al progetto Space Game - Web - Test funzionali .
In Pipeline selezionare Libreria.
Selezionare + Gruppo di variabili.
In Proprietà immettere Release per il nome del gruppo di variabili.
In Variabili selezionare + Aggiungi.
Per il nome della variabile immettere WebAppNameDev. Per il valore immettere il nome dell'istanza di Servizio app corrispondente all'ambiente Dev, 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 Assicurarsi di sostituire ogni valore di esempio con l'istanza di App Service corrispondente al proprio ambiente.
Importante
Impostare il nome dell'istanza del 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.
Nella parte superiore della pagina selezionare Salva per salvare la variabile nella pipeline.
Il gruppo di variabili sarà simile al seguente:
Creare gli ambienti di sviluppo, test e pre-produzione
In Creare una pipeline a più fasi usando Azure Pipelines sono stati creati ambienti per gli ambienti di sviluppo, test e gestione temporanea . In questo caso si ripete il processo. Questa volta, tuttavia, si omettono criteri aggiuntivi, ad esempio il requisito per l'approvazione umana per promuovere le modifiche da una fase a quella successiva.
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.
- Selezionare Crea.
Per creare l'ambiente di test :
- Tornare alla pagina Ambienti .
- Selezionare Nuovo ambiente.
- In Nome immettere test.
- Selezionare Crea.
Per creare l'ambiente di staging:
- Tornare alla pagina Ambienti .
- Selezionare Nuovo ambiente.
- In Nome immettere staging.
- Selezionare Crea.
Creare una connessione al servizio
In questo caso si crea 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 passare al progetto Space Game - Web - Test funzionali .
Nell'angolo inferiore della pagina selezionare Impostazioni progetto.
In Pipeline selezionare Connessioni al servizio.
Selezionare Crea connessione al servizio, quindi scegliere Azure Resource Manager e quindi avanti.
Nella parte superiore della pagina, Registrazione app (automatica).
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.