AzureDevops部署组
1.在Windows上安装部署池
部署组的意思,和代理服务器的差不多,就是说你在要部署的服务器上安装了代理软件,这个服务器就成为了部署组的一员,你就可以在上面部署程序了。部署组的创建还是让我头疼了一会。
(1) 打开Pipeline->部署组
(2) 点击新建,输入说明
(3) 会跳到安装指导页,右侧可以选择部署到windows还是linux上,选windows,会出现在PowerShell中要执行的命令,将其复制,然后在PowerShell中粘贴回车。
注意
- 全部复制,命令可能是执行不了的,会报错误,红色部分,注意原因是PowerShell不支持中文,把含中文的部分去掉就好了。
只粘贴后半部分:
1 | 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.153.1/vsts-agent-win-x64-2.153.1.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 "dd" --agent $env:COMPUTERNAME --runasservice --work '_work' --url 'http://localhost:8033/' --collectionname 'DefaultCollection' --projectname 'test' --auth Integrated; Remove-Item $agentZip; |
- 代理的安装和配置,特别的慢,一度让我以为是卡住了,坚持住,坚持到最后,你终究会看到曙光的。
(4) 经过长时间等待,最后成功了。
(5) 刷新页面,回到部署组的首页,就会看到已经联机的服务器
(6) 点击集合设置,部署组,点击部署服务器的名字,打开部署服务器设置。
(7) 打开部署服务器设置,详细信息,可以将部署服务器配置到某个具体的项目。配置完成后,就可以在项目的管道中,添加部署作用了,详见AzureDevops创建和管理项目。
1.Deployment groups
(8) 重新安装部署
要先卸载掉以前的,然后重新部署。进入agent目录,执行./config.sh remove,出现了一个输入用户名密码的地方(这个地方卡住了,结束,然后重新执行)
1 | ./config.sh remove |
如果连接不上服务器怎么办,直接删除这个文件夹,重新配置就好了。
1.Replace an agent (替换一个代理池)
2.Authentication error, while connecting to TFS from VSTS-agent installed Linux-RedHat machine
3.NTLM Authentication Fails with TFS 2015
4.Self-hosted Linux agents (这是官网提供的如何安装和配置代理池的说明)
2.在linux上安装部署池
(1) 下载vstsagent.tar.gz文件,并解压
(2) 修改config.sh和run.sh文件,就像下面的手动安装的样子一样
(3) 执行
执行下面的配置命令,根据提示一步步的操作就好了
1 | ## 第一次执行,安装相关依赖 |
(5) 安装为服务并启动
1 | ## 以系统服务的方式安装 |
(4) 卸载及其他命令
1 | ## 查找安装目录 |
注意,在安装部署池之前,一定要关闭SELinux,才能安装
第一种方法自动安装
在需要安装部署软件的服务器上(代理池其实和部署池差不多,只是名字不一样罢了),以管理员身份运行以下命令,(这个方法可能不行的)
1 | mkdir azagent;cd azagent;curl -fkSL -o vstsagent.tar.gz https://go.microsoft.com/fwlink/?linkid=2066772;tar -zxvf vstsagent.tar.gz; if [ -x "$(command -v systemctl)" ]; then ./config.sh --deploymentpool --deploymentpoolname "250-dev" --acceptteeeula --agent $HOSTNAME --url http://192.168.1.241/ --work _work --auth Negotiate --runasservice; sudo ./svc.sh install; sudo ./svc.sh start; else ./config.sh --deploymentpool --deploymentpoolname "250-dev" --acceptteeeula --agent $HOSTNAME --url http://192.168.1.241/ --work _work --auth Negotiate; ./run.sh; fi |
第二种方法,手动安装
(1) 下载安装包
下载的时候可能需要翻墙,否则下载的过程总是中断。直接打开:https://go.microsoft.com/fwlink/?linkid=2066772
或者是 https://vstsagentpackage.azureedge.net/agent/2.170.1/vsts-agent-linux-x64-2.170.1.tar.gz
,将vstsagent.tar.gz下载下来,通过rz命令(或者其他的工具)上传到服务器上就好了,然后从 tar -zxvf 命令开始执行解压操作。
(2) 修改config.sh和run.sh文件
Must not run with sudo
需要修改azagent下的config.sh文件中的内容(如何还是不行的话,干脆把两个文件中的四行代码都用#注释掉。)
1 | ## 将文件开头 |
(3) 执行安装
再次运行安装命令,其中的192.168.1.241,要换成你自己的AzureDevops Server主服务器安装地址。
1 | if [ -x "$(command -v systemctl)" ]; then ./config.sh --deploymentpool --deploymentpoolname "250-dev" --acceptteeeula --agent $HOSTNAME --url http://192.168.1.241/ --work _work --auth Negotiate --runasservice; sudo ./svc.sh install; sudo ./svc.sh start; else ./config.sh --deploymentpool --deploymentpoolname "250-dev" --acceptteeeula --agent $HOSTNAME --url http://192.168.1.241/ --work _work --auth Negotiate; ./run.sh; fi |
1.Azure DevOps vsts-agent-linux 安装出错, Must not run with sudo
2.卸载
3.sudo: ./svc.sh: command not found
4../svc.sh install is always failed
(3) 连接服务器说明
输入服务器地址,这个服务器地址,是安装了Azure DevOps的服务器地址,所以你的Azure DevOps需要可以被外网访问到。
输入服务器地址,以及用户名密码,也就是登录Azure DevOps的用户名密码
结果失败
(4) Some lines were ellipsized, use -l to show in full.
修改run.sh脚本,修改方式和修改config.sh文件一样。
(5) 重新运行run.sh,后台运行nohup sh run.sh &,按两次确定就好了(run.sh也是和修改config.sh同样的方法,也是找到这几句话,可能不是在开头,然后注释掉)。
总结,下载vstsagent.tar.gz->解压->修改config.sh和run.sh->运行下面命令:
和代理池的主要不同其实就是在./config.sh –deploymentpool —-deploymentpoolname 这个参数上,另外,安装不成功的时候,需要先执行:./bin/installdependencies.sh 命令。
1 | ## 注意 http://192.168.1.241/ 为你自己的devOps服务器地址,"250-dev"为你自己想要取的名字 |
或者是
输入devOps安装的服务器地址->输入登录devOps的用户名密码->重新运行run.sh
问题
libicu’s dependencies missing for .NET Core 3.1
出现这个问题,直接按提示,执行:./bin/installdependencies.sh
service does not exist.
今天再次安装部署池的时候,出现了无法启动的问题。
解决方法,因为是在新的系统上安装的,安装之前要关闭SELinux。
1 | ## 查看 |
1.查看 SELinux状态及关闭SELinux
2.SELinux prevents ./svc.sh install executing. (内容我没有看,我是通过标题,以及多次安装、卸载都无法正确的运行svc.sh,想到了是不是因为SELinux阻止了程序的启动)