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令牌.创建方法 官方给出了教程

 

posted @ 2019-01-31 11:18  Merray  Views(1534)  Comments(1Edit  收藏  举报