Compartir vía


Administrar grupos de variables

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

En este artículo se explica cómo crear y usar grupos de variables en Azure Pipelines. Los grupos de variables almacenan valores y secretos que puede pasar a una canalización de YAML o que estén disponibles en varias canalizaciones en un 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 está limitado por aprobaciones, comprobaciones o permisos de canalización.

Los grupos de variables siguen el modelo de seguridad de la biblioteca para roles y permisos.

Requisitos previos

  • Organización y proyecto de Azure DevOps Services en el que tiene permisos para crear canalizaciones y variables.
  • Un proyecto de la organización de Azure DevOps o de la colección de Azure DevOps Server. Cree un proyecto si no tiene uno.
  • Si usa la CLI de Azure DevOps, necesita la versión 2.30.0 o posterior de la CLI de Azure con la extensión de la CLI de Azure DevOps. Para más información, consulte Introducción a la CLI de Azure DevOps.
  • Colección y proyecto de Azure DevOps Server en el que tiene permisos para crear canalizaciones y variables.
  • Un proyecto de la organización de Azure DevOps o de la colección de Azure DevOps Server. Cree un proyecto si no tiene uno.

Configuración de la CLI

Si usa la CLI de Azure DevOps, debe configurar la CLI para que funcione con la organización y el proyecto de Azure DevOps.

  1. Inicie sesión en su organización de Azure DevOps mediante el comando az login .

    az login
    
  2. Si se le solicita, seleccione la suscripción en la lista que se muestra en la ventana del terminal.

  3. Asegúrese de que está ejecutando la versión más reciente de la CLI de Azure y la extensión de Azure DevOps mediante los siguientes comandos.

    az upgrade
    az extension add --name azure-devops --upgrade
    
  4. En los comandos de la CLI de Azure DevOps, puede establecer la organización y el proyecto predeterminados mediante:

    az devops configure --defaults organization=<YourOrganizationURL> project=<Project Name or ID>`
    

    Si no ha establecido la organización y el proyecto predeterminados, puede usar el detect=true parámetro en los comandos para detectar automáticamente la organización y el contexto del proyecto en función del directorio actual. Si los valores predeterminados no están configurados o detectados, debe especificar explícitamente los parámetros y project en los org comandos.

Creación de un grupo de variables

Puede crear grupos de variables para las ejecuciones de canalización en el proyecto.

Nota:

Para crear un grupo de variables secretas para vincular secretos desde un almacén de claves de Azure como variables, siga las instrucciones de Vinculación de un grupo de variables a secretos en Azure Key Vault.

  1. En su proyecto Azure DevOps, seleccione Canalizaciones>Biblitoeca en el menú izquierdo.

  2. En la página Biblioteca, seleccione + Grupo de variables.

    Captura de pantalla de la pantalla Biblioteca y el botón Agregar grupo de variables.

  3. En la página de nuevo grupo de variables, en Propiedades, escriba un nombre y una descripción opcional para el grupo de variables.

  4. En Variables, seleccione + Agregar y escriba un nombre y un valor de variable para incluir en el grupo. Si desea cifrar y almacenar de forma segura el valor, seleccione el icono de candado junto a la variable.

  5. Seleccione + Agregar para agregar cada nueva variable. Cuando haya terminado de agregar variables, seleccione Guardar.

    Captura de pantalla de la configuración y el guardado de un grupo de variables.

Ahora puede usar este grupo de variables en canalizaciones de proyecto.

Actualización de grupos de variables

Puede actualizar grupos de variables mediante la interfaz de usuario de Azure Pipelines.

  1. En su proyecto Azure DevOps, seleccione Canalizaciones>Biblitoeca en el menú izquierdo.
  2. En la página Biblioteca, seleccione el grupo de variables que desea actualizar. También puede mantener el puntero sobre la lista de grupos de variables, seleccionar el icono Más opciones y seleccionar Editar en el menú.
  3. En la página de grupo de variables, cambie cualquiera de las propiedades y, a continuación, seleccione Guardar.

Eliminar un grupo de variables

Puede eliminar grupos de variables en la interfaz de usuario de Azure Pipelines.

  1. En su proyecto Azure DevOps, seleccione Canalizaciones>Biblitoeca en el menú izquierdo.
  2. En la página Biblioteca, mantenga el puntero sobre el grupo de variables que desea eliminar y seleccione el icono Más opciones.
  3. Seleccione Eliminar en el menú y, a continuación, seleccione Eliminar en la pantalla de confirmación.

Administración de variables en grupos de variables

Puede cambiar, agregar o eliminar variables en grupos de variables mediante la interfaz de usuario de Azure Pipelines.

  1. En su proyecto Azure DevOps, seleccione Canalizaciones>Biblitoeca en el menú izquierdo.
  2. En la página Biblioteca, seleccione el grupo de variables que desea actualizar. También puede mantener el puntero sobre la lista de grupos de variables, seleccionar el icono Más opciones y seleccionar Editar en el menú.
  3. En la página de grupo de variables, puede hacer lo siguiente:
    • Cambiar cualquiera de los nombres o valores de las variables.
    • Eliminar cualquiera de las variables, para ello, seleccione el icono de elementos no utilizados situado junto al nombre de la variable.
    • Cambiar las variables a secretos o no secretos seleccionando el icono de bloqueo situado junto al valor de variable.
    • Para agregar nuevas variables, seleccione + Agregar.
  4. Seleccione Guardar después de hacer los cambios.

Uso de grupos de variables en canalizaciones

Puede usar grupos de variables en canalizaciones YAML o clásicas. 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.

Si solo asigna un nombre al grupo de variables en canalizaciones YAML, cualquier persona que pueda insertar código en el repositorio podría extraer el contenido de los secretos en el grupo de variables. Por lo tanto, para usar un grupo de variables con canalizaciones YAML, debe autorizar la canalización para que use el grupo. Puede autorizar a una canalización para que use un grupo de variables en la interfaz de usuario de Azure Pipelines o mediante la CLI de Azure DevOps.

Autorización a través de la interfaz de usuario de Canalizaciones

Puede autorizar las canalizaciones para que usen los grupos de variables mediante la interfaz de usuario de Azure Pipelines.

  1. En su proyecto Azure DevOps, seleccione Canalizaciones>Biblitoeca en el menú izquierdo.
  2. En la página Biblioteca, seleccione el grupo de variables que desea autorizar.
  3. En la página del grupo de variables, seleccione la pestaña Permisos de canalización.
  4. En la pantalla Permisos de canalización, seleccione + y, luego, seleccione una canalización para autorizar. O bien, seleccione el icono Más acciones, seleccione Abrir acceso y vuelva a seleccionar Abrir acceso para confirmar.

Al seleccionar una canalización se autoriza a esa canalización a usar el grupo de variables. Para autorizar otra canalización, vuelva a seleccionar el icono +. Al seleccionar Abrir acceso, se autorizan todas las canalizaciones de proyecto para que usen el grupo de variables. Abrir el acceso podría ser una buena opción si no tiene ningún secreto en el grupo.

Otra forma de autorizar un grupo de variables es seleccionar la canalización, seleccionar Editar y, a continuación, poner en cola una compilación manualmente. Verá un error de autorización de recursos y, a continuación, puede agregar explícitamente la canalización como usuario autorizado del grupo de variables.

Autorización mediante la CLI de Azure DevOps

En Azure DevOps Services, puede autorizar grupos de variables mediante la CLI de Azure DevOps.

Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.

Para autorizar a todas las canalizaciones de proyecto para que usen el grupo de variables, establezca el parámetro authorize en el comando az pipelines variable-group create en true. Este acceso abierto puede ser una buena opción si no tiene ningún secreto en el grupo.

Una vez que autorice una canalización YAML para que use un grupo de variables, puede usar variables dentro del grupo de la canalización.

Para usar variables de un grupo de variables, agregue una referencia al nombre del grupo en el archivo de canalización de YAML.

variables:
- group: my-variable-group

Puede hacer referencia a varios grupos de variables en la misma canalización. Si varios grupos de variables incluyen las variables con el mismo nombre, el último grupo de variables que usa la variable en el archivo establece el valor de la variable. Para obtener más información sobre la prioridad de las variables, consulte Expansión de variables.

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

variables:
- group: my-variable-group

La canalización YAML hace referencia a la plantilla variables.yml y usa la variable $(myhello) del grupo de variables my-variable-group.

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

Uso de variables en un grupo de variables vinculadas

Puede acceder a los valores de variable de un grupo de variables vinculados de la misma manera que las variables que defina dentro de la canalización. Por ejemplo, para acceder al valor de una variable denominada customer en un grupo de variables vinculado a la canalización, puede usar $(customer) en un parámetro de tarea o un script.

Si usa variables independientes y grupos de variables en el archivo de canalización, use la sintaxis name-value de las variables independientes.

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

Para hacer referencia a una variable de un grupo de variables, puede usar la sintaxis de macros o una expresión en tiempo de ejecución. En los ejemplos siguientes, el grupo my-variable-group tiene una variable llamada myhello.

Para usar una expresión en tiempo de ejecución:

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

Para usar la sintaxis de macro:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

No se puede acceder a las variables secretas, incluidas las variables cifradas y las variables de Key Vault, directamente en los scripts. Debe pasar estas variables como argumentos a una tarea. Para obtener más información, consulte Variables secretas.