Guida introduttiva: Creare un pool DevOps gestito usando un modello di Resource Manager

Questo articolo illustra come creare un pool DevOps gestito usando un modello di Resource Manager ed eseguire una pipeline nel nuovo pool.

Prerequisiti

Prima di completare i passaggi descritti in questo articolo, è necessario aver configurato 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.

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.

  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.

Creare un gruppo di risorse, Dev Center e un progetto Dev Center

  1. Seguire la procedura Creare un dev center in Creare e configurare un dev center per ambienti di distribuzione di Azure usando l'interfaccia della riga di comando di Azure.

    È sufficiente seguire la procedura descritta nella sezione Creare un dev center . Prendere nota del nome del gruppo di risorse e del nome di Dev Center.

  2. Seguire la procedura Creare un progetto in Creare e configurare un progetto usando l'interfaccia della riga di comando di Azure.

    Prendere nota dell'oggetto id del progetto creato (non dell'oggetto devCenterId).

Esaminare e salvare il modello

  1. Creare un nome di file locale mdp-azure-deploy.json con il contenuto seguente. Questo file è un modello arm con parametri che crea una microsoft.devopsinfrastructure/pools risorsa.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "poolName": {
                "type": "string"
            },
            "adoOrg": {
                "type": "string"
            },
            "devCenterResourceId": {
                "type": "string"
            },
            "imageName": {
                "type": "string"
            },
            "poolSize": {
                "type": "int"
            },
            "location": {
                "type": "string",
                "defaultValue": "eastus"
            }
        },
        "variables": {},
        "resources": [
            {
                "name": "[parameters('poolName')]",
                "type": "microsoft.devopsinfrastructure/pools",
                "apiVersion": "2024-04-04-preview",
                "location": "[parameters('location')]",
                "tags": {},
                "properties": {
                    "organizationProfile": {
                        "organizations": [
                            {
                                "url": "[parameters('adoOrg')]",
                                "parallelism": 1
                            }
                        ],
                        "permissionProfile": {
                            "kind": "CreatorOnly"
                        },
                        "kind": "AzureDevOps"
                    },
                    "devCenterProjectResourceId": "[parameters('devCenterResourceId')]",
                    "maximumConcurrency": "[parameters('poolSize')]",
                    "agentProfile": {
                        "kind": "Stateless"
                    },
                    "fabricProfile": {
                        "sku": {
                            "name": "Standard_D2ads_v5"
                        },
                        "images": [
                            {
                                "wellKnownImageName": "[parameters('imageName')]",
                                "buffer": "*"
                            }
                        ],
                        "kind": "Vmss"
                    }
                }
            }
        ]
    }
    
  2. Creare un altro file locale denominato mdp-azure-deploy-parameters.json e salvarlo nella stessa cartella del primo file. Aggiornare le proprietà seguenti in modo che corrispondano ai dettagli dell'ambiente.

    Parametro Valore
    poolName Aggiornare value con il nome desiderato del pool. Il nome deve essere costituito da caratteri alfanumerici, ., -, o _e deve avere una lunghezza compresa tra 3 e 44 caratteri. Il nome deve essere univoco a livello globale in Azure.
    adoOrg Aggiornare value e sostituire your-organization con il nome dell'organizzazione Azure DevOps.
    devCenterResourceId Eseguire l'aggiornamento value id con il passaggio precedente Creare un gruppo di risorse, Dev Center e Dev Center Project .
    imageName Questo esempio è configurato per l'uso di un'immagine di Azure Pipelines e usa l'immagine di Windows Server 2022. Se si vuole modificarlo, scegliere tra gli alias predefiniti dell'immagine di Azure Pipelines. I pool DevOps gestiti supportano anche le immagini della raccolta di calcolo di Azure e le immagini del marketplace selezionate. Per informazioni sulla configurazione di una risorsa pool di DevOps gestiti per questi tipi di immagine, vedere Configurare le immagini dei pool di DevOps gestiti.
    poolSize Aggiornare value con il numero massimo di agenti che si desidera poter eseguire processi simultanei. In questo esempio l'oggetto poolSize è 1.
    location Area di Azure per il pool. In questo esempio l'area è eastus.
    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "poolName": {
                "value": "my-first-managed-pool"
            },
            "adoOrg": {
                "value": "https://dev.azure.com/your-organization"
            },
            "devCenterResourceId": {
                "value": "/subscriptions/subscription_id_placeholder/resourceGroups/fabrikam-managed-devops-pools/providers/Microsoft.DevCenter/projects/fabrikam-dev-center-project"
            },
            "imageName": {
                "value": "windows-2022"
            },
            "poolSize": {
                "value": 1
            },
            "location": {
                "value": "eastus"
            }
        }
    }
    

Creare il pool DevOps gestito

Aprire un prompt dei comandi (in Windows, usare il prompt dei comandi di Windows o PowerShell) ed eseguire i comandi seguenti. È possibile ignorare i primi due comandi se la sessione dell'interfaccia della riga di comando di Azure dalla prima procedura è ancora attiva.

  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.

  3. Passare alla cartella quando sono stati salvati i due file JSON dal passaggio precedente. In questo esempio i file vengono salvati in C:\examples.

    cd c:\examples
    
  4. Creare il pool DevOps gestito. Sostituire <resourceGroupName> con il gruppo di risorse creato nel primo passaggio.

    az deployment group create --resource-group <resourceGroupName> --template-file mdp-azure-deploy.json --parameters mdp-azure-deploy-parameters.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 8, 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

Dopo aver completato l'avvio rapido, eliminare le risorse create se non si vuole continuare a usarle.

Per eliminare il pool DevOps gestito, Dev Center e Dev Center Project, è possibile eliminarli eliminando il gruppo di risorse che li contiene.

Vedi anche