gsoft.azure_devops_agent
Azure DevOps Agent
一个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
你的Azure DevOps账户的URL。
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: ***
许可证
Copyright © 2020, GSoft inc. 本代码遵循Apache许可证2.0版。你可以在https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE获取许可证副本。