天天看點

快速配置Azure DevOps代理伺服器

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

Azure DevOps非常好用,但是代理伺服器的配置相對有點麻煩而且易出問題,接下來筆者分享一下如何快速配置Azure DevOps的代理伺服器。值得注意的是,本文以CentOS 7為例,故在開始之前,請先準備好CentOS 7伺服器。

下載下傳Linux代理

在Azure DevOps的代理池管理界面,我們可以下載下傳Linux代理的安裝包:

快速配置Azure DevOps代理伺服器

點選下載下傳按鈕,下載下傳到本地。

上傳到目标代理伺服器(CentOS 7)

我們可以使用WinSCP工具将安裝包上傳到目标伺服器:

快速配置Azure DevOps代理伺服器

上傳完成後,可以執行以下指令建立目錄并解壓:

mkdir myagent && cd myagent
tar zxvf /root/vsts-agent-linux-x64-2.153.1.tar.gz      
快速配置Azure DevOps代理伺服器

解壓之後,可以看到如圖所示的目錄。

安裝依賴

解壓之後,我們需要檢查并安裝必備的依賴:

./bin/installdependencies.sh      
快速配置Azure DevOps代理伺服器

配置代理

安裝完成之後,我們就可以配置代理了。我們可以手工配置,也可以使用腳本配置。無論哪種配置方式,均需要執行“./config.sh”腳本:

快速配置Azure DevOps代理伺服器

不過這塊有幾個注意事項。

“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      
快速配置Azure DevOps代理伺服器

啟動之後,就可以在代理池看到我們的代理伺服器了:

快速配置Azure DevOps代理伺服器

安裝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      
快速配置Azure DevOps代理伺服器

由于網絡問題,請耐心等待。

安裝和配置Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh      
快速配置Azure DevOps代理伺服器
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代理伺服器

繼續閱讀