快速配置Azure DevOps代理服务器(CentOS 7)

Azure DevOps非常好用,但是代理服务器的配置相对有点麻烦而且易出问题,接下来笔者分享一下如何快速配置Azure DevOps的代理服务器。值得注意的是,本文以CentOS 7为例,故在开始之前,请先准备好CentOS 7服务器。

下载Linux代理

在Azure DevOps的代理池管理界面,我们可以下载Linux代理的安装包:

点击下载按钮,下载到本地。

上传到目标代理服务器(CentOS 7)

我们可以使用WinSCP工具将安装包上传到目标服务器:

上传完成后,可以执行以下命令创建目录并解压:

mkdir myagent && cd myagent
tar zxvf /root/vsts-agent-linux-x64-2.153.1.tar.gz

解压之后,可以看到如图所示的目录。

安装依赖

解压之后,我们需要检查并安装必备的依赖:

./bin/installdependencies.sh

 

配置代理

安装完成之后,我们就可以配置代理了。我们可以手工配置,也可以使用脚本配置。无论哪种配置方式,均需要执行“./config.sh”脚本:

不过这块有几个注意事项。

“Must not run with sudo”问题

如出现“Must not run with sudo”提示导致无法执行,则编辑改文件,移除以下脚本:

if [ $user_id -eq 0 -a -z "$AGENT_ALLOW_RUNASROOT" ]; then
echo "Must not run with sudo"
exit 1
fi

验证类型说明

  • Alternate 基本身份验证
  • Integrated Windows集成身份验证,不支持 macOS 和 Linux.
  • Negotiate (默认) 通过Windows身份验证方案(例如NTLM或Kerberos)以登录用户以外的用户身份连接到TFS或Azure DevOps Server。选择此模式后,系统将提示输入凭据。
  • PAT 令牌验证,需创建令牌

相关详细的配置可以参考:https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-linux?view=azure-devops#unattended-config

一次次手工配置太麻烦,我们可以直接使用脚本配置。

使用脚本配置

参考脚本如下所示:

./config.sh --unattended --url https://Azure DevOPS域名 --auth negotiate --userName 用户名 --password 密码 --pool default

如上面脚本所示:

  • 使用–unattended指定了使用命令行参数配置
  • 使用–url指定了Azure DevOps服务器域名
  • 使用--auth <type>指定了身份验证类型
  • –userName指定用户名
  • –password指定密码
  • –pool指定代理要加如的代理池名称
  • 其他参数均使用默认参数

安装代理服务并启动

代理可以通过命令行的方式运行,但是不便于无人值守。我们可以将代理安装为服务并启动:

sudo ./svc.sh install
sudo ./svc.sh start

启动之后,就可以在代理池看到我们的代理服务器了:

 

安装Git 2.9.0以上版本(必须)

这里我们使用IUS来进行安装。注意:IUS是一个yum存储库,为RHEL和CentOS提供了较新版本的精选软件。

在开始之前,我们需要安装IUS:

yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

然后我们可以在此地址去找我们需要的包了:

https://github.com/search?q=org%3Aiusrepo+topic%3Arpm&s=updated

比如Git我们可以使用此库的包:https://github.com/iusrepo/git224

go:

yum install -y git224

由于网络问题,请耐心等待。

安装和配置Docker

如果需要用到Docker构建,则必须安装Docker。这里直接使用快捷脚本安装:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

接下来我们配置加速器以及Docker服务:

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl enable docker
systemctl restart docker

至此,代理就基本上配置完成,可以尽情的构建了:

