1. 编译服务器

在 Azure Pipelines 中至少需要一个编译服务器的 Agent 才能编译代码或发布软件。Azure DevOps 本身已经提供了一个 Agent,但出于各种理由(需要特殊的编译打包环境、需要更高的性能、需要更多的控制权等)很多时候需要一些自托管代理。这篇文章将讲解如何在 Windows 系统上安装及配置 Build Agent(主要基于之前几篇文章所构建的环境)。

2. 下载 Agent 安装程序

首先进入要安装 Build Agent 的 Windows 系统,然后访问 Azure DevOps,在首页的左下角点击 Organization settings,进入 Organization Settings 页面后选中左侧菜单的 Agent pools 菜单项,进入 Agent pools 页面,这时候可以看到已经有两个 Agent Pool,分别是 Default 和 Azure Pipelines。

选中 Default 进入 Agent Pool 的详细页面,然后点击右上角的 Net agent 按钮,出现一个下载并安装 Agent 的教学页面。点击 Download 把 Agent 安装包下载到 downloads 目录。

然后用管理员的方式打开 PowerShell,输入教学页面中 **Create the agent ** 这段的内容:

PS C:\> mkdir agent ; cd agent
PS C:\agent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$HOME\Downloads\vsts-agent-win-x64-2.184.2.zip", "$PWD")

这段脚本在 C 盘创建了 agent 目录,并且将刚刚下载的 agent 文件解压到这个目录。

然后输入 C:\agent> .\config.cmd 开始配置 Agent。

3. 创建 personal access token

在开始配置 Agent 之前,如果你的 Windows 系统与 Azure DevOps 不在同一个域中,你还需要一个 personal access token 来获得访问 Azure DevOps 的权限。这一节将讲解如何获得这个 token。

点击页面右上角的 user settings 按钮,在弹出的菜单中选中 Personal access tokens

Personal Access Tokens 页面点击 New Token 按钮。

在弹出的表单中随便填个名字,然后点击 Show all scopes 按钮:

Agent Pools 里选择 Read & manage,然后点击 Create 按钮创建 token:

创建 token 以后记得复制并保存,因为以后将不再显示这个 token:

4. Agent 中的各种选项

接下来将介绍 config 中的各种选项

4.1 身份验证

  • server URL:Azure DevOps 的地址。
  • authentication type:有 PAT 和 negotiate 两个选择,前者需要输入 personal access token,后者需要输入用户名和密码。这里使用之前已经创建好的 personal access token。

4.2 Pool 和 Agent 的名字

  • agent pool:输入需要加入的 agent pool 的名字,直接按回车是默认值,默认值是 Default
  • agent name:输入 agent 的名字,可以直接按回车输入默认名字。

4.3 设置 Agent

  • work folder:Agent 的工作目录,默认是 _work
  • Perform an unzip for tasks for each step:一个额外的安全选项,直接回车选择默认值。
  • run agent as service:是否让 Agent 作为 windows service 运行。这里我选择了 Y,为了以后每次启动 Windows 都直接启动。
  • User account to use for the service:输入作为 windows service 运行时的用户名。
  • Password for the account:前面输入的用户名对应的密码。

所有流程跑完以后截图如下(因为我在中文 Windows 上截的图,所以参数的名字有出入):

5. 管理 Agent

回到 Default 这个 Agent Pool 的详细页面,切换到 Agents 页面,可以看到刚刚新添加的 Agent,可以通过将 Enbabled 这个开关关闭这个 Agent,也可以在 More... 菜单中删除这个 Agent。

进入这个 Agent 的详细页面,可以看到 JobsCapabilities 两个页面,其中 Jobs 是已经安排的工作,不过现在是空的。而 Capabilities 是这个 Agent 的各项能耐,例如安装的 .NET 版本,之类的。

6. 修改 Pipeline

有了新的 Agent,就需要将 Pipeline 使用的 Pool 改为 Agent 所在的 Pool。在 YAML 中将这段:

pool:
vmImage: 'windows-latest'

作如下修改:

pool: 'Default'

即可把 Pipeline 使用的 Agent Pool 指定为 'Default'。重新 Run 一次这个 Pipeline,之后可以在 Agent 的 Jobs 页面看到运行的 Job 的内容。

有些情况下这个 Pipeline 会保这种错:

This pipeline needs permission to access a resource before this run can continue

应该是权限的问题,需要打开'Default' 的详细页面,选中 Security 标签页,然后打开 Grant access permission to all pipelines(为所有管道授予访问权限),这个操作很无脑,即所有权限都满上。再次运行 Pipeline 就不会报错了。

7. 最后

这篇文章简单介绍了如果自托管 Windows 代理,更多的内容请参考下面的文档:

Deploy an Azure Pipelines agent on Windows - Azure Pipelines Microsoft Docs

azure-pipelines-agent_README.md at master

[Azure DevOps] 如何安装并配置 Build Agent的更多相关文章

  1. 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群

    本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...

  2. Windows server 安装和配置zabbix agent

    1.下载Windows 平台的zabbix agent 先到官网下载zabbix_agentd监控客户端软件安装包(windows操作系统客户端),客户端版本尽量与服务器版本一致,下载地址:http: ...

  3. Office 365实现单点登录系列(2)—Azure AD Connect安装与配置

    前言 第一篇文章我已经为大家分享了在在Azure上搭建域控服务器的方法,如果大家本地已经有了域环境,可以直接从这一篇文章开始阅读.Azure AD Connect的前身是DirSync,是专门用于目录 ...

  4. Azure DevOps vsts-agent-linux 安装出错, Must not run with sudo

    在linux安装 vsts-agent-linux 在vsts-agent-linux的解压目录运行./config.sh, 提示"Must not run with sudo", ...

  5. Azure 实践(1)- Azure Devops Server 安装

    1.Azure Devops介绍 Azure DevOps Server 2020 (之前的名称为TFS),作为微软Azure DevOps 的企业私有(on-premises)服务器,是一个为开发团 ...

  6. centos 7 安装及配置zabbix agent

    一.在被监控主机上设置防火墙,允许zabbix-agent的10050端口通过 二.执行yum list |grep zabbix,找到zabbix的agent安装包并安装 三.在 /etc/zabb ...

  7. Azure DevOps Server 2019 (TFS)安装教程

    概述 Azure DevOps Server 2019 (之前的名称为TFS),作为微软Azure DevOps 的企业私有(on-premises)服务器,是一个为开发团队提供软件协作开发管理的服务 ...

  8. Azure DevOps Server 入门实践与安装部署

    一,引言 最近一段时间,公司希望在自己的服务器上安装本地版的 Azure DevOps Service(Azure DevOps Server),用于项目内的测试,学习.本着学习的目的,我也就开始学习 ...

  9. 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化

    介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...

随机推荐

  1. vscode & typescript & optional-chaining bug

    vscode & typescript & optional-chaining bug https://www.cnblogs.com/xgqfrms/p/11745541.html ...

  2. 在线预览word,excel,ppt

    https://view.officeapps.live.com/op/view.aspx?src=服务器地址微软提供的地址拼接自己的可以预览了拼接自己的服务器地址可以在线预览

  3. Flutter: moor_flutter库,简化sqlite操作

    入门 video moor_flutter 示例代码仓库 install dependencies: ... moor_flutter: dev_dependencies: ... moor_gene ...

  4. java线程池趣味事:这不是线程池

    要想写出高性能高并发的应用,自然有许多关键,如io,算法,异步,语言特性,操作系统特性,队列,内存,cpu,分布式,网络,数据结构,高性能组件. 胡说一通先. 回到主题,线程池.如果说多线程是提高系统 ...

  5. flask启动常见问题1:sqlalchemy.exc.ArgumentError: Mapper mapped class UserCode->data_system_user_email could not assemble any primary key columns for mapped table 'data_system_user_email'

    我的描述:当我编辑好flask以后,ORM映射数据库完成,启动项目时,发生现象: 解决: 看字面的意思是主键导致的错误,于是我查看了data_system_user_email的键参数配置,发现表没有 ...

  6. 剑指 Offer 12. 矩阵中的路径 + 递归 + 深搜 + 字符串问题

    剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的 ...

  7. threejs 基础概要

    threejs 基础概要 点击查看官方文档 下面是翻译的内容(稍作修改) 先了解一下Three.js应用程序的结构.Three.js应用程序需要创建一堆对象并将它们连接在一起.下图表示一个小three ...

  8. 在Linux上从零开始部署前后端分离的Vue+Spring boot项目

    最近做了一个前后端分离的商城项目来熟悉开发的整个流程,最后希望能有个正式的部署流程,于是试着把项目放在云服务器上,做了一下发现遇到了不少问题,借此记录一下整个部署的过程. 使用的技术栈如标题所说大体上 ...

  9. FreeBSD ports 基本用法

    首先获取portsnap#portsnap fetch extract---------------------------------------使用whereis 查询软件地址如#whereis ...

  10. 优化自动化测试流程,使用 flask 开发一个 toy jenkins工具

    1.自动化 某一天你入职了一家高大上的科技公司,开心的做着软件测试的工作,每天点点点,下班就走,晚上陪女朋友玩王者,生活很惬意. 但是美好时光一般不长,这种生活很快被女主管打破.为了提升公司测试效率, ...