如何通过Azure CI管道在指定公司内网PC(LB-1)上运行命令
实现Azure DevOps CI仅在特定内网PC执行命令的方案
要满足你的需求,核心是把LB-1配置为Azure DevOps的自托管代理,再在CI管道中锁定仅使用该代理运行任务。具体操作如下:
1. 将LB-1配置为自托管代理
Azure DevOps的官方托管代理无法访问公司内网专用机器,必须通过自托管代理把LB-1接入你的DevOps组织:
- 登录Azure DevOps组织后台,进入项目设置 > 代理池,新建一个专属代理池(比如命名为
Internal-Machines) - 在LB-1上,打开刚创建的代理池页面,点击下载代理,获取对应系统的安装包
- 解压安装包后运行配置脚本(Windows下为
config.cmd),按提示完成配置:- 填入DevOps组织的URL
- 输入具备代理池管理权限的个人访问令牌(PAT)
- 选择刚才创建的
Internal-Machines代理池 - 设置代理名称为
LB-1(和你的设备标识保持一致,方便后续精准指定) - 配置完成后启动代理服务,建议设置为开机自动启动,确保LB-1开机时代理始终在线
2. 修改CI管道YAML,锁定LB-1执行任务
基于你提供的初始管道代码,添加代理池和代理名称的约束,确保任务仅在LB-1上运行:
# Starter pipeline # Start with a minimal pipeline that you can customize to build and deploy your code. trigger: - main # 指定使用自托管代理池,并要求代理名称必须为LB-1 pool: name: Internal-Machines demands: - Agent.Name -equals LB-1 steps: - script: | cd Downloads echo > sample.txt echo "Folder created successfully." displayName: 'Create Folder in Downloads'
注意事项
pool.name必须和你创建的自托管代理池名称完全匹配demands中的Agent.Name对应LB-1上配置的代理名称,确保只有这台机器会触发任务- 确保LB-1始终开机且代理服务正常运行,否则管道会处于等待代理在线的状态
- 检查LB-1的权限:执行脚本的代理账户需要拥有
Downloads目录的读写权限,避免命令执行失败
内容的提问来源于stack exchange,提问作者Tester
相关产品推荐
相关产品推荐

