Adición de & grupos de variables de uso

Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019 | TFS 2018

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.

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.

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.

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 la name/value sintaxis 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 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 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 my-variable-group de variables y variables.yml se hace referencia a 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 en el grupo de variables. Para autorizar el grupo, use una de las técnicas siguientes:

  • Para autorizar a cualquier canalización para que 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 variablesde 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 .

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

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 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 administrar, ninguno y usar.
  • 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: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 seleccionado mediante git config.
  • orden de consulta: 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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de grupos de variables.
  • org: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 seleccionado mediante git config.

Ejemplo

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

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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de grupos de variables.
  • org: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 seleccionado mediante git config.
  • : Opcional. No solicita confirmación.

Ejemplo

El siguiente comando 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 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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de grupos de variables.
  • name: Necesario. Nombre de la variable que va a agregar.
  • org: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 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 con AZURE_DEVOPS_EXT_PIPELINE_VAR_ el prefijo 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 AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretde entorno .

Ejemplo

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

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 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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de grupos de variables.
  • org: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 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

Actualizar variables en un grupo de variables

Actualice una variable en un grupo de variables con el comando az pipelines variable-group variable 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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de 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: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 seleccionado mediante git config.
  • prompt-value: establezca 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 en secreto. Los valores aceptados son false y true.
  • value: Novedades 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 AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretde entorno .

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 una variable de un grupo de variables con el comando az pipelines variable-group variable 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. Identificador del grupo de variables. Para buscar el identificador de grupo de variables, consulte Lista de grupos de variables.
  • name: Necesario. Nombre de la variable que va a eliminar.
  • org: dirección URL de la organización de Azure DevOps. Configure la organización predeterminada mediante az devops configure -d organization=ORG_URL. Obligatorio si no está configurado como predeterminado o seleccionado 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 seleccionado mediante git config.
  • : Opcional. No solicita confirmación.

Ejemplo

El siguiente comando elimina la variable require-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.

    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 Obtener y Enumerar 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 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.

Administración de 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 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 desde el almacén de claves de Azure. No se admiten claves criptográficas y certificados.

Expandir variables en un grupo

Cuando establece una variable en un grupo y la 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.