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 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.
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.
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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 entornoAZURE_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 mediantegit 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 mediantegit 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 mediantegit 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 mediantegit 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 entornoAZURE_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 mediantegit 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 mediantegit 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.
Vínculo de secretos desde un almacén de claves de Azure
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.
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.
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:
- Abra Configuración en el almacén y, a continuación, elija Directivas de acceso>Agregar nueva.
- Seleccione Seleccionar entidad de servicio y, a continuación, elija la entidad de servicio de la cuenta de cliente.
- Seleccione Permisos secretos y asegúrese de que Get y List tengan marcas de verificación.
- Seleccione Aceptar para guardar los cambios.
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.
Artículos relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios