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.

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 secretos desde un almacén de claves de Azure.

Puede crear un grupo de variables en la interfaz de usuario de Azure Pipelines.

Requisitos previos

Una organización y un proyecto de Azure DevOps donde tiene permisos para crear canalizaciones y variables.

Creación del grupo de variables

  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.

Puede crear un grupo de variables que se enlace a un almacén de claves de Azure existente y asignar los secretos del almacén de claves seleccionados al grupo de variables. Solo los nombres de secreto se asignan al grupo de variables, no a los valores secretos. Las ejecuciones de canalización que se vinculan al grupo de variables obtienen los valores secretos más recientes del almacén.

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. Sin embargo, si se agregan o eliminan secretos del almacén, los grupos de variables asociados no se actualizan automáticamente. Debe actualizar explícitamente los secretos para incluirlos en el grupo de variables.

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

Nota:

No se admiten almacenes de claves que usan el control de acceso basado en roles de Azure (RBAC de Azure).

Requisitos previos

  • Un almacén de claves de Azure que contiene los secretos. Puede crear un almacén de claves mediante Azure Portal.
  • Una conexión de servicio de Azure para el proyecto.

Creación del grupo de variables

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones>Biblioteca>+ Grupo de variables.
  2. En la página Grupos de variables, escriba un nombre y una descripción opcional para el grupo de variables.
  3. Habilite el conmutador Vincular secretos desde una instancia de Azure Key Vault como variables.
  4. Seleccione el punto de conexión de la suscripción de Azure y el nombre del almacén de claves.
  5. Habilite Azure DevOps para acceder al almacén de claves; para ello, seleccione Autorizar junto al nombre del almacén.
  6. En la pantalla Elegir secretos, seleccione secretos específicos del almacén para asignarlos a este grupo de variables y, a continuación, seleccione Aceptar.
  7. Seleccione Guardar para guardar el grupo de variables secretas.

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

Nota:

La conexión de servicio de Azure debe tener al menos permisos Get y List en el almacén de claves, que puede autorizar en los pasos anteriores. También puede proporcionar los permisos siguientes desde Azure Portal mediante estos pasos:

  1. Abra Configuración para el almacén de claves y, a continuación, elija Configuración de acceso>Ir a directivas de acceso.
  2. En la página Directivas de acceso, si el proyecto de Azure Pipelines no aparece en Aplicaciones con al menos permisos Get y List, seleccione Crear.
  3. En Permisos de secretos, seleccione Get y List y, a continuación, seleccione Siguiente.
  4. Seleccione la entidad de servicio y, después, Siguiente.
  5. Vuelva a seleccionar Siguiente, revise la configuración y seleccione Crear.

Para obtener más información, consulte Usar secretos de Azure Key Vault.

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.

Uso de grupos de variables en canalizaciones YAML

Una vez que autorice una canalización YAML para que use un grupo de variables, puede usar el grupo de variables o las variables que contiene en la canalización.

Autorización de la canalización YAML para usar 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. Las canalizaciones clásicas pueden usar grupos de variables sin autorización independiente.

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.

Uso del grupo de variables en la canalización YAML

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

variables:
- group: my-variable-group

Puede hacer referencia a varios grupos de variables en la misma canalización. Si varios grupos de variables incluyen la misma variable, 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 de grupo de variables en canalizaciones YAML

Puede acceder a los valores de variable de un grupo de variables vinculados de la misma manera que accede a 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.

Uso de grupos de variables en canalizaciones clásicas

Las canalizaciones clásicas pueden usar grupos de variables sin autorización independiente. Para usar un grupo de variables:

  1. Abra la canalización clásica.

  2. Seleccione Variables>Grupos de variables y, a continuación, seleccione Vincular grupo de variables.

  3. En una canalización de compilación, verá una lista de grupos disponibles. Vincule un grupo de variables a la canalización. Todas las variables del grupo están disponibles para su uso en la canalización.

    En una canalización de versión, también verá una lista desplegable de las fases en la canalización. Vincule el grupo de variables a la propia canalización o a una o más fases específicas de la canalización de versión. Si vincula a una o varias fases, las variables del grupo de variables se limitan a estas fases y no son accesibles en las demás fases de la misma versión.

    Captura de pantalla que muestra la vinculación de un grupo de variables.

Cuando se establece una variable con el mismo nombre en varios ámbitos, se aplica la prioridad siguiente, más alta primero:

  1. Variable establecida en tiempo de cola
  2. Variable establecida en la canalización
  3. Conjunto de variables en el grupo de variables

Para obtener más información sobre la prioridad de las variables, consulte Expansión de variables.

Nota:

Las variables de distintos grupos vinculados a una canalización en el mismo ámbito (por ejemplo, trabajo o fase) colisionarán y el resultado puede ser impredecible. Asegúrese de usar nombres diferentes para las variables en todos los grupos de variables.