Azure DevOps Services是微软公司的产品,其前身是Visual Studio Team Foundation Server。微软公司收购了GitHub之后,现在Azure DevOps和GitHub之间也有了很好的互动。其中的Azure Pipelines功能适用于企业级的持续自动化测试、部署等功能。
在Azure Pipelines中会用到代理机器(agent),主要分为微软官方代理机器(Microsoft-hosted agent)和私人代理机器(Self-hosted agent)。在一些情况下,微软官方代理机器不能满足使用者的需求,这个时候我们可以搭建私人代理机器(Self-hosted agent)来辅助完成工作。在Windows系统中安装私人代理机器(Self-hosted agent)非常简单,下载并解压agent文件,按照官方教程进行配置就可以了。
我的Linux系统建立在Azure Portal上的虚拟机里。系统版本是Ubuntu 16.04 。在Linux系统中安装agent时,我遇到并解决了一些问题。Self-hosted Linux agent官方文档。
1.下载适用于Linux的agent。
- 在Azure DevOps organization的设置中找到Agent pools,添加New agent,在弹出页面中选择Linux,复制出agent的下载地址,我这里是https://vstsagentpackage.azureedge.net/agent/2.164.7/vsts-agent-linux-x64-2.164.7.tar.gz

- 下载,命令为
wget https://vstsagentpackage.azureedge.net/agent/2.164.7/vsts-agent-linux-x64-2.164.7.tar.gz
- 为agent建立文件夹并解压
~/$ mkdir myagent && cd myagent
~/myagent$ tar zxvf ~/Downloads/vsts-agent-linux-x64-2.164.7.tar.gz
2.NET Core 2.1
.NET Core 2.1是在Linux上安装agent的前提。如果在安装agent的过程中发现报错说是依赖文件(Dependencies)不正确,那么要先安装包括.NET Core 2.1在内的依赖文件。在第一步中下载并解压的agent文件夹中,有适合的安装脚本./bin/installdependencies.sh ,所以我们只需要执行它就可以完成所有依赖文件的安装。
这里我换了cmd窗口来代替Windows PowerShell,因为PowerShell的颜色选择让我一言难尽,简直晃瞎了我的氪金眼。
3.配置agent
在myagent的目录下运行命令./config.sh,会逐步引导你配置agent,重要信息包括
- Azure DevOps organization的URL。
- 你的账户的个人通行证(Personal Access Token, PAT)。
在配置agent的过程中,我遇到了一个错误“Must not run with sudo”(参考), 需要在./config.sh中将
if [ $user_id -eq 0 -a -z "$AGENT_ALLOW_RUNASROOT" ]; then
echo "Must not run with sudo"
exit 1
fi
改成
if [ $user_id -eq 0 -a -z "$AGENT_ALLOW_RUNASROOT" ] && [ "${ALLOW_RUNASROOT:-default_value}" == "default_value" ]; then
echo "Must not run with sudo"
exit 1
fi
这里涉及到vim的使用,后面也会记录一些Ubuntu上基本命令的使用
4.运行agent
顺利完成第3步的配置后,我们就可以使用./run.sh命令来运行agent了,当看到Lisening for jobs并在Azure DevOps的agent pools中看到online的标志后,就证明这个self-hosted linux agent可以工作了。

这里需要注意运行./run.sh的时候也会遇到类似配置时的错误“Must not run interactively with sudo",同样修改run.sh文件如下,使可以利用root权限运行即可。
来源:CSDN
作者:曹萌德cc
链接:https://blog.csdn.net/cc93691810/article/details/104197600

