Condividi tramite


Guida introduttiva: Creare un pool DevOps gestito con l'interfaccia della riga di comando di Azure

Questo articolo illustra come creare un pool DevOps gestito usando l'interfaccia della riga di comando di Azure ed eseguirvi una pipeline.

Prerequisiti

Prima di completare i passaggi descritti in questo articolo, è stata configurata la sottoscrizione di Azure e l'organizzazione Azure DevOps per l'uso con i pool devOps gestiti, come descritto nell'articolo Prerequisiti. Questi passaggi devono essere completati una sola volta per ogni sottoscrizione di Azure e l'organizzazione Di Azure DevOps.

Installazione o esecuzione in Azure Cloud Shell

Il modo più semplice per imparare a usare l'interfaccia della riga di comando di Azure consiste nell'eseguire un ambiente Bash in Azure Cloud Shell tramite il browser. Per informazioni su Cloud Shell, vedere Avvio rapido per Bash in Azure Cloud Shell.

Quando si è pronti per installare l'interfaccia della riga di comando di Azure, vedere le istruzioni di installazione per il contenitore Windows, Linux, macOS e Docker.

Controllare la versione eseguendo az --version. Azure Cloud Shell ha sempre la versione più recente dell'interfaccia della riga di comando di Azure preinstallata.

az version

Accedere all'interfaccia della riga di comando di Azure

Aprire un prompt dei comandi (in Windows, usare il prompt dei comandi di Windows o PowerShell) ed eseguire i comandi seguenti. Se si usa Azure Cloud Shell , non è necessario eseguire az login a meno che non si voglia usare un account diverso.

  1. Accedere all'interfaccia della riga di comando di Azure.

    az login
    
  2. Se si dispone di più sottoscrizioni di Azure, impostare la sottoscrizione di Azure predefinita.

    az account set --subscription "My subscription name"
    

    Per ottenere un elenco delle sottoscrizioni, è possibile eseguire il comando seguente.

    az account list -o table
    

    Se si hanno più tenant o si vogliono visualizzare altre informazioni sull'uso della sottoscrizione di Azure tramite l'interfaccia della riga di comando di Azure, vedere Come gestire le sottoscrizioni di Azure con l'interfaccia della riga di comando di Azure.

Definire le variabili di ambiente

  1. Eseguire i comandi seguenti per generare i nomi per le risorse in questa guida introduttiva. In questo esempio viene usata l'area EastUS2 . Sostituire EastUS2 con l'area desiderata.

    export RANDOM_ID="$(openssl rand -hex 3)"
    export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID"
    export REGION=EastUS2
    export POOL_NAME="mdpPool$RANDOM_ID"
    export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID"
    export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
    
  2. Eseguire i comandi seguenti per esaminare i nomi delle risorse.

    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    echo $REGION
    

Creare un gruppo di risorse

  1. Eseguire il comando seguente per creare il gruppo di risorse in modo da contenere le risorse usate in questa guida introduttiva.

    az group create --name $RESOURCE_GROUP_NAME --location $REGION
    

