Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services
Si quiere usar la CLI de Azure DevOps con una canalización de YAML, puede usar la extensión de Azure DevOps o usar la tarea AzureCLI. Los agentes de Windows y Linux hospedados por Microsoft están preconfigurados con la CLI de Azure y la extensión de la CLI de Azure DevOps. La extensión de la CLI de Azure DevOps ejecuta az devops comandos.
Puede autenticarse con un PAT o puede usar la tarea AzureCLI@2 con una conexión de servicio. El uso de una conexión de servicio es la opción más segura porque no es necesario administrar manualmente las credenciales.
Autenticación con Azure DevOps
Algunos comandos de la CLI de Azure DevOps, como az devops configure y az devops --help, no requieren ninguna autenticación. No se conectan a Azure DevOps. La mayoría de los comandos interactúan con Azure DevOps y requieren autenticación.
Puede autenticarse mediante el token de seguridad System.AccessToken que usa la canalización de ejecución; para ello, asígnelo a una variable de entorno denominada AZURE_DEVOPS_EXT_PAT, como se muestra en el ejemplo siguiente.
El uso de System.AccessToken se basa en tener un PAT. Como alternativa más segura, puede usar la tarea AzureCLI@2 para rellenar una conexión de servicio.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Si tiene varios pasos que requieren autenticación, añada la variable de entorno AZURE_DEVOPS_EXT_PAT a cada paso.
Para obtener más información sobre el ámbito del token de seguridad que usa la canalización de ejecución, consulte Acceso a repositorios, artefactos y otros recursos.
Para obtener más información sobre la autenticación mediante un token de acceso personal (PAT), consulte Inicio de sesión con un token de acceso personal.
Inicio de sesión en la CLI de Azure DevOps con agentes hospedados en Windows y Linux
Los agentes de Windows y Linux hospedados por Microsoft están preconfigurados con la CLI de Azure y la extensión de la CLI de Azure DevOps.
En el ejemplo siguiente se muestra cómo iniciar sesión en Azure DevOps y ejecutar algunos comandos. En este ejemplo se usa la imagen del ubuntu-latest agente hospedado por Microsoft. Puede reemplazarlo por cualquiera de las demás imágenes hospedadas de Windows o Linux.
En este ejemplo se autentica con la CLI de Azure DevOps. Usa el token de seguridad System.AccessToken usado por la canalización en ejecución.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: |
az pipelines build list
git pr list
displayName: 'Show build list and PRs'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Instalación de la extensión de la CLI de Azure DevOps con agentes hospedados en macOS
Los agentes hospedados por Microsoft para macOS tienen instalada la CLI de Azure, pero no la extensión de la CLI de Azure DevOps. Para instalar la extensión de la CLI de Azure DevOps, ejecute el siguiente comando en la canalización antes de realizar llamadas a la CLI de Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Actualización de la versión de la CLI de Azure del agente hospedado
Normalmente, los agentes hospedados por Microsoft implementan actualizaciones semanales en el software en los entornos virtuales. Para algunas herramientas, se usa la versión más reciente en el momento de la implementación. En otros casos, la herramienta está anclada a versiones específicas.
- Para comprobar el software incluido y sus versiones para agentes hospedados por Microsoft, incluida la versión instalada de la CLI de Azure y la extensión de la CLI de Azure DevOps, siga los vínculos Software incluido en la tabla Software.
- Para comprobar la versión actual de la CLI de Azure, consulte Instalación de la CLI de Azure.
Puede actualizar la CLI de Azure en las imágenes hospedadas mediante la ejecución de los siguientes comandos en la canalización.
# Specify python version
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update to latest Azure CLI version
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Instalación condicional de la extensión de la CLI de Azure DevOps
Si la canalización se ejecuta en varias imágenes de máquinas virtuales hospedadas por Microsoft, algunas de las cuales no tienen instalada la extensión de la CLI de Azure DevOps, puede instalarla de forma condicional.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux24:
imageName: "ubuntu-24.04"
linux22:
imageName: "ubuntu-22.04"
mac15:
imageName: "macos-15"
mac14:
imageName: "macos-14"
mac13:
imageName: "macos-13"
windows2025:
imageName: "windows-2025"
windows2022:
imageName: "windows-2022"
maxParallel: 3
pool:
vmImage: $(imageName)
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
# Install Azure DevOps CLI extension only on macOS images
- bash: az extension add -n azure-devops
condition: contains(variables.imageName, 'mac')
displayName: 'Install Azure DevOps extension'
# Azure DevOps CLI extension call that does not require login or credentials
# since it configures the local environment
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
# Call that does require credentials, use the System.AccessToken PAT
# and assign to AZURE_DEVOPS_EXT_PAT which is known to Azure DevOps CLI extension
- bash: |
az pipelines build list
git pr list
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Show build list and PRs'
CLI de Azure DevOps con agentes autohospedados
Puede usar los métodos siguientes para instalar o actualizar la CLI de Azure DevOps en el agente autohospedado.
- Instalación manual de la CLI de Azure y la extensión de la CLI de Azure DevOps
- Instalación de la CLI de Azure y la extensión de la CLI de Azure DevOps en la canalización
Instalación manual de la CLI de Azure y la extensión de la CLI de Azure DevOps
La instalación de la CLI de Azure y la extensión de la CLI de Azure DevOps en el agente autohospedado al aprovisionar la imagen de máquina virtual para el agente es más rápido que realizar la instalación cada vez que se ejecuta la canalización.
Para instalar la CLI de Azure en la imagen del agente autohospedado, consulte Instalación de la CLI de Azure. Hay instrucciones independientes para Windows, Linux y macOS.
Después de instalar la CLI de Azure, instale la extensión de la CLI de Azure DevOps.
Instalación de la CLI de Azure y la extensión de la CLI de Azure DevOps en la canalización
El ejemplo siguiente de configuración de la CLI de Azure y la extensión de la CLI de Azure DevOps en un agente autohospedado mediante una canalización tiene los siguientes requisitos previos.
- Instale la CLI de Azure mediante Python. Python debe instalarse en el agente según las instrucciones de la tarea versión de Python: ¿Cómo puedo configurar un agente autohospedado para usar esta tarea?. La tarea
UsePythonVersion@0no instala Python en el agente autohospedado. Si solo tiene instalada una versión de Python en el agente autohospedado y está en la ruta de acceso, no es necesario usar la tareaUsePythonVersion@0.
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Instale la extensión de DevOps de la CLI de Azure:
- Está instalada la versión 2.10.1 o posterior de la CLI de Azure.
- Hay una versión de
bashinstalada en el agente y en la ruta de acceso. Se requiere una instalación de Bash para usar la tarea bash.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
En el ejemplo siguiente se instala la CLI de Azure seguida de la extensión de la CLI de Azure DevOps.
steps:
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
Asignación de los resultados de una llamada de la CLI de Azure DevOps a una variable
Para almacenar los resultados de una llamada de la CLI de Azure DevOps a una variable de canalización, use la sintaxis task.setvariable que se describe en Establecer variables en scripts. En el ejemplo siguiente se obtiene el identificador de un grupo de variables denominado Fabrikam-2023 y se usa este valor en un paso posterior.
variables:
- name: variableGroupId
trigger: none
pool:
vmImage: "ubuntu-latest"
steps:
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: echo "##vso[task.setvariable variable=variableGroupId]$(az pipelines variable-group list --group-name Fabrikam-2023 --query [].id -o tsv)"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Get Fabrikam-2023 variable group id'
- bash: az pipelines variable-group variable list --group-id '$(variableGroupId)'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'List variables in Fabrikam-2023 variable group'
Autentícate con una conexión de servicio
Cuando se usa una conexión de servicio, la conexión de servicio proporciona las credenciales necesarias para los comandos de la CLI de Azure y la CLI de Azure DevOps en la tarea AzureCLI@2 sin necesidad de administración manual de credenciales en la canalización.
Note
Al usar una conexión de servicio para la autenticación con AzureCLI@2, debe agregar manualmente la entidad de servicio a la organización de Azure DevOps.
Este ejemplo de código define un nuevo parámetro, serviceConnection, con el nombre de una conexión de servicio existente. Se hace referencia a ese parámetro en la AzureCLI@2 tarea. La tarea enumera todos los proyectos (az devops project list) y grupos (az pipelines pool list).
trigger:
- main
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
az devops configure -l
Write-Host "`nUse Azure DevOps CLI (az devops) to list projects in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops project list$($PSStyle.Reset)"
az devops project list --query "value[].{Name:name, Id:id}" `
-o table
Write-Host "`nUse Azure DevOps CLI (az pipelines) to list pools in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az pipelines pool list$($PSStyle.Reset)"
az pipelines pool list --query "[].{Id:id, Name:name}" `
-o table
failOnStandardError: true
Asignación de los resultados de una llamada de la CLI de Azure DevOps a una variable
Para almacenar los resultados de una llamada de la CLI de Azure DevOps a una variable de canalización, use la sintaxis task.setvariable que se describe en Establecer variables en scripts. En el ejemplo siguiente se obtiene el identificador de un grupo de variables denominado kubernetes y se usa este valor en un paso posterior.
trigger:
- main
variables:
- name: variableGroupId
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
az devops configure -l
$id = az pipelines variable-group list --group-name kubernetes --query [].id -o tsv
Write-Host "##vso[task.setvariable variable=variableGroupId]$id"
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
az pipelines variable-group variable list --group-id '$(variableGroupId)'
Para obtener más ejemplos sobre cómo trabajar con variables, incluido el trabajo con variables en trabajos y fases, consulte Definir variables. Para ver ejemplos de la sintaxis de consulta que se ha utilizado en el ejemplo anterior, consulte Cómo consultar la salida de un comando de la CLI de Azure mediante una consulta JMESPath.
Contenido relacionado
- System.AccessToken
- Acceso a repositorios, artefactos y otros recursos
- Definición de variables
- Referencia de la extensión de la CLI de Azure DevOps
- Referencia de la extensión de la CLI de Azure DevOps az pipelines
- Cómo consultar la salida de un comando de la CLI de Azure mediante una consulta JMESPath