azure_devops_agent
Azure DevOps Агент
Роль Ansible, которая устанавливает и настраивает Linux-машину для использования в качестве агента сборки или развертывания Azure DevOps.
Смотрите этот блог для получения подробной информации.
Требования
Смотрите предварительные условия
Установка на MacOS может быть проблематичной, если вы пытаетесь использовать пользователя с правами администратора для подключения и другого пользователя для запуска сервиса. Установка параметра pipelining = True может помочь, особенно если у вас возникают проблемы, когда пользователь агента devops не может получить доступ к временным файлам, создаваемым ansible.
Переменные Роли
Доступные переменные указаны ниже, вместе с значениями по умолчанию (смотрите 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
Имя вашей учетной записи Azure DevOps, т.е. https://dev.azure.com/YOUR_ACCOUNT_NAME
az_devops_accesstoken
Личный токен доступа (PAT), используемый для аутентификации в вашей учетной записи. Смотрите здесь, как сгенерировать это значение.
Примечание: подумайте о том, чтобы использовать Ansible Vault для защиты этого значения.
az_devops_project_name
Имя проекта Azure DevOps, в котором будет зарегистрирован агент (используется только для групп развертывания).
az_devops_agent_version
Версия установленного пакета агента. Должна обновляться до последней версии (смотрите здесь).
az_devops_agent_user
Имя пользователя, используемого для запуска и настройки сервиса.
az_devops_agent_uid
UID пользователя, используемого для запуска и настройки сервиса.
az_devops_agent_group
Группа по умолчанию для пользователя, используемого для запуска и настройки сервиса.
az_devops_agent_name
Имя агента, отображаемое в Azure DevOps (по умолчанию соответствует имени хоста).
az_devops_server_url
URL вашей учетной записи Azure DevOps.
az_devops_agent_folder
Расположение папки для всех файлов, специфичных для агента (примечание: важно, чтобы пользователь сервиса имел разрешения на выполнение всех файлов в этой папке).
az_devops_work_folder
Расположение папки для всех файлов, специфичных для работы (например, загруженный исходный код и результаты сборки).
az_devops_agent_pool_name
Имя пула, в который добавляется агент Azure DevOps.
az_devops_agent_role
Используйте либо
build
,deployment
, либоresource
. Роль сборки позволяет использовать агента в качестве сервера сборки в процессе сборки или развертывания. Роль развертывания позволяет использовать агента в группе развертывания. Роль ресурса позволяет использовать агента как ресурс виртуальной машины, на которую можно нацеливаться в процессе развертывания и которая принадлежит окружению.az_devops_deployment_group_tags
Используется в сочетании с ролью агента
deployment
. Позволяет использовать теги для идентификации агента (например: QA, Staging, Prod и т.д.).az_devops_deployment_group_name
Используется в сочетании с ролью агента
deployment
. Имя группы развертывания, в которую будет добавлен агент. Эта группа должна быть создана вручную в вашем проекте Azure DevOps заранее.az_devops_environment_name
Используется в сочетании с ролью агента
resource
. Имя окружения, в которое будет добавлен ресурс VM. Это окружение должно быть создано вручную в вашем проекте Azure DevOps заранее.az_devops_agent_replace_existing
Добавляет аргумент
--replace
к скрипту конфигурации для случая, когда нужно заменить существующего агента на новом хосте.az_devops_reconfigure_agent
Принудительно перезапускает конфигурацию агента, даже если сервис уже активен.
az_devops_proxy_url
URL прокси-сервера, формат
http://url:port
Предполагается, что прокси работает как с http, так и с https.
az_devops_proxy_username
Имя пользователя для прокси.
Если прокси не требует аутентификации, оставьте параметры по умолчанию.
az_devops_proxy_password
Пароль для прокси.
Если прокси не требует аутентификации, просто оставьте настройки по умолчанию.
Примечание: подумайте о том, чтобы использовать Ansible Vault для защиты этого значения.
az_devops_agent_user_capabilities
Словарь переменных окружения для установки для процесса агента, которые преобразуются в пользовательские возможности, что может быть полезно для установки требований к рабочему процессу развертывания
Пример использования:
- az_devops_agent_user_capabilities:
user_capability_key: user_capability_value
Примеры Плейбука
Агент Сборки
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
Агент Развертывания
- 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"
Ресурс
- 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
Прокси
- 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: ***
Лицензия
Авторские права © 2020, GSoft inc. Этот код лицензирован под лицензией Apache, версия 2.0. Вы можете получить копию этой лицензии на https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE.
ansible-galaxy install gsoft-inc/ansible-role-azure-devops-agent