Creare un progetto dev center e dev center

  1. Installare l'estensione dell'interfaccia della riga di comando devcenter di Azure e assicurarsi che venga aggiornata alla versione più recente se è già installata.

    az extension add --name devcenter --upgrade
    
  2. Eseguire i comandi seguenti per creare un progetto dev center e dev center.

    # Create a dev center
    az devcenter admin devcenter create -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION
    
    # Save the id of the newly created dev center
    DEVCID=$( \
        az devcenter admin devcenter show -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    
    # Create a dev center project
    az devcenter admin project create -n $DEV_CENTER_PROJECT_NAME \
        --description "My dev center project." \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION \
        --dev-center-id $DEVCID
    
    # Save the dev center project for use when creating
    # the Managed DevOps Pool
    DEVCPID=$( \
        az devcenter admin project show -n $DEV_CENTER_PROJECT_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    

    Dopo alcuni istanti, l'output indica che il Dev Center è stato creato. L'oggetto id del dev center creato viene salvato in DEVCID e viene usato per creare il progetto dev center.

    {
        "devCenterUri": "https://...",
        "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/devcenters/devCenterName",
        "location": "eastus",
        "name": "devCenterName",
        "provisioningState": "Succeeded",
        "resourceGroup": "resourceGroupName",
        "systemData": { ... },
        "type": "microsoft.devcenter/devcenters"
    }
    

    Dopo alcuni istanti, l'output indica che il progetto dev center è stato creato. L'oggetto id del progetto dev center creato viene salvato in DEVCPID e viene usato durante la creazione del pool DevOps gestito nella sezione successiva.

    {
      "description": "My dev center project.",
      "devCenterId": "...",
      "devCenterUri": "https://...",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/projects/devCenterProjectName",
      "location": "eastus",
      "name": "devCenterProjectName",
      "provisioningState": "Succeeded",
      "resourceGroup": "resourceGroupName",
      "systemData": { ... },
      "type": "microsoft.devcenter/projects"
    }
    

Preparare i file di configurazione del pool DevOps gestito

Il mdp pool create metodo ha diversi parametri che accettano valori JSON che configurano aspetti diversi del pool.

  • agent-profile specifica se il pool è con stato o senza stato e contiene la pianificazione dell'agente di standby. Si tratta di un dizionario con una singola chiave denominata Stateful o Stateless, a seconda della configurazione dell'agente desiderata. Per altre informazioni sulle agent-profile proprietà, vedere Configurare il ridimensionamento.
  • fabric-profile specifica le dimensioni dell'agente, le immagini delle macchine virtuali, il disco del sistema operativo e l'archiviazione collegata. Per altre informazioni sulle proprietà, vedere fabric-profile del pool e Configurare l'archiviazione aggiuntiva.
  • organization-profile specifica le organizzazioni e i progetti Di Azure DevOps che possono usare il pool. Per altre informazioni sulle organization-profile impostazioni, vedere Configurare le impostazioni di sicurezza - Configurare l'accesso all'organizzazione.

Creare i tre file seguenti e salvarli nella cartella in cui si prevede di eseguire i comandi dell'interfaccia della riga di comando di Azure per creare il pool.

  1. Creare un nome di file agent-profile.json con il contenuto seguente.

    {
      "Stateless": {}
    }
    

    Questa configurazione specifica un agente senza stato per il pool.

  2. Creare un file denominato fabric-profile.json con il contenuto seguente.

    {
      "vmss": {
        "sku": {
          "name": "Standard_D2as_v5"
        },
        "images": [
          {
            "aliases": [
              "ubuntu-22.04"
            ],
            "buffer": "*",
            "wellKnownImageName": "ubuntu-22.04/latest"
          }
        ],
        "osProfile": {
          "secretsManagementSettings": {
            "observedCertificates": [],
            "keyExportable": false
          },
          "logonType": "Service"
        },
        "storageProfile": {
          "osDiskStorageAccountType": "Standard",
          "dataDisks": []
        }
      }
    }
    

    Questa configurazione specifica un pool usando l'immagine Standard_D2as_v5, l'immagine ubuntu-22.04di Azure Pipelines e un tipo di disco del sistema operativo Standardsenza disco dati collegato.

  3. Creare un file denominato organization-profile.json con il contenuto seguente. Sostituire <organization-name> con il nome dell'organizzazione Azure DevOps.

    {
      "AzureDevOps": {
        "organizations": [
          {
            "url": "https://dev.azure.com/<organization-name>",
            "projects": [],
            "parallelism": 1
          }
        ],
        "permissionProfile": {
          "kind": "CreatorOnly"
        }
      }
    }
    

    Questa configurazione specifica un pool disponibile per tutti i progetti nell'organizzazione Azure DevOps.

Creare il pool DevOps gestito

  1. Installare l'estensione mdp e assicurarsi che venga aggiornata alla versione più recente, se è già installata.

     az extension add --name mdp --upgrade
    
  2. Creare il pool DevOps gestito eseguendo il comando az mdp pool create seguente.

    az mdp pool create -n $POOL_NAME \
       -g $RESOURCE_GROUP_NAME \
       -l $REGION \
       --devcenter-project-id $DEVCPID \
       --maximum-concurrency 1 \
       --agent-profile agent-profile.json \
       --fabric-profile fabric-profile.json \
       --organization-profile organization-profile.json
    

    Se la sottoscrizione non ha la capacità di configurare il pool con lo SKU di macchina virtuale di Azure desiderato e il numero massimo di agenti, la creazione del pool non riesce con un errore simile al messaggio seguente. Cores needed to complete this request is 2, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97. Per risolvere il problema, vedere Esaminare le quote dei pool DevOps gestiti.

Visualizzare il pool creato nel portale di Azure

  1. Accedere al portale di Azure.

  2. Cercare Pool DevOps gestiti e selezionarlo nelle opzioni disponibili.

  3. Scegliere il nuovo pool DevOps gestito dall'elenco.

  4. Scegliere Visualizzazione JSON per visualizzare il formato JSON della risorsa Pool devOps gestiti.

    Screenshot del pulsante Visualizzazione JSON nella panoramica del pool.

Visualizzare il pool di agenti in Azure DevOps

  1. Passare al portale di Azure DevOps e accedere all'organizzazione di Azure DevOps (https://dev.azure.com/{your-organization}).

  2. Passare alle impostazioni dell'organizzazione di Azure DevOps>.

    Screenshot del pulsante Impostazioni organizzazione.

  3. Passare a Pool di>agenti pipeline e verificare che il nuovo pool sia elencato. Se è stato appena creato il pool devOps gestito, la visualizzazione del nuovo pool nell'elenco degli agenti può richiedere alcuni istanti.

    Screenshot dell'elenco pool di agenti.

Eseguire una pipeline nel nuovo pool

In questo passaggio si creerà una pipeline semplice nel repository predefinito di un progetto Azure DevOps ed eseguirla nel nuovo pool devOps gestito.

  1. Passare al portale di Azure DevOps e accedere all'organizzazione di Azure DevOps (https://dev.azure.com/{your-organization}).

  2. Passare al progetto in cui si vuole eseguire la pipeline e scegliere Pipeline.

    Screenshot dell'elenco Progetti.

  3. Scegliere Nuova pipeline (o Crea pipeline se si tratta della prima pipeline).

    Screenshot del pulsante della nuova pipeline.

  4. Scegliere Azure Repos Git.

    Screenshot dei tipi di repository.

  5. Scegliere il repository con lo stesso nome del progetto. In questo esempio il progetto è denominato FabrikamFiber, quindi si sceglie il repository con lo stesso nome.

    Screenshot del repository FabrikamFiber.

  6. Scegliere Pipeline iniziale.

    Screenshot dell'elenco di modelli di pipeline.

  7. Per impostazione predefinita, il modello di avvio usa un agente Linux ospitato da Microsoft. Modificare il modello di pipeline e modificare la pool sezione in modo che faccia riferimento al pool creato nei passaggi precedenti.

    # Change these two lines as shown in the following example.
     pool:
      vmImage: ubuntu-latest
    

    In questo esempio, i pool di DevOps gestiti sono denominati fabrikam-managed-pool, quindi sostituire vmImage: ubuntu-latest con name: fabrikam-managed-poolse specificare il nome del pool DevOps gestito.

    # Replace fabrikam-managed-pools with the name
    # of your Managed DevOps Pool.
    pool:
      name: fabrikam-managed-pool
    
  8. Scegliere Salva ed esegui e scegliere Salva ed esegui una seconda volta per confermare.

    Screenshot del pulsante Salva ed esegui.

  9. Se si tratta della prima esecuzione della pipeline in questo pool, potrebbe essere richiesto di concedere le autorizzazioni prima dell'esecuzione della pipeline.

  10. Controllare l'esecuzione della pipeline in Azure DevOps ed è possibile passare alla portale di Azure e visualizzare l'agente in esecuzione nella visualizzazione Agenti.

Pulire le risorse

Se non si intende continuare a usare questa applicazione, eliminare il gruppo di risorse, il dev center, il progetto dev center e il pool DevOps gestito. Questa guida introduttiva ha creato tutte le risorse in un nuovo gruppo di risorse, quindi è possibile eliminarle tutte usando il comando az group delete per eliminare il gruppo di risorse e tutte le relative risorse.

az group delete -n $RESOURCE_GROUP_NAME

Vedi anche