Azure Pipelines-部署代理問題


 

使用Azure Pipelines時代理腳本一直不成功,根據官方提示,可以使用下方的注冊腳本自動執行代理

 

 

實際執行過程中,經常是無法執行完成,仔細閱讀腳本,發現該腳本一共做了如下幾步:

1.下載代理 agentZip壓縮包到C盤azagent目錄下

2.解壓縮agent為Agent1(如果存在序號會一次遞增)

3.運行解壓后的agent目錄種的“config.cmd” 啟動配置

4.刪除agentzip包

$ErrorActionPreference="Stop";If(-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() ).IsInRole( [Security.Principal.WindowsBuiltInRole] “Administrator”)){ throw "Run command in an administrator PowerShell prompt"};If($PSVersionTable.PSVersion -lt (New-Object System.Version("3.0"))){ throw "The minimum version of Windows PowerShell that is required by the script (3.0) does not match the currently running version of Windows PowerShell." };If(-NOT (Test-Path $env:SystemDrive\'azagent')){mkdir $env:SystemDrive\'azagent'}; cd $env:SystemDrive\'azagent'; for($i=1; $i -lt 100; $i++){$destFolder="A"+$i.ToString();if(-NOT (Test-Path ($destFolder))){mkdir $destFolder;cd $destFolder;break;}}; $agentZip="$PWD\agent.zip";$DefaultProxy=[System.Net.WebRequest]::DefaultWebProxy;$securityProtocol=@();$securityProtocol+=[Net.ServicePointManager]::SecurityProtocol;$securityProtocol+=[Net.SecurityProtocolType]::Tls12;[Net.ServicePointManager]::SecurityProtocol=$securityProtocol;$WebClient=New-Object Net.WebClient; $Uri='https://vstsagentpackage.azureedge.net/agent/2.144.2/vsts-agent-win-x64-2.144.2.zip';if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))){$WebClient.Proxy= New-Object Net.WebProxy($DefaultProxy.GetProxy($Uri).OriginalString, $True);}; $WebClient.DownloadFile($Uri, $agentZip);Add-Type -AssemblyName System.IO.Compression.FileSystem;[System.IO.Compression.ZipFile]::ExtractToDirectory( $agentZip, "$PWD");.\config.cmd --deploymentgroup --deploymentgroupname "DeployGroup" --agent $env:COMPUTERNAME --runasservice --work '_work' --url 'https://dev.azure.com/TestRepo/' --projectname 'WebDemo'; Remove-Item $agentZip;

由於微軟官網下載很慢導致第一步就卡住,那我們就直接從官網直接下載壓縮包,在腳本中可以直接看到zip包的下載地址,直接下載該文件即可。

第二步:手動解壓到C盤azagent目錄下的Agent1文件夾中(目錄可以自由創建,這里使用的是agent1)

該目錄下存在2個cmd,config.cmd用來執行代理參數的配置,run.cmd負責啟動agent

第三步:配置代理config參數,這里使用的powshell 需要 .\ 才能運行cmd 喔

 .\config

 

 

運行完發現部署組並沒有出現該代理,難道配置錯誤,仔細再閱讀原腳本,發現官方腳本中 config后面帶了一堆參數,ok 這次全部加上,里面附帶了所屬部署組和項目名稱等參數

.\config.cmd --deploymentgroup --deploymentgroupname "DeployGroup" --agent $env:COMPUTERNAME --runasservice --work '_work' --url 'https://dev.azure.com/TestRepo/' --projectname 'WebDemo'

由於之前已經配置了一次 需要先刪除原有的配置再執行(執行 .\config.cmd remove即可),然后再執行上面的腳本即可.

 

PS C:\azagent\A3> .\config.cmd remove
正在從服務器刪除代理
輸入 身份驗證類型 (對於 PAT 按 Enter) >
輸入 個人訪問令牌 > ***********************************
正在連接到服務器...
已成功: 正在從服務器刪除代理
正在刪除 .credentials
已成功: 正在刪除 .credentials
正在刪除 .agent
已成功: 正在刪除 .agent
PS C:\azagent\A3> .\config.cmd --deploymentgroup --deploymentgroupname "DeployGroup" --agent $env:COMPUTERNAME --runasse
rvice --work '_work' --url 'https://dev.azure.com/TestRepo/' --projectname 'WebDemo'

>> 連接:

輸入 身份驗證類型 (對於 PAT 按 Enter) > vwvyzagdtm7nhup
為 身份驗證類型 輸入一個有效值。
輸入 身份驗證類型 (對於 PAT 按 Enter) >
輸入 個人訪問令牌 > ***********************************
正在連接到服務器...

>> 注冊代理:

正在掃描工具功能。
正在連接到服務器。
輸入 代理的部署組標記? (是/否) (對於 N 按 Enter) >
已成功添加代理
正在測試代理連接。
2019-02-11 01:22:26Z: 設置已保存。
輸入 要用於服務的用戶帳戶 (對於 NT AUTHORITY\SYSTEM 按
將文件權限授予“NT AUTHORITY\SYSTEM”。
已成功安裝服務 vstsagent.TestRepo.iZcdeh6xxtihkjZ
已成功設置服務 vstsagent.TestRepo.iZcdeh6xxtihkjZ 的恢
服務 vstsagent.TestRepo.iZcdeh6xxtihkjZ 已成功設置為延
已成功配置服務 vstsagent.TestRepo.iZcdeh6xxtihkjZ
已成功啟動服務 vstsagent.TestRepo.iZcdeh6xxtihkjZ

 

這次終於看到成功界面了~~~~(>_<)~~~~

Azure devops項目 Deplpoyment Goups菜單中Targets下也終於出現了的該機器信息,狀態顯示Healthy表示健康可用,后續就可以將項目發布到該機器上了😄

 

注意:這里使用的身份驗證類型為PAT 創建Token后使用使用生成的Token令牌.創建方法 官方給出了教程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM