【问题标题】:Jenkins label not recognised for node节点无法识别 Jenkins 标签
【发布时间】:2019-09-10 12:45:59
【问题描述】:

我正在尝试使用 jenkins 部署到一个节点,即使作业识别该节点,当尝试运行该作业时,该作业会变为挂起并尝试查看该节点的每个环境。

我最近设置了一个新的 jenkins 作业,将一个 Spring Batch 项目部署到服务器上。我们已经有另一个项目部署到同一节点的作业,因此该节点被识别,并且在查看该构建时它确实列出了三个作业。

但是,当尝试运行此新作业时,它会尝试根据我们所有现有标签查找节点(请参阅下面的代码以获取示例输出),但找不到应该运行的实际节点。

我使用的示例是 NEW_BATCH_DEPLOYMENT,列出了在环境中有 3 个作业,两个是尚未运行的新作业,一个是在尝试批处理作业之前运行并成功的作业。

为了调试,我们尝试使用 NEW_BATCH_DEPLOYMENT_2 进行部署,这给我们一个错误“找不到带有标签 NEW_BATCH_DEPLOYMENT_2 的节点”,如果我们删除节点名称,它只会使用我们的默认节点之一运行。

有没有人看到类似的东西,或者有任何解决方案的想法?我已经将新工作与工作工作进行了比较,唯一的区别是部署到何处的文件路径,以及将项目拉下来的 git url。

Jenkins 版本:2.181

(待定—;“Env_1”没有标签“NEW_BATCH_DEPLOYMENT”;“Env_2”没有标签“NEW_BATCH_DEPLOYMENT”;“Env_2”没有标签“NEW_BATCH_DEPLOYMENT”;

我希望它部署到节点,但它只是挂起并挂起,并没有达到输出到 jenkins 控制台的阶段。

如前所述,其他具有类似配置的作业也可以工作。

【问题讨论】:

  • 如果您的节点是 Docker 容器,并且正如您所说,同一节点上的其他作业运行良好,那么有时可能会延迟几秒钟或更长时间,直到 Jenkins 生成一个新容器并获取它准备好,显示这些通用消息。如果等待时间异常长,请检查是否由于构建中止等原因导致 Docker 主机中滞留的杂散容器过多,从而使为允许的并发容器数量设置的上限达到最大值。可能还有其他可能的原因,但由于其他构建工作正常,我们可以将它们推迟一段时间。

标签: jenkins web-deployment


【解决方案1】:

所以只是为了确认一下,这就是您使用的确切标签吗? “NEW_BATCH_DEPLOYMENT”?或者那是节点的名称?标签应该在节点配置中的“标签”部分下设置,除了标签名称之外没有其他字符。

如果标签中有空格(在工作端或配置/设置端),我遇到了无法找到节点标签的问题

如果标签设置正确,也可能是分配给“NEW_BATCH_DEPLOYMENT”的节点离线。

【讨论】:

  • 如果您查看作业,在标签表达式下,您会得到 Label NEW_BATCH_DEPLOYMENT 由 1 个节点提供服务,因此它认为它是有效的。如前所述,如果您单击该节点,它会列出其他作业,并且我们在运行尝试运行该节点之前大约 10 分钟将另一个项目部署到该节点。那个是成功的,所以节点不应该有任何问题。这两个工作都只是为了解压不同的 git repo,所有其他变量都是相同的。
【解决方案2】:

好的,我们修好了。

似乎在节点级别您可以对作业设置限制,因此在设置节点时,它被限制为只能运行一项作业。问题是,您可以看到这一点的唯一方法是使用管理员登录。

如果其他人有这个问题,我强烈建议检查节点上的设置,看看节点本身是否有任何限制,而不是作业。您需要 Jenkins 管理员来执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2016-06-16
    • 1970-01-01
    • 2015-05-09
    • 2013-05-08
    • 2017-11-04
    相关资源
    最近更新 更多