Inicio rápido: Creación de un grupo de DevOps administrado mediante la CLI de Azure
En este artículo se muestra cómo crear un grupo de DevOps administrado mediante la CLI de Azure y ejecutar una canalización en él.
Requisitos previos
Antes de completar los pasos de este artículo, debe haber configurado la suscripción de Azure y la organización de Azure DevOps para su uso con grupos de DevOps administrados, como se describe en el artículo Requisitos previos . Estos pasos solo deben completarse una vez por suscripción de Azure y la organización de Azure DevOps.
Instalación o ejecución en Azure Cloud Shell
La manera más fácil de aprender a usar la CLI de Azure es ejecutar un entorno de Bash en Azure Cloud Shell a través del explorador. Para más información acerca de Cloud Shell, consulte Guía de inicio rápido para Bash en Azure Cloud Shell.
Cuando esté listo para instalar la CLI de Azure, consulte las instrucciones de instalación del contenedor Windows, Linux, macOS y Docker.
Para comprobar la versión, ejecute az --version
. Azure Cloud Shell siempre tiene la versión más reciente de la CLI de Azure preinstalada.
az version
Inicio de sesión en la CLI de Azure
Abra un símbolo del sistema (en Windows, use el símbolo del sistema de Windows o PowerShell) y ejecute los comandos siguientes. Si usa Azure Cloud Shell , no es necesario ejecutar az login
a menos que quiera usar otra cuenta.
Inicie sesión en la CLI de Azure.
az login
Si tiene más de una suscripción de Azure, establezca la suscripción predeterminada de Azure.
az account set --subscription "My subscription name"
Para obtener una lista de las suscripciones, puede ejecutar el siguiente comando.
az account list -o table
Si tiene varios inquilinos o quiere ver más información sobre cómo trabajar con una suscripción de Azure mediante la CLI de Azure, consulte Administración de suscripciones de Azure con la CLI de Azure.
Definición de las variables de entorno
Ejecute los siguientes comandos para generar los nombres de los recursos en este inicio rápido. En este ejemplo se usa la
EastUS2
región. Reemplace porEastUS2
la región deseada.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"
Ejecute los siguientes comandos para revisar los nombres de los recursos.
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
Crear un grupo de recursos
Ejecute el siguiente comando para crear el grupo de recursos para contener los recursos usados en este inicio rápido.
az group create --name $RESOURCE_GROUP_NAME --location $REGION
Creación de un proyecto de centro de desarrollo y centro de desarrollo
Instale la extensión de la CLI
devcenter
de Azure y asegúrese de que se actualiza a la versión más reciente si ya está instalada.az extension add --name devcenter --upgrade
Ejecute los comandos siguientes para crear un proyecto de centro de desarrollo y centro de desarrollo.
# 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)
Después de unos instantes, la salida indica que se creó el Centro de desarrollo. El
id
del centro de desarrollo creado se guarda enDEVCID
y se usa para crear el proyecto del centro de desarrollo.{ "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" }
Después de unos instantes más, la salida indica que se creó el proyecto del centro de desarrollo. El
id
elemento del proyecto del centro de desarrollo creado se guarda enDEVCPID
y se usa al crear el grupo de DevOps administrado en la sección siguiente.{ "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" }
Preparación de los archivos de configuración del grupo de DevOps administrados
El mdp pool create
método tiene varios parámetros que toman valores JSON que configuran distintos aspectos del grupo.
agent-profile
especifica si el grupo es con estado o sin estado y contiene la programación del agente en espera. Es un diccionario con una sola clave denominadaStateful
oStateless
, en función de la configuración del agente que desee. Para obtener más información sobre lasagent-profile
propiedades, consulte Configuración del escalado.fabric-profile
especifica el tamaño del agente, las imágenes de máquina virtual, el disco del sistema operativo y el almacenamiento conectado. Para obtener más información sobre las propiedades, consulte Configuración de lafabric-profile
configuración del grupo y Configuración del almacenamiento adicional.organization-profile
especifica las organizaciones y proyectos de Azure DevOps que pueden usar el grupo. Para obtener más información sobre laorganization-profile
configuración, consulte Configuración de las opciones de seguridad: Configuración del acceso a la organización.
Cree los tres archivos siguientes y guárdelos en la carpeta donde planea ejecutar los comandos de la CLI de Azure para crear el grupo.
Cree un nombre de archivo agent-profile.json con el siguiente contenido.
{ "Stateless": {} }
Esta configuración especifica un agente sin estado para el grupo.
Cree un archivo denominado fabric-profile.json con el siguiente contenido.
{ "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": [] } } }
Esta configuración especifica un grupo mediante la imagen de Standard_D2as_v5, la imagen ubuntu-22.04 de Azure Pipelines y un tipo de disco del sistema operativo estándar sin disco de datos conectado.
Cree un archivo denominado organization-profile.json con el siguiente contenido. Reemplace
<organization-name>
por el nombre de la organización de Azure DevOps.{ "AzureDevOps": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
Esta configuración especifica un grupo que está disponible para todos los proyectos de la organización de Azure DevOps.
Creación del grupo de DevOps administrado
Instale la
mdp
extensión y asegúrese de que se actualiza a la versión más reciente si ya está instalada.az extension add --name mdp --upgrade
Cree el grupo de DevOps administrado mediante la ejecución del siguiente 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
Si la suscripción no tiene la capacidad de configurar el grupo con la SKU de máquina virtual de Azure deseada y el número máximo de agentes, la creación del grupo produce un error similar al siguiente mensaje.
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 el problema, consulta Revisar las cuotas de grupos de DevOps administrados.
Visualización del grupo creado en Azure Portal
Inicie sesión en Azure Portal.
Busque Grupos de DevOps administrados y selecciónelo en las opciones disponibles.
Elija el nuevo grupo de DevOps administrado en la lista.
Elija Vista JSON para ver el formato JSON del recurso Grupos de DevOps administrados.
Visualización del grupo de agentes en Azure DevOps
Vaya al portal de Azure DevOps e inicie sesión en la organización de Azure DevOps (
https://dev.azure.com/{your-organization}
).Vaya a Configuración de la organización de Azure DevOps>.
Vaya a Grupos de agentes de canalizaciones> y compruebe que aparece el nuevo grupo. Si acaba de crear el grupo de DevOps administrado, puede tardar unos instantes en aparecer en la lista de agentes.
Ejecución de una canalización en el nuevo grupo
En este paso, crearemos una canalización sencilla en el repositorio predeterminado de un proyecto de Azure DevOps y lo ejecutaremos en el nuevo grupo de DevOps administrado.
Vaya al portal de Azure DevOps e inicie sesión en la organización de Azure DevOps (
https://dev.azure.com/{your-organization}
).Vaya al proyecto donde desea ejecutar la canalización y elija Canalizaciones.
Elija Nueva canalización (o Crear canalización si esta es la primera canalización).
Elija Git de Azure Repos.
Elija el repositorio que tiene el mismo nombre que el proyecto. En este ejemplo, el proyecto se denomina FabrikamFiber, por lo que se elige el repositorio con el mismo nombre.
Elija Canalización de inicio.
De forma predeterminada, la plantilla de inicio usa un agente de Linux hospedado por Microsoft. Edite la plantilla de canalización y cambie la
pool
sección para que haga referencia al grupo que creó en los pasos anteriores.# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
En este ejemplo, los grupos de DevOps administrados se denominan
fabrikam-managed-pool
, por lo que reemplazan porvmImage: ubuntu-latest
name: fabrikam-managed-pools
y especifican el nombre del grupo de DevOps administrado.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Elija Guardar y ejecutar y elija Guardar y ejecutar una segunda vez para confirmar.
Si se trata de la primera ejecución de canalización en este grupo, es posible que se le pida que conceda permisos antes de que se ejecute la canalización.
Vea la ejecución de la canalización en Azure DevOps y puede cambiar a Azure Portal y ver el agente en ejecución en la vista Agentes.
Limpieza de recursos
Si no va a seguir usando esta aplicación, elimine el grupo de recursos, el centro de desarrollo, el proyecto del centro de desarrollo y el grupo de DevOps administrados. En este inicio rápido se crearon todos los recursos de un nuevo grupo de recursos, por lo que puede eliminarlos todos mediante el comando az group delete para eliminar el grupo de recursos y todos sus recursos.
az group delete -n $RESOURCE_GROUP_NAME