gsoft.azure_devops_agent
Agente de Azure DevOps
Un rol de Ansible que instala y configura una máquina Linux para ser utilizada como un agente de construcción o despliegue de Azure DevOps.
Consulta este artículo del blog para más detalles.
Requisitos
Consulta los requisitos previos
La instalación en MacOS puede ser problemática si se intenta usar un usuario administrador para conectarse y otro usuario para ejecutar el servicio. pipelining = True puede ayudar, especialmente si encuentras problemas donde el usuario del agente de DevOps no puede acceder a los archivos temporales que Ansible está creando.
Variables del Rol
A continuación se enlistan las variables disponibles, junto con sus valores predeterminados (ver defaults/main.yml
):
az_devops_accountname: null
az_devops_accesstoken: null
az_devops_project_name: null
az_devops_agent_version: 2.188.3
az_devops_agent_user: "az_devops_agent"
az_devops_agent_uid: null
az_devops_agent_name: "{{ ansible_hostname }}"
az_devops_server_url: "https://dev.azure.com/{{ az_devops_accountname }}"
az_devops_agent_folder: "/home/{{ az_devops_agent_user }}/agent/"
az_devops_work_folder: "/home/{{ az_devops_agent_user }}/agent/_work"
az_devops_agent_pool_name: "Default"
az_devops_agent_role: "build"
az_devops_deployment_group_tags: null
az_devops_environment_name: null
az_devops_deployment_group_name: null
az_devops_agent_replace_existing: false
az_devops_reconfigure_agent: false
az_devops_agent_user_capabilities: null
az_devops_proxy_url: null
az_devops_proxy_username: null
az_devops_proxy_password: null
az_devops_accountname
El nombre de tu cuenta de Azure DevOps, es decir, https://dev.azure.com/YOUR_ACCOUNT_NAME
az_devops_accesstoken
El Token de Acceso Personal (PAT) utilizado para autenticarte en tu cuenta. Consulta aquí los detalles sobre cómo generar este valor.
Nota: Considera usar Ansible Vault para asegurar este valor.
az_devops_project_name
El nombre del proyecto de Azure DevOps en el que registrar el agente (solo se usa para grupos de despliegue).
az_devops_agent_version
Versión del paquete del agente instalado. Debe actualizarse periódicamente a la versión más reciente (ver aquí).
az_devops_agent_user
Nombre del usuario utilizado para ejecutar y configurar el servicio.
az_devops_agent_uid
UID del usuario utilizado para ejecutar y configurar el servicio.
az_devops_agent_group
Grupo predeterminado del usuario utilizado para ejecutar y configurar el servicio.
az_devops_agent_name
Nombre del agente que se muestra en Azure DevOps (por defecto al nombre del host).
az_devops_server_url
Url para tu cuenta de Azure DevOps.
az_devops_agent_folder
Ubicación de la carpeta para todos los archivos específicos del agente (nota: es importante que el usuario del servicio tenga permisos de ejecución en todos los archivos de esta carpeta).
az_devops_work_folder
Ubicación de la carpeta para todos los archivos específicos del trabajo (es decir, código fuente obtenido y resultados de la construcción).
az_devops_agent_pool_name
Nombre del grupo al que se añade el agente de Azure DevOps.
az_devops_agent_role
Usa
build
,deployment
oresource
. El rol de construcción permite usar el agente como servidor de construcción en la construcción o lanzamientos del pipeline. El rol de despliegue permite usar el agente en un grupo de despliegue. El rol de recurso permite usar el agente como un recurso de máquina virtual que puede ser dirigido por los despliegues de un pipeline y pertenece a un entorno.az_devops_deployment_group_tags
Usar en conjunto con el rol de agente
deployment
. Permite usar etiquetas para identificar el agente (ej: QA, Staging, Prod, etc.)az_devops_deployment_group_name
Usar en conjunto con el rol de agente
deployment
. El nombre del grupo de despliegue en el que añadir el agente. Esto debe ser creado manualmente en tu proyecto de Azure DevOps previamente.az_devops_environment_name
Usar en conjunto con el rol de agente
resource
. El nombre del entorno en el que añadir el recurso de la VM. Esto debe ser creado manualmente en tu proyecto de Azure DevOps previamente.az_devops_agent_replace_existing
Añade el argumento
--replace
al script de configuración para el escenario donde necesitas reemplazar un agente existente con un nuevo host.az_devops_reconfigure_agent
Fuerza una reconfiguración del agente incluso si el servicio ya está activo.
az_devops_proxy_url
La URL del servidor proxy, el formato es
http://url:puerto
Esto asume que el proxy maneja http y https.
az_devops_proxy_username
Nombre de usuario para el proxy.
Si el proxy no requiere autenticación, simplemente deja los valores predeterminados.
az_devops_proxy_password
Contraseña para el proxy.
Nuevamente, si el proxy no requiere autenticación, simplemente deja los valores predeterminados.
Nota: Considera usar Ansible Vault para asegurar este valor.
az_devops_agent_user_capabilities
Un diccionario de variables de entorno para establecer para el proceso del agente que se traducen en Capacidades de Usuario, lo cual puede ser útil para establecer demandas de pipeline de liberación.
Ejemplo de uso:
- az_devops_agent_user_capabilities:
user_capabilty_key: user_capability_value
Ejemplos de Playbooks
Agente de Construcción
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
Agente de Despliegue
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: deployment
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_deployment_group_name: fubar_group
- az_devops_deployment_group_tags: "web,prod"
Recurso
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: resource
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_environment_name: staging
Proxy
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_proxy_url: "http://127.0.0.1:8080"
- az_devops_proxy_username: bob
- az_devops_proxy_password: ***
Licencia
Copyright © 2020, GSoft inc. Este código está licenciado bajo la Licencia Apache, Versión 2.0. Puedes obtener una copia de esta licencia en https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE.
ansible-galaxy install gsoft.azure_devops_agent