Agregar y usar grupos de variables

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Los grupos de variables almacenan valores y secretos que es posible que quiera pasar a una canalización de YAML o que estén disponibles en varias canalizaciones. Puede compartir y usar grupos de variables en varias canalizaciones del mismo proyecto.

Las variables secretas de los grupos de variables son recursos protegidos. Puede agregar combinaciones de aprobaciones, comprobaciones y permisos de canalización para limitar el acceso a variables secretas en un grupo de variables. El acceso a variables no secretas no está limitado por aprobaciones, comprobaciones y permisos de canalización.

Creación de un grupo de variables

No se pueden crear grupos de variables en YAML, pero se pueden usar como se describe en Usar un grupo de variables.

Usar un grupo de variables

Para usar una variable de un grupo de variables, agregue una referencia al grupo en el archivo YAML:

variables:
- group: my-variable-group

A continuación, las variables del grupo de variables se pueden usar en el archivo YAML.

Si usa variables y grupos de variables, use sintaxis name/value de las variables individuales no agrupadas:

variables:
- group: my-variable-group
- name: my-bare-variable
  value: 'value of my-bare-variable'

Para hacer referencia a un grupo de variables, use la sintaxis de macros o una expresión en tiempo de ejecución. En el ejemplo siguiente, el grupo my-variable-group tiene una variable llamada myhello.

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello] # uses runtime expression

steps:
- script: echo $(myhello) # uses macro syntax
- script: echo $(my-passed-variable) 

Puede hacer referencia a varios grupos de variables en la misma canalización. Si varios grupos de variables incluyen la misma variable, el grupo incluido en último lugar en el archivo YAML establece el valor de la variable.

variables:
- group: my-first-variable-group
- group: my-second-variable-group

También puede hacer referencia a un grupo de variables en una plantilla. En la plantilla variables.yml, se hace referencia al grupo my-variable-group. El grupo de variables incluye una variable denominada myhello.

# variables.yml
variables:
- group: my-variable-group

En esta canalización, se incluye la variable $(myhello) del grupo de variables my-variable-group y variables.yml hace referencia a esta.

# azure-pipeline.yml
stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

Autorizar un grupo de variables

Para trabajar con un grupo de variables, debe autorizar el grupo. Si solo asigna un nombre al grupo de variables en YAML, cualquier persona que pueda insertar código en el repositorio podría extraer el contenido de los secretos en el grupo de variables. Para autorizar el grupo, use una de las técnicas siguientes:

  • Para autorizar que cualquier canalización use el grupo de variables, vaya a Azure Pipelines. Esta podría ser una buena opción si no tiene ningún secreto en el grupo. SeleccioneGrupos de variables>de la biblioteca y, a continuación, seleccione el grupo de variables en cuestión y habilite la opción Permitir el acceso a todas las canalizaciones.

  • Para autorizar un grupo de variables para una canalización específica, abra la canalización, seleccione Editar y, a continuación, poner en cola una compilación manualmente. Verá un error de autorización de recursos y una acción "Autorizar recursos" en el error. Elija esta acción para agregar explícitamente la canalización como usuario autorizado del grupo de variables.

Nota:

Si agrega un grupo de variables a una canalización y no recibe un error de autorización de recursos en la compilación cuando se esperaba uno, desactive la opción Permitir el acceso a todas las canalizaciones.

Acceda a los valores de variable de un grupo de variables vinculados de la misma manera que las variables que defina dentro de la propia canalización. Por ejemplo, para tener acceso al valor de una variable denominada customer en un grupo de variables vinculado a la canalización, use $(customer) en un parámetro de tarea o un script. Pero no puede acceder a variables secretas (variables cifradas y variables de almacén de claves) directamente en scripts; en su lugar, se deben pasar como argumentos a una tarea. Para obtener más información, consulte Secretos

Los cambios realizados en un grupo de variables están disponibles automáticamente para todas las definiciones o fases a las que se vincula el grupo de variables.

Enumerar grupos de variables

Use la CLI para enumerar los grupos de variables para las ejecuciones de canalización con el comando az pipelines variable-group list. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group list [--action {manage, none, use}]
                                 [--continuation-token]
                                 [--group-name]
                                 [--org]
                                 [--project]
                                 [--query-order {Asc, Desc}]
                                 [--top]

