在Ubuntu上安装Azure DevOps self-hosted agent

守給你的承諾、 提交于 2020-02-06 20:05:52

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权限运行即可。
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!