问题标签 [azure-devops-self-hosted-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3168 浏览

azure-pipelines - 如何更改在 Azure Pipelines 中运行的管道的用户帐户

我们正在 Azure Pipelines 中设置一个新管道,该管道执行对 Azure DevOps 存储库的 git 提交。管道由 Windows 自托管代理执行。代理已经使用来自具有管理权限的用户的令牌注册,但是当启动管道时,我们看到 git 提交正在由另一个无权访问存储库的用户执行。我们想为这个 git commit 步骤定义一个不同的用户。

阅读 Azure Pipelines 文档后,我看到代理使用了三种不同的身份验证令牌:

  • 代理注册令牌:仅在代理池中注册代理时使用
  • 侦听器 OAuth 令牌:代理在侦听新作业时使用
  • 特定于作业的 OAuth 令牌:由代理在运行单个作业时使用

文档的这一部分使我们认为特定于作业的 OAuth 令牌是我们需要更改的令牌:

当作业可用时,代理会下载作业以及特定于作业的 OAuth 令牌。此令牌由 Azure Pipelines/TFS 为管道中指定的范围标识生成。该令牌是短暂的,代理使用它来访问该作业中 Azure Pipelines 或 TFS 上的资源(例如,源代码)或修改资源(例如,上传测试结果)。

在 Azure Pipelines 中,我们如何或在何处更改自托管代理在执行管道时使用的特定于作业的 OAuth 令牌?

任何有关此主题的帮助或澄清将不胜感激。

0 投票
0 回答
623 浏览

deployment - vsts 自托管/本地代理在部署应用程序时脱机

我是 DevOps 的新手,在部署应用程序时遇到了困难。我在 VSTS 中创建了一个 Release,Latest BuildLatest Code在 Artifacts 部分添加了我的和。在阶段区域中,我创建了一个阶段,它包含一些任务:

我正在使用已在本地计算机上配置的本地代理。在部署应用程序之前,我确保在我的 Powershell 窗口中运行代理以便获取状态Online(以防状态为脱机)

当我创建部署以部署此版本时,它成功初始化代理并进入下一步,即下载工件。下载 Artifacts 需要更长的时间来执行大约 9 分钟以上,同时我的 Powershell 控制台窗口会自动关闭。

当我在代理池中检查代理的状态时,它显示为离线。

0 投票
0 回答
2097 浏览

azure-devops - 如何解决无法启动服务以在运行 Linux VM 的 Azure 上运行私有构建代理的问题

我已经在 Linux 上安装并以交互方式运行 Azure DevOps 的私有构建代理。

但是,当尝试按照文档设置为服务时,它无法运行。它通常会成功完成安装。但是,启动服务总是返回错误。

配置:运行 Ubuntu 18.04LTS 的新 VM,使用 AAD 和 JIT 保护,使用 VM 管理员权限登录。

错误

尝试运行时,我得到了这个:

关于为什么这不起作用的任何建议。

0 投票
3 回答
1112 浏览

kubernetes - 用于从 Azure DevOps 中删除多个离线代理的 API

我们的 Azure DevOps 构建代理是在 Kubernetes 上设置的。失败的 pod 可以很容易地从 kube 中删除,但它们在 Azure DevOps Web UI 中显示为“离线”代理。

加班线下代理的名单真的很长。有没有办法以编程方式删除它们?

0 投票
0 回答
468 浏览

linux - Azure Pipeline Agent 无法使用代理并出现 Curl 错误:CURLE_RECV_ERROR

尝试使用 代理通过代理在 RHEL7 机器上配置代理时 ./config.sh --proxyurl <PROXY_URL>,在提示输入服务器 URL 和 PAT 后会卡住。

在查看_diag文件夹中的日志时,它看起来像是在语句中配置为使用代理 - Update proxy setting from '' to'<PROXY_URL_GIVEN_IN_ARGS>',但它无法连接到服务器并一直失败CURLE_RECV_ERROR,那里没有其他信息。

正在使用的机器正在运行Red Hat Enterprise Linux Server release 7.3 (Maipo)并且libcurl/7.29.0OpenSSL 1.0.1

任何帮助表示赞赏。

0 投票
1 回答
340 浏览

azure-devops - 我需要为自托管的 VSTS 发布代理定义哪些 DNS 名称

我已经在开发服务器上启动并运行了一个自托管的 VSTS / Azure DevOps 发布代理,并且部署我的应用程序没有问题。

我也有一个 QA 和生产环境,但它被锁定,只允许出站流量到指定的地址/协议。我知道我需要从MSDN打开的 IP 地址,并且我安装了代理并且它们似乎在线。这些 IP 地址在端口 443 上是畅通的。我在这些服务器上也没有 DNS 功能,所以我为 dev.azure.com 和 vsapps.dev.azure.com 添加了主机条目(我认为这是对的,但我不在前面现在的机器)。这让我上网。

一旦我尝试对这些服务器进行部署,它就会停止并且错误表明与服务器的通信丢失。我假设 *.dev.azure.com 下还有其他子域,我需要为其提供主机条目,但我不知道它们是什么来启用它们。

是否有资源可以 a) 告诉我需要将哪些子域添加到主机文件中,或者允许我进行通配符 DNS 查找,而无需在我的机器上安装一些第三方代理服务器(不会被允许网络和安全)。我知道我不能在我的主机文件中使用通配符。

0 投票
1 回答
5995 浏览

azure-devops - 在自托管 Azure DevOps 代理上运行维护

我有几个自托管的 Azure DevOps 代理(每个都安装在专用的本地服务器上),我需要对它们执行重复维护(即修补等)。是否有一种在 Azure DevOps 中定义这些维护窗口的好方法,以便服务器管理员可以完成他们的工作而不必担心中断任何正在进行的构建/发布任务?

似乎有一个与配置重复维护(Organization Settings-> Agent Pools-> <Pool Name>-> Settings [tab])相关的设置,但它似乎适用于整个池,并且很难判断哪些代理将在哪个时间段被视为脱机。不幸的是,我找不到任何有关它的文档,并且不确定 Azure DevOps 是否还会在代理机器上执行某些操作(即运行清理、更新代理等)

目前,该过程涉及在 Azure DevOps 中具有管理员权限的人员禁用代理,允许服务器管理员执行定期维护,并在服务器管理员完成后重新启用它。如果服务器管理员不能每次都让 Azure DevOps 管理员参与此类例程,那就太好了。

0 投票
1 回答
77 浏览

azure-devops - 希望在自托管代理上运行大门

我需要在我的版本中设置一个门来验证一些事情。验证必须在我的网络内部进行,因此使用任何开箱即用的门选项都不起作用。

是否可以在自托管代理上运行门并执行一些 PowerShell,以便我可以完全访问自己的网络?我可以更改我的工作以在自托管代理上运行,这可能吗?我将如何对门做同样的事情?

我可以在阶段构建一个任务来进行验证,但是我需要一个门提供的重试,因为我假设当阶段被击中时它会失败,但最终会通过。

谢谢,

0 投票
4 回答
9101 浏览

azure-devops - 尝试使用 azure-pipelines.yml 将管道池设置为默认代理池时出错

我按照通过Pipelines Schema Docs 设置池的文档进行了设置pool: Default。这应该指导管道使用默认池:

dev-ops UI 中所有代理池下的默认代理池

但是,我不断收到此错误:

找不到名称为 Default 的池。 该池不存在或未被授权使用。 有关授权详情,请参阅 https://aka.ms/yamlauthz。

找不到名称为 Default 的池。该池不存在或未被授权使用。有关授权详情,请参阅https://aka.ms/yamlauthz

据我所知,它应该被授权。

我也试过:

完整的 azure-pipelines.yml

0 投票
1 回答
851 浏览

gradle - Gradle Daemon 在“完成作业”步骤中被杀死

我有一个“构建”管道,它在我的 java 代码上运行 gradlew build,然后将 jar 作为工件导出。

它目前在自托管代理上运行,因为我希望这将有助于加快编译速度。

我注意到在每次运行开始时它都说它正在启动一个新的守护进程,因为停止的守护进程无法使用。

在“完成作业”步骤中,它显示“开始清理孤立进程”。然后“终止孤立进程:pid (17162) (java)”。在下图中,您可以看到它确实正在终止守护进程的进程。

任务和 PID 的图像

我试过在服务器上运行 gradlew build,然后运行 ​​CI,然后 CI 使用 gradle 守护进程。但是,如果我同时运行两个构建,则守护程序有时会在另一个处于活动状态时结束。

有什么方法可以停止清理孤立进程或保持守护进程运行?

我已经想到了一个 cron 工作来构建一些小的东西来保持它的运行,但这感觉像是一种尴尬的方式。