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.
Accedere all'interfaccia della riga di comando di Azure.
az login
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
Eseguire i comandi seguenti per generare i nomi per le risorse in questa guida introduttiva. In questo esempio viene usata l'area
EastUS2
. SostituireEastUS2
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"
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
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
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
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 inDEVCID
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 inDEVCPID
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 denominataStateful
oStateless
, a seconda della configurazione dell'agente desiderata. Per altre informazioni sulleagent-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à, vederefabric-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 sulleorganization-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.
Creare un nome di file agent-profile.json con il contenuto seguente.
{ "Stateless": {} }
Questa configurazione specifica un agente senza stato per il pool.
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.
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
Installare l'estensione
mdp
e assicurarsi che venga aggiornata alla versione più recente, se è già installata.az extension add --name mdp --upgrade
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
Accedere al portale di Azure.
Cercare Pool DevOps gestiti e selezionarlo nelle opzioni disponibili.
Scegliere il nuovo pool DevOps gestito dall'elenco.
Scegliere Visualizzazione JSON per visualizzare il formato JSON della risorsa Pool devOps gestiti.
Visualizzare il pool di agenti in Azure DevOps
Passare al portale di Azure DevOps e accedere all'organizzazione di Azure DevOps (
https://dev.azure.com/{your-organization}
).Passare alle impostazioni dell'organizzazione di Azure DevOps>.
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.
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.
Passare al portale di Azure DevOps e accedere all'organizzazione di Azure DevOps (
https://dev.azure.com/{your-organization}
).Passare al progetto in cui si vuole eseguire la pipeline e scegliere Pipeline.
Scegliere Nuova pipeline (o Crea pipeline se si tratta della prima pipeline).
Scegliere Azure Repos Git.
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.
Scegliere Pipeline iniziale.
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 sostituirevmImage: ubuntu-latest
conname: fabrikam-managed-pools
e specificare il nome del pool DevOps gestito.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Scegliere Salva ed esegui e scegliere Salva ed esegui una seconda volta per confermare.
Se si tratta della prima esecuzione della pipeline in questo pool, potrebbe essere richiesto di concedere le autorizzazioni prima dell'esecuzione della pipeline.
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