Condividi tramite


Creare e usare ambienti di destinazione

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Questo articolo illustra come creare e usare gli ambienti Azure Pipelines di destinazione. Un ambiente è una raccolta di risorse che è possibile usare come destinazione con le distribuzioni da una pipeline.

Un ambiente rappresenta una destinazione logica in cui la pipeline distribuisce il software. I nomi di ambiente tipici sono 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 processi all'interno dell'esecuzione della pipeline destinati a un ambiente. È anche possibile visualizzare i commit e gli elementi di lavoro appena distribuiti nell'ambiente. La tracciabilità consente anche di tenere traccia se un commit di modifica del codice o un elemento di lavoro di correzione di bug/correzione di bug ha raggiunto un ambiente.

  • Integrità risorse di diagnostica. È 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

Per aggiungere un ambiente, sono necessari i prerequisiti seguenti:

Crea un ambiente

Per creare il primo ambiente:

  1. Accedere all'organizzazione di Azure DevOps all'indirizzo https://dev.azure.com/{yourorganization} e aprire il progetto.

  2. Selezionare Ambienti>pipeline>Crea ambiente.

    Screenshot che mostra Ambienti.

  3. 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

È possibile creare un ambiente vuoto e farvi riferimento dai processi di distribuzione in modo da poter registrare la cronologia di distribuzione nell'ambiente.

È 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 è una raccolta di 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 nel myVM computer 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 passa automaticamente all'attività dall'input environment.resource .

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       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 del servizio Azure Kubernetes 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 sugli ambienti. I controlli di approvazione sono disponibili per i proprietari delle risorse per 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 del 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.

Screenshot che mostra gli ambienti nei dettagli dell'esecuzione.

Nota

Se si usa un cluster privato del servizio Azure Kubernetes servizio Azure Kubernetes, 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 processi da tutte le pipeline destinate a un ambiente specifico. Ad esempio, due microservizi ognuno con una propria pipeline può essere distribuito 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.

    Screenshot che mostra l'elenco della cronologia di distribuzione.

  • Per eseguire il drill-down nei dettagli del processo, selezionare le schede Modifiche ed elementi di lavoro in una pagina di distribuzione. Le schede mostrano 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 a tale punto e le liste seguenti includono solo le modifiche per tale processo. Se più commit sono associati allo stesso processo, nella scheda Modifiche sono presenti più risultati.

    Screenshot dei commit nella cronologia di distribuzione.

  • Se più elementi di lavoro sono associati allo stesso processo, nella scheda Elementi di lavoro sono presenti più risultati.

    Screenshot degli elementi di lavoro nella cronologia di distribuzione.

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 ed eseguire l'override dei ruoli per l'ambiente.

Ruolo Descrizione
Creator Ruolo globale, disponibile dall'opzione di sicurezza dell'hub degli ambienti. I membri di questo ruolo possono creare l'ambiente nel progetto. I collaboratori 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 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
Creator Ruolo globale, disponibile dall'opzione di sicurezza dell'hub degli ambienti. I membri di questo ruolo possono creare l'ambiente nel progetto. I collaboratori 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 le pipeline o selezionate 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é appare un errore che indica che non è possibile trovare un ambiente?

Se viene visualizzato il messaggio Processo XXXX: Ambiente XXXX non trovato. L'ambiente non esiste o non è stato autorizzato per l'uso. 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.

  • Azure Pipelines potrebbe non avere informazioni sull'utente che crea l'ambiente.

    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:

    • Usare la creazione guidata della pipeline YAML nell'esperienza Web di Azure Pipelines e fare riferimento a un ambiente che non è ancora 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 non ha esito positivo.

    • Aggiornare il file YAML usando un altro editor di codice esterno.
    • Aggiungere un riferimento a un ambiente che non esiste, provocando così una pipeline di integrazione manuale o continua da attivare.

    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.