快速配置Azure DevOps代理服务器的更多相关文章

  1. 在Azure DevOps Server (TFS)中实现VUE项目的自动打包

    概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文 ...

  2. Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源

    一,引言 上一篇我们结合学习 Azure Traffic Manger 的内容,做了一个负载均衡的基础设施架构.通过 Terraform 部署执行计划,将整个 Azure Traffic Manage ...

  3. Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译

    一,引言 我们是否正在为如何快速的编译.部署客户端应用程序而烦恼?这也是博主最近遇到的问题.目前博主所在公司主要做项目级的定制化开发,多以 C/S 架构的 WPF 程序为主,每次到了协助开发团队给实施 ...

  4. Azure Data Factory(三)集成 Azure Devops 实现CI/CD

    一,引言 由于上一节文章内容过长,无法分享Azure Data Factory 的持续集成,持续发布.今天将着重介绍一下在使用 Azure DevOps Pipeline 发布,自动进行持续集成,并且 ...

  5. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  6. Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

    一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...

  7. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

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

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

  9. 如何利用Azure DevOps快速实现自动化构建、测试、打包及部署

    前两天有朋友问我,微软的Azure好用吗,适不适合国人的使用习惯,我就跟他讲了下,Azue很好用,这也是为什么微软云营收一直涨涨涨的原因,基本可以再1个小时内实现自动化构建.打包以及部署到Azure服 ...

  10. 为Azure DevOps Server (TFS) 配置安全访问(HTTPS with SSL)

    Contents 1. 概述 2. HTTP和HTTS比较 支持HTTP和HTTPS两种方式 要求所有连接使用HTTPS 优点: 缺点: 3. 为Azure DevOps Server 配置安全访问 ...

随机推荐

  1. 原创单总线传输协议b2s (附全部verilog源码)

    一.b2s协议背景介绍 本单总线传输协议为精橙FPGA团队原创,含传送端(transmitter)和接收端(receiver)两部分,基于verilog语言,仅使用单个I/O口进行多位数据的传输,传输 ...

  2. 【金TECH频道】汇聚多元化超级算力,看见更好的“源启”

    越来越多的金融机构开始利用大数据和AI技术,提升信贷业务的效率,利用隐私计算打造开放式金融,让客户随时随地获得金融服务:气象领域,高精度计算让我们能准确地预测恶劣的天气,医疗大数据让部分癌症的治愈成为 ...

  3. kubeadm安装 k8s集群证书过期更新

    kubeadm安装 k8s集群证书过期更新 kubeadm版本 v1.18.8 #查看证书 #mast节点,查看所有证书 kubeadm alpha certs check-expiration #若 ...

  4. 【Web前端】【开源分享】H5登陆界面 - 2021年12月30日

    下载地址 Gitee下载 后续更新关注本文评论区作者萌狼蓝天的回复

  5. Ubuntu 22.04 LTS 代号已经公布:那就是 Jammy Jellyfish

    Ubuntu 22.04 LTS 代号已在 Ubuntu 开发之家 Launchpad 上公布. 在字母系列中的字母"I"之后,是"J". 因此,Canonic ...

  6. tar/zip命令加密压缩

    回到顶部 场景 Centos6下使用加密压缩,可以从A机器到B机器解压. 可用在kali上解压就不行. 回到顶部 命令 解包 tar zxvf FileName.tar 打包 tar czvf Fil ...

  7. Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品

    随着技术的成熟和 AI 的崛起,很多原本需要团队协作才能完成的工作现在都可以通过自动化和智能化的方式完成.于是乎,单个开发者的能力得到了极大的提升 - 借助各种工具,一个人就可以完成开发.测试.运维等 ...

  8. Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器

    一.前言 在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的硬件设备 ...

  9. Qt编写可视化大屏电子看板系统18-柱状分组图

    一.前言 柱状分组图是柱状堆积图的衍生或者另外一种展示效果,设置的数据值数据源集合完全一样,只不过就是把柱子给拿下来了放在旁边,然后一个分组多个柱子横向排列,不同分组之间有一定的空隙隔开,默认QCus ...

  10. TypeScript学习(一) - 一些基本的数据类型

    1. 数据类型 1.1 原始数据类型 boolean number string null undefiend Array Map Tuple 1.2 特殊类型 任意值类型(any) 联合类型 1. ...