Parámetros opcionales

  • action: especifica la acción que se puede realizar en los grupos de variables. Los valores aceptados son manage, none y use.
  • continuation-token: enumera los grupos de variables después de proporcionar un token de continuación.
  • group-name: nombre del grupo de variables. Se aceptan caracteres comodín, como new-var*.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.
  • query-order: muestra los resultados en orden ascendente o descendente (valor predeterminado). Los valores aceptados son Asc y Desc.
  • top: número de grupos de variables que se van a enumerar.

Ejemplo

En el siguiente comando se enumeran los tres grupos de variables principales en orden ascendente y se devuelven los resultados en formato de tabla.

az pipelines variable-group list --top 3 --query-order Asc --output table

ID    Name               Type    Number of Variables
----  -----------------  ------  ---------------------
1     myvariables        Vsts    2
2     newvariables       Vsts    4
3     new-app-variables  Vsts    3

Mostrar detalles de un grupo de variables

Muestra los detalles de un grupo de variables en el proyecto con el comando az pipelines variable-group show. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group show --group-id
                                 [--org]
                                 [--project]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.

Ejemplo

El siguiente comando muestra los detalles del grupo de variables con el id. 4 y devuelve los resultados en formato YAML.

az pipelines variable-group show --group-id 4 --output yaml

authorized: false
description: Variables for my new app
id: 4
name: MyNewAppVariables
providerData: null
type: Vsts
variables:
  app-location:
    isSecret: null
    value: Head_Office
  app-name:
    isSecret: null
    value: Fabrikam

Eliminar un grupo de variables

Elimine un grupo de variables en el proyecto con el comando az pipelines variable-group delete. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group delete --group-id
                                   [--org]
                                   [--project]
                                   [--yes]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.
  • yes: opcional. No solicita confirmación.

Ejemplo

El siguiente comando elimina el grupo de variables con el id. 1 y no solicita confirmación.

az pipelines variable-group delete --group-id 1 --yes

Deleted variable group successfully.

Agregar variables a un grupo de variables

Con la CLI de Azure DevOps, puede agregar una variable a un grupo de variables en una canalización con el comando az pipelines variable-group variable create . Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group variable create --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--secret {false, true}]
                                            [--value]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • name: Necesario. Nombre de la variable que está añadiendo.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.
  • secret: opcional. Indica si el valor de la variable es un secreto. Los valores aceptados son false y true.
  • value: obligatorio para la variable no secreta. Valor de la variable. En el caso de las variables secretas, si no se proporciona el parámetro value, se selecciona de la variable de entorno prefijada con AZURE_DEVOPS_EXT_PIPELINE_VAR_ o se solicita al usuario que lo escriba a través de la entrada estándar. Por ejemplo, una variable denominada MySecret puede ser de entrada mediante la variable de entorno AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret.

Ejemplo

El comando siguiente crea una variable en el grupo de variables con el id. 4. La nueva variable se denomina require-login, tiene un valor de True y el resultado se muestra en formato de tabla.

az pipelines variable-group variable create --group-id 4 --name requires-login --value True --output table

Name            Is Secret    Value
--------------  -----------  -------
requires-login  False        True

Enumerar variables en un grupo de variables

Puede enumerar las variables de un grupo de variables con el comando az pipelines variable-group variable list. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group variable list --group-id
                                          [--org]
                                          [--project]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.

Ejemplo

El siguiente comando enumera todas las variables del grupo de variables con el identificador 4 y muestra el resultado en formato de tabla.

az pipelines variable-group variable list --group-id 4 --output table

Name            Is Secret    Value
--------------  -----------  -----------
app-location    False        Head_Office
app-name        False        Fabrikam
requires-login  False        True

Enumerar variables en un grupo de variables

Un grupo de variables se actualiza con el comando az pipelines variable-group update. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group variable update --group-id
                                            --name
                                            [--new-name]
                                            [--org]
                                            [--project]
                                            [--prompt-value {false, true}]
                                            [--secret {false, true}]
                                            [--value]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • name: Necesario. Nombre de la variable que está añadiendo.
  • new-name: opcional. Especifica el cambio de nombre del grupo de variables.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.
  • prompt-value: se establece en true para actualizar el valor de una variable secreta mediante una variable de entorno o un símbolo del sistema mediante la entrada estándar. Los valores aceptados son false y true.
  • secret: opcional. Indica si el valor de la variable se mantiene como secreto. Los valores aceptados son false y true.
  • value: actualiza el valor de la variable. En el caso de las variables secretas, use el parámetro prompt-value para que se le pida que lo escriba a través de la entrada estándar. En el caso de las consolas no interactivas, se puede seleccionar de la variable de entorno con el prefijo AZURE_DEVOPS_EXT_PIPELINE_VAR_. Por ejemplo, una variable denominada MySecret puede ser de entrada mediante la variable de entorno AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret.

