Agregar & grupos de variables de uso

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

Los grupos de variables son recursos protegidos. Puede agregar aprobaciones y comprobaciones a estas variables y establecer permisos de canalización.

Nota

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Nota

Los grupos de variables solo se pueden usar en una canalización de compilación Azure DevOps y TFS 2018.

Creación de un grupo de variables

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

Uso de 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 la sintaxis de las name/value 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 macro o una expresión en tiempo de ejecución. En el ejemplo siguiente, el grupo my-variable-group tiene una variable denominada 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 de variables 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 my-variable-group grupo. 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 y se hace referencia a my-variable-groupvariables.yml esta.

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

Autorización de 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 del grupo de variables. Para autorizar al grupo, use una de las técnicas siguientes:

  • Para autorizar a cualquier canalización a usar 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. Seleccione Grupos devariables de 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 Editary, 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 un 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 esperaba uno, desactive la opción Permitir el acceso a todas las canalizaciones.

Las compilaciones de YAML no están disponibles en TFS.

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

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

Enumeración de 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 Azure DevOps de la CLI es nueva para usted, consulte Introducción a Azure DevOps CLI.

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, noney 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: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .
  • query-order:enumera los resultados en orden ascendente o descendente (valor predeterminado). Los valores aceptados son Ascy Desc.
  • top:número de grupos de variables que se enumera.

Ejemplo

El comando siguiente enumera los tres grupos de variables principales en orden ascendente y devuelve 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 los detalles de un grupo de variables

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

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

Parámetros

  • group-id:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .

Ejemplo

El comando siguiente muestra los detalles del grupo de variables con el identificador 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

Eliminación de un grupo de variables

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

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

Parámetros

  • group-id:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .
  • sí:opcional. No solicita confirmación.

Ejemplo

El comando siguiente elimina el grupo de variables con el identificador 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 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 Azure DevOps de la CLI es nueva para usted, consulte Introducción a Azure DevOps CLI.

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

Parámetros

  • group-id:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • name: Necesario. Nombre de la variable que va a agregar.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .
  • secret: opcional. Indica si el valor de la variable es un secreto. Los valores aceptados son false y true.
  • value: se requiere 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 con el prefijo o se pide al usuario que lo escriba a través de la entrada estándar. Por ejemplo, se puede especificar una variable denominada MySecret mediante la variable de entorno .

Ejemplo

El comando siguiente crea una variable en el grupo de variables con el identificador de 4. La nueva variable se denomina requires-login y tiene el valor Truey 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

Enumeración de 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 Azure DevOps de la CLI es nueva para usted, consulte Introducción a Azure DevOps CLI.

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

Parámetros

  • group-id:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .

Ejemplo

El comando siguiente 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

Actualización de variables en un grupo de variables

Actualice una variable de un grupo de variables con el comando az pipelines variable-group variable update. Si la Azure DevOps de la CLI es nueva para usted, consulte Introducción a Azure DevOps CLI.

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:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • name: Necesario. Nombre de la variable que va a agregar.
  • new-name:opcional. Especifique para cambiar el nombre de la variable.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona 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 a través de la entrada estándar. Los valores aceptados son false y true.
  • secret: opcional. Indica si el valor de la variable se mantiene en 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, se puede especificar una variable denominada MySecret mediante la variable de entorno .

Ejemplo

El comando siguiente actualiza la variable requires-login con el nuevo valor False en el grupo de variables con el identificador de 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

Eliminación de variables de un grupo de variables

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

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

Parámetros

  • group-id:requerido. Identificador del grupo de variables. Para buscar el identificador del grupo de variables, vea Enumerar grupos de variables.
  • name: Necesario. Nombre de la variable que va a eliminar.
  • org: Azure DevOps url de la organización. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config . Ejemplo: --org https://dev.azure.com/MyOrganizationName/.
  • project:nombre o identificador del proyecto. Configure el proyecto predeterminado mediante az devops configure -d project=NAME_OR_ID . Obligatorio si no está configurado como predeterminado o se selecciona mediante git config .
  • sí:opcional. No solicita confirmación.

Ejemplo

El comando siguiente 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.

Vincule un almacén de claves de Azure existente a un grupo de variables y asigne 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. Cree un almacén de claves mediante el Azure Portal.

    Grupo de variables con integración de Azure Key Vault

  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 para los 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 para el almacén y, a continuación, elija Directivas de accesoAgregar nuevo.
    2. Seleccione Seleccionar entidad de seguridad 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 tienen 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.

Administración de secretos

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 último valor de secreto, que se captura del almacén, se usa en la ejecución de canalización que está 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 deben actualizarse 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 Azure Pipelines de grupos de variables 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 prioridad de las variables, vea Variables.

YAML no se admite en TFS.