Guia de início rápido: criar um pool de DevOps gerenciado usando a CLI do Azure
Este artigo mostra como criar um Pool de DevOps Gerenciado usando a CLI do Azure e executar um pipeline nele.
Pré-requisitos
Antes de concluir as etapas neste artigo, você deve ter configurado sua assinatura do Azure e a organização do Azure DevOps para uso com Pools de DevOps Gerenciados, conforme descrito no artigo Pré-requisitos . Essas etapas precisam ser concluídas apenas uma vez por assinatura do Azure e organização do Azure DevOps.
Instalar ou executar no Azure Cloud Shell
A maneira mais fácil de aprender a usar a CLI do Azure é executando um ambiente Bash no Azure Cloud Shell por meio do navegador. Para saber mais sobre o Cloud Shell, veja Início Rápido do Bash no Azure Cloud Shell.
Quando estiver pronto para instalar a CLI do Azure, consulte as instruções de instalação para Windows, Linux, macOS e contêiner do Docker.
Verifique a sua versão executando az --version
. O Azure Cloud Shell sempre tem a versão mais recente da CLI do Azure pré-instalada.
az version
Entrar na CLI do Azure
Abra um prompt de comando (no Windows, use o Prompt de Comando do Windows ou o PowerShell) e execute os seguintes comandos. Se você estiver usando o Azure Cloud Shell , não precisará executar az login
, a menos que queira usar uma conta diferente.
Entre na CLI do Azure.
az login
Se você tiver mais de uma assinatura do Azure, defina sua assinatura padrão do Azure.
az account set --subscription "My subscription name"
Para obter uma lista das suas subscrições, pode executar o seguinte comando.
az account list -o table
Se você tiver vários locatários ou quiser ver mais informações sobre como trabalhar com a assinatura do Azure usando a CLI do Azure, consulte Como gerenciar assinaturas do Azure com a CLI do Azure.
Definir variáveis de ambiente
Execute os seguintes comandos para gerar os nomes dos recursos neste início rápido. Este exemplo usa a
EastUS2
região. SubstituaEastUS2
pela região desejada.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"
Execute os comandos a seguir para revisar seus nomes de recursos.
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
Criar um grupo de recursos
Execute o seguinte comando para criar o grupo de recursos para conter os recursos usados neste início rápido.
az group create --name $RESOURCE_GROUP_NAME --location $REGION
Criar um projeto de centro de desenvolvimento e centro de desenvolvimento
Instale a extensão da CLI
devcenter
do Azure e verifique se ela foi atualizada para a versão mais recente se já estiver instalada.az extension add --name devcenter --upgrade
Execute os comandos a seguir para criar um projeto de centro de desenvolvimento e centro de desenvolvimento.
# 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)
Após alguns momentos, a saída indica que o centro de desenvolvimento foi criado. O
id
do centro de desenvolvimento criado é salvo eDEVCID
usado para criar o projeto do centro de desenvolvimento.{ "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" }
Depois de mais alguns momentos, a saída indica que o projeto do centro de desenvolvimento foi criado. O
id
projeto do centro de desenvolvimento criado é salvo e usado aoDEVCPID
criar o Pool de DevOps Gerenciado na próxima seção.{ "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" }
Preparar os arquivos de configuração do Pool de DevOps Gerenciado
O mdp pool create
método tem vários parâmetros que usam valores JSON que configuram diferentes aspetos do pool.
agent-profile
Especifica se o pool é stateful ou stateless e contém a agenda do agente em espera. É um dicionário com uma única chave chamada ouStateful
Stateless
, dependendo da configuração desejada do agente. Para obter mais informações sobreagent-profile
propriedades, consulte Configurar dimensionamento.fabric-profile
especifica o tamanho do agente, as imagens da VM, o disco do SO e o armazenamento anexado. Para obter mais informações sobre as propriedades, consulte Configurar configurações dofabric-profile
pool e Configurar armazenamento adicional.organization-profile
especifica as organizações e projetos do Azure DevOps que podem usar o pool. Para obter mais informações sobreorganization-profile
configurações, consulte Definir configurações de segurança - Configurar acesso à organização.
Crie os três arquivos a seguir e salve-os na pasta onde você planeja executar os comandos da CLI do Azure para criar o pool.
Crie um nome de arquivo agent-profile.json com o seguinte conteúdo.
{ "Stateless": {} }
Essa configuração especifica um agente sem estado para seu pool.
Crie um arquivo chamado fabric-profile.json com o seguinte conteúdo.
{ "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": [] } } }
Essa configuração especifica um pool usando a imagem Standard_D2as_v5, a imagem ubuntu-22.04 Azure Pipelines e um tipo de disco de sistema operacional padrão sem disco de dados anexado.
Crie um arquivo chamado organization-profile.json com o seguinte conteúdo. Substitua
<organization-name>
pelo nome da sua organização do Azure DevOps.{ "AzureDevOps": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
Essa configuração especifica um pool que está disponível para todos os projetos em sua organização do Azure DevOps.
Criar o pool de DevOps gerenciado
Instale a
mdp
extensão e certifique-se de que ela seja atualizada para a versão mais recente, se já estiver instalada.az extension add --name mdp --upgrade
Crie o Pool de DevOps Gerenciado executando o seguinte comando az mdp pool create .
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 sua assinatura não tiver a capacidade de configurar seu pool com a SKU de VM do Azure desejada e a contagem máxima de agentes, a criação do pool falhará com um erro semelhante à mensagem a seguir.
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
. Para resolver o problema, consulte Rever quotas de pools de DevOps geridos.
Exibir o pool criado no portal do Azure
Inicie sessão no portal do Azure.
Pesquise por Pools de DevOps Gerenciados e selecione-o nas opções disponíveis.
Escolha seu novo Pool de DevOps Gerenciado na lista.
Escolha Visualização JSON para ver o formato JSON do seu recurso Managed DevOps Pools.
Exibir o pool de agentes no Azure DevOps
Vá para o portal do Azure DevOps e entre na sua organização do Azure DevOps (
https://dev.azure.com/{your-organization}
).Vá para Configurações da Organização de DevOps>do Azure.
Vá para Pipelines>Agent pools e verifique se o novo pool está listado. Se você acabou de criar o Pool de DevOps gerenciado, pode levar alguns momentos para que o novo pool apareça na lista de agentes.
Executar um pipeline em seu novo pool
Nesta etapa, criaremos um pipeline simples no repositório padrão de um projeto de DevOps do Azure e o executaremos em seu novo Pool de DevOps Gerenciado.
Vá para o portal do Azure DevOps e entre na sua organização do Azure DevOps (
https://dev.azure.com/{your-organization}
).Vá para o projeto onde você deseja executar o pipeline e escolha Pipelines.
Escolha Novo pipeline (ou Create Pipeline se este for o seu primeiro pipeline).
Escolha Azure Repos Git.
Escolha o repositório que tem o mesmo nome do seu projeto. Neste exemplo, o projeto é chamado FabrikamFiber, então escolhemos o repositório com o mesmo nome.
Escolha Pipeline inicial.
Por padrão, o modelo inicial usa um agente Linux hospedado pela Microsoft. Edite o modelo de pipeline e altere a
pool
seção para que ela se refira ao pool criado nas etapas anteriores.# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
Neste exemplo, os Pools de DevOps Gerenciados são nomeados
fabrikam-managed-pool
, portanto, substituavmImage: ubuntu-latest
porname: fabrikam-managed-pools
, e especifique o nome do seu Pool de DevOps Gerenciado.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Escolha Salvar e executar e escolha Salvar e executar uma segunda vez para confirmar.
Se este for o primeiro pipeline executado neste pool, você poderá ser solicitado a conceder permissões antes que o pipeline seja executado.
Observe o pipeline ser executado no Azure DevOps e você pode alternar para o portal do Azure e ver o agente em execução na exibição Agentes .
Clean up resources (Limpar recursos)
Se você não vai continuar a usar esse aplicativo, exclua o grupo de recursos, o centro de desenvolvimento, o projeto do centro de desenvolvimento e o Pool de DevOps gerenciado. Este guia de início rápido criou todos os recursos em um novo grupo de recursos, para que você possa excluí-los todos usando o comando az group delete para excluir o grupo de recursos e todos os seus recursos.
az group delete -n $RESOURCE_GROUP_NAME