Ejemplo

El siguiente comando actualiza la variable require-login con el nuevo valor False en el grupo de variables con el identificador 4. Especifica que la variable es un secreto y muestra el resultado en formato YAML. Observe que la salida muestra el valor como null en lugar de False , ya que es un valor oculto secreto.

az pipelines variable-group variable update --group-id 4 --name requires-login --value False --secret true --output yaml

requires-login:
  isSecret: true
  value: null

Eliminar variables de un grupo de variables

Elimine un grupo de variables con el comando az pipelines variable-group delete. Si la extensión de Azure DevOps para la CLI es nueva, consulte Introducción a la CLI de Azure DevOps.

az pipelines variable-group variable delete --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--yes]

Parámetros

  • group-id: obligatorio. Id. del grupo de variables. Para buscar el identificador del grupo de variables, consulte Lista de grupos de variables.
  • name: Necesario. Nombre de la variable que está eliminando.
  • org: la URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config. Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project: el nombre o id. del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID. Es obligatorio si no está configurado como predeterminado o seleccionado mediante git config.
  • yes: opcional. No solicita confirmación.

Ejemplo

El siguiente comando elimina la variable requires-login del grupo de variables con el identificador 4 y solicita confirmación.

az pipelines variable-group variable delete --group-id 4 --name requires-login

Are you sure you want to delete this variable? (y/n): y
Deleted variable 'requires-login' successfully.

Nota:

No se admiten las instancias de Key Vault que usan el control de acceso basado en rol de Azure (RBAC de Azure).

Vincular un almacén de claves de Azure existente a un grupo de variables y asignar secretos de almacén selectivos al grupo de variables.

  1. En la página Grupos de variables, habilite Vincular secretos desde un almacén de claves de Azure como variables. Necesitará un almacén de claves existente que contenga los secretos. Crear un almacén de claves mediante Azure Portal.

    Captura de pantalla del grupo de variables con la integración del almacén de claves de Azure.

  2. Especifique el punto de conexión de la suscripción de Azure y el nombre del almacén que contiene los secretos.

    Asegúrese de que la conexión de servicio de Azure tenga al menos permisos de administración Get y List en el almacén de secretos. Habilite Azure Pipelines para establecer estos permisos; para ello, elija Autorizar junto al nombre del almacén. O bien, establezca los permisos manualmente en el Azure Portal:

    1. Abra Configuración en el almacén y, a continuación, elija Directivas de acceso>Agregar nueva.
    2. Seleccione Seleccionar entidad de servicio y, a continuación, elija la entidad de servicio de la cuenta de cliente.
    3. Seleccione Permisos secretos y asegúrese de que Get y List tengan marcas de verificación.
    4. Seleccione Aceptar para guardar los cambios.
  3. En la página Grupos de variables, seleccione + Agregar para seleccionar secretos específicos del almacén para asignarlos a este grupo de variables.

Administrar secretos del almacén de claves

Consulte la siguiente lista de sugerencias útiles para administrar secretos.

  • Solo los nombres de secreto se asignan al grupo de variables, no a los valores secretos. El valor de secreto más reciente, capturado desde el almacén, se usa en la ejecución de la canalización vinculada al grupo de variables.

  • Cualquier cambio realizado en los secretos existentes en el almacén de claves está disponible automáticamente para todas las canalizaciones en las que se usa el grupo de variables.

  • Cuando se agregan o eliminan nuevos secretos del almacén, los grupos de variables asociados no se actualizan automáticamente. Los secretos incluidos en el grupo de variables se deben actualizar explícitamente para que las canalizaciones que usan el grupo de variables se ejecuten correctamente.

  • Azure Key Vault admite el almacenamiento y la administración de claves criptográficas y secretos en Azure. Actualmente, la integración de grupos de variables de Azure Pipelines solo admite la asignación de secretos del almacén de claves de Azure. No se admiten claves criptográficas ni certificados.

Expandir variables en un grupo

Cuando se establece una variable en un grupo y se usa en un archivo YAML, es igual a otras variables definidas en el archivo YAML. Para obtener más información sobre la precedencia de las variables, consulte Variables.