Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Questo articolo illustra come creare e indirizzare gli ambienti Azure Pipelines. Un ambiente è un gruppo di risorse su cui è possibile eseguire distribuzioni da una pipeline.
Un ambiente rappresenta una destinazione logica in cui la pipeline distribuisce il software. I nomi di ambiente comuni includono Dev, Test, QA, Staging e Production.
Nota
Gli ambienti Azure DevOps non sono disponibili nelle pipeline classiche. Per le pipeline classiche, i gruppi di distribuzione offrono funzionalità simili.
Gli ambienti offrono i vantaggi seguenti:
Cronologia della distribuzione. I dettagli relativi al nome e all'esecuzione della pipeline vengono registrati per le distribuzioni in un ambiente e nelle relative risorse. Nel contesto di più pipeline destinate allo stesso ambiente o alla stessa risorsa, è possibile usare la cronologia di distribuzione di un ambiente per identificare l'origine delle modifiche.
Tracciabilità dei commit e degli elementi di lavoro. È possibile visualizzare i lavori all'interno dell'esecuzione della pipeline che hanno come obiettivo un ambiente. È anche possibile visualizzare i commit e gli elementi di lavoro appena distribuiti nell'ambiente. La tracciabilità consente anche di tenere traccia di un commit di modifica del codice o di un elemento di lavoro di una funzionalità/correzione di bug che ha raggiunto un ambiente.
Integrità della salute delle risorse diagnostiche. È possibile verificare se l'applicazione funziona allo stato desiderato.
Protezione. È possibile proteggere gli ambienti specificando quali utenti e pipeline sono autorizzati a definire come destinazione un ambiente.
Un ambiente è un raggruppamento di risorse in cui le risorse stesse rappresentano le destinazioni di distribuzione effettive. Gli ambienti Azure Pipelines supportano attualmente i tipi di risorse Kubernetes e macchina virtuale.
Se una pipeline YAML fa riferimento a un ambiente che non esiste:
Quando l'utente che esegue l'operazione è noto e le autorizzazioni possono essere assegnate, Azure Pipelines crea automaticamente l'ambiente.
Quando Azure Pipelines non dispone di informazioni sull'utente che esegue l'operazione, ad esempio in un aggiornamento YAML da un editor di codice esterno, la pipeline ha esito negativo.
Prerequisiti
Categoria | Requisiti |
---|---|
Azure DevOps | - Un progetto Azure DevOps. - La possibilità di eseguire pipeline su agenti ospitati da Microsoft. È possibile acquistare un incarico parallelo oppure richiedere un piano gratuito. - Conoscenza di base di YAML e Azure Pipelines. Per altre informazioni, vedere Creare la prima pipeline. Autorizzazioni - : Per aggiungere ambienti, il ruolo Creator per gli ambienti del progetto. Per impostazione predefinita, anche i membri dei gruppi Amministratori compilazione, Amministratori versione e Amministratori progetto possono creare ambienti. |
Azzurro | Una sottoscrizione di Azure. |
Crea un ambiente
Per creare il primo ambiente:
Accedere all'organizzazione di Azure DevOps all'indirizzo
https://dev.azure.com/{yourorganization}
e aprire il progetto.Selezionare Pipeline>Ambienti>Crea ambiente.
Screenshot che mostra Ambienti.
Immettere le informazioni per l'ambiente e quindi selezionare Crea. È possibile aggiungere risorse a un ambiente esistente in un secondo momento.
Screenshot della creazione di un nuovo ambiente.
Suggerimento
Creare un ambiente vuoto e farvi riferimento dai processi di distribuzione per registrare la cronologia di distribuzione nell'ambiente.
Per creare e gestire ambienti a livello di codice, usare l'API REST azure DevOps Environments.
È possibile usare Azure Pipelines per la distribuzione in ambienti. Per altre informazioni, vedere Creare e distribuire in servizio Azure Kubernetes con Azure Pipelines.
Impostare come destinazione un ambiente da un processo di distribuzione
Un processo di distribuzione contiene i passaggi eseguiti in sequenza. È possibile usare un processo di distribuzione per specificare come destinazione un intero gruppo di risorse di ambiente, come illustrato nel frammento di codice YAML di esempio seguente. La pipeline viene eseguita sulla macchina myVM
perché è specificato il nome della risorsa.
- stage: deploy
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-latest'
# creates an environment if it doesn't exist
environment:
name: 'smarthotel-dev'
resourceName: myVM
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo Hello world
Specificare come destinazione una risorsa di ambiente da un processo di distribuzione
È possibile definire l'ambito della destinazione di distribuzione a una determinata risorsa all'interno dell'ambiente, in modo da poter registrare la cronologia di distribuzione nella risorsa specifica. I passaggi del processo di distribuzione ereditano automaticamente i dettagli della connessione al servizio dalla risorsa di destinazione del processo di distribuzione.
Nell'esempio seguente, il valore per l'oggetto kubernetesServiceConnection
viene trasferito automaticamente dall'input environment.resource
all'attività.
environment:
name: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@1
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: $(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: $(imagePullSecret)
containers: $(containerRegistry)/$(imageRepository):$(tag)
Nota
Se si usa un cluster AKS privato, assicurarsi di essere connessi alla rete virtuale del cluster perché l'endpoint del server API non viene esposto tramite un indirizzo IP pubblico.
Azure Pipelines consiglia di configurare un agente self-hosted all'interno di una rete virtuale che abbia accesso alla rete virtuale del cluster. Per informazioni dettagliate, vedere Opzioni per la connessione al cluster privato.
Usare controlli di approvazione manuali
Per controllare le distribuzioni in ambienti di produzione, Azure Pipelines supporta controlli di approvazione manuali. Questi controlli consentono ai proprietari delle risorse di controllare quando una fase in una pipeline utilizza la risorsa. I proprietari delle risorse possono definire approvazioni e controlli che devono essere soddisfatti prima che una fase che utilizza tale risorsa possa iniziare.
I ruoli Creator, Administrator, e User dell'ambiente, ma non il ruolo Lettore, possono gestire le approvazioni e i controlli. In qualità di proprietario dell'ambiente, è possibile controllare manualmente quando una fase deve essere eseguita usando i controlli di approvazione. Per altre informazioni, vedere Definire le approvazioni e i controlli.
Visualizzare gli ambienti nei dettagli dell'esecuzione
Nella scheda Ambienti dei dettagli dell'esecuzione della pipeline è possibile visualizzare tutti gli ambienti interessati dai processi di distribuzione di un'esecuzione della pipeline.
Nota
Se si sta utilizzando un cluster privato del servizio Azure Kubernetes (AKS), la scheda Ambienti non è disponibile.
Visualizza cronologia di distribuzione
È possibile selezionare la scheda Distribuzioni nella sezione Ambienti di Azure Pipelines per visualizzare la cronologia di distribuzione.
Visualizzare i lavori da tutte le pipeline destinate a un ambiente specifico. Ad esempio, due microservizi, ciascuno con la propria pipeline, possono essere distribuiti nello stesso ambiente. La cronologia della distribuzione consente di identificare tutte le pipeline che influiscono sull'ambiente e di visualizzare anche la sequenza di distribuzioni da ogni pipeline.
Per approfondire i dettagli del processo, selezionare le schede Modifiche e scheda Elementi di lavoro nella pagina di distribuzione. Le schede visualizzano elenchi di commit ed elementi di lavoro distribuiti nell'ambiente. Ogni elemento di elenco rappresenta nuovi elementi nella distribuzione.
Nella scheda Modifiche la prima voce include tutti i commit fino a quel momento e le liste seguenti includono solo le modifiche per tale attività. Se più commit sono associati allo stesso processo, nella scheda Modifiche sono presenti più risultati.
Se più elementi di lavoro sono associati allo stesso processo, nella scheda Elementi di lavoro sono presenti più risultati.
Sicurezza
È possibile proteggere gli ambienti impostando le autorizzazioni utente e le autorizzazioni della pipeline.
Autorizzazioni utenti
È possibile controllare chi può creare, visualizzare, usare e gestire gli ambienti con autorizzazioni utente. Esistono quattro ruoli: Creator con ambito di tutti gli ambienti, Lettore, Utente e Amministratore.
Per aggiungere un utente usando il pannello Autorizzazioni utente di un ambiente, passare all'ambiente specifico da autorizzare, selezionare l'icona Altre azioni e selezionare Sicurezza.
Nel pannello Autorizzazioni utente della pagina Sicurezza selezionare Aggiungi e quindi selezionare un utente o un gruppo e un ruolo appropriato.
Nel pannello Autorizzazioni utente, è anche possibile impostare le autorizzazioni ereditate e sovrascrivere i ruoli per il tuo ambiente.
Ruolo | Descrizione |
---|---|
Creatore | Ruolo globale, disponibile tramite l'opzione di sicurezza dell'hub degli ambienti. I membri di questo ruolo possono creare l'ambiente nel progetto. I contributori vengono aggiunti come membri per impostazione predefinita. Obbligatorio per attivare una pipeline YAML quando l'ambiente non esiste già. |
Lettore | I membri di questo ruolo possono visualizzare l'ambiente. |
Utente | I membri di questo ruolo possono usare l'ambiente durante la creazione o la modifica di pipeline YAML. |
Amministratore | I membri di questo ruolo possono amministrare le autorizzazioni, creare, gestire, visualizzare e usare gli ambienti. Per un particolare ambiente, il creatore viene automaticamente aggiunto come amministratore per impostazione predefinita. Gli amministratori possono anche aprire l'accesso a un ambiente a tutte le pipeline. |
Importante
Quando si crea un ambiente, solo l'autore ha il ruolo di amministratore.
Ruolo | Descrizione |
---|---|
Creatore | Ruolo globale, disponibile tramite l'opzione di sicurezza dell'hub degli ambienti. I membri di questo ruolo possono creare l'ambiente nel progetto. I contributori vengono aggiunti come membri per impostazione predefinita. Obbligatorio per attivare una pipeline YAML quando l'ambiente non esiste già. |
Lettore | I membri di questo ruolo possono visualizzare l'ambiente. |
Utente | I membri di questo ruolo possono usare l'ambiente durante la creazione o la modifica di pipeline YAML. |
Amministratore | Oltre a usare l'ambiente, i membri di questo ruolo possono gestire l'appartenenza a tutti gli altri ruoli per l'ambiente. I creatori vengono aggiunti come membri per impostazione predefinita. |
Autorizzazioni della pipeline
Usare il pannello Autorizzazioni pipeline della pagina Sicurezza per autorizzare tutte o solo alcune pipeline per la distribuzione nell'ambiente.
Per rimuovere l'accesso aperto nell'ambiente o nella risorsa, selezionare Limita l'autorizzazione in Autorizzazioni pipeline.
Quando le autorizzazioni sono limitate, è possibile consentire la distribuzione di pipeline specifiche nell'ambiente o in una risorsa specifica. Selezionare + e scegliere dall'elenco delle pipeline da consentire.
Domande frequenti
Perché viene visualizzato un messaggio di errore quando si tenta di creare un ambiente?
Se viene visualizzato il messaggio Accesso negato: {Utente} deve disporre delle autorizzazioni di creazione per eseguire l'azione, passare a Impostazioni>organizzazione Utenti per verificare se si ha il ruolo Stakeholder. Il ruolo Stakeholder non può creare ambienti perché gli stakeholder non hanno accesso al repository.
Modificare il livello di accesso e verificare se è possibile creare ambienti. Per altre informazioni, vedere Domande frequenti sulla gestione delle autorizzazioni e degli utenti.
Perché ricevo un errore che indica che un ambiente non può essere trovato?
Se viene visualizzato il messaggio Lavoro XXXX: Ambiente XXXX non trovato. L'ambiente non esiste o non è stato autorizzato per l'uso. e esistono diversi motivi possibili per l'errore.
I parametri di runtime non funzionano durante la creazione di ambienti, perché i parametri vengono espansi solo in fase di esecuzione. È possibile usare le variabili per creare un ambiente o usare templateContext per passare le proprietà ai modelli.
Quando si fa riferimento a un ambiente che non esiste in un file della pipeline YAML, Azure Pipelines crea automaticamente l'ambiente nei seguenti casi:
- Utilizzare la procedura guidata di creazione della pipeline YAML nell'interfaccia web di Azure Pipelines e riferirsi a un ambiente che non è ancora stato creato.
- Aggiornare il file YAML usando l'editor Web di Azure Pipelines e salvare la pipeline dopo aver aggiunto il riferimento all'ambiente.
Nei casi seguenti Azure Pipelines non dispone di informazioni sull'utente che crea l'ambiente, quindi la pipeline ha esito negativo:
- Aggiornare il file YAML usando un altro editor di codice esterno.
- Aggiungi un riferimento a un ambiente che non esiste e quindi attiva una pipeline di integrazione manuale o continua.
In precedenza, Azure Pipelines ha gestito questi casi aggiungendo tutti i collaboratori del progetto al ruolo di amministratore dell'ambiente. Qualsiasi membro del progetto potrebbe quindi modificare queste autorizzazioni e impedire ad altri utenti di accedere all'ambiente. Per evitare questo risultato, Azure Pipelines blocca questi processi.