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

    可以使用builddeploymentresource。构建角色允许将代理用作管道构建或发布中的构建服务器。部署角色允许代理在部署组中使用。资源角色允许代理作为虚拟机资源使用,可以被管道的部署目标,并属于一个环境。

  • 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获取许可证副本。

安装
ansible-galaxy install gsoft.azure_devops_agent
许可证
Unknown
下载
13k
拥有者
Workleap is the one simple employee experience platform to elevate hybrid work