ssh - Jenkins 通过 SSH 奇怪重新启动 Slave Agent

标签 ssh jenkins agent

有时,我的一个 Jenkins 从代理会被 Jenkins 标记为离线。
代理实际上运行得很好,但 Jenkins 服务器似乎无法通过 ssh 连接到它。重新启动从代理只会产生一个空的日志控制台。

这个问题的一个非常奇怪和奇怪的解决方法如下:

  • 配置从代理以使用不正确的 IP 地址
  • 重新启动从代理(此时,可能有几行日志指示 ssh 尝试)
  • 再次配置从代理,这次使用正确的 IP 地址
  • 重新启动从代理

  • 这似乎每次都能解决问题。有没有人经历过这个并知道更好的解决方案?

    最佳答案

    我在 Jenkins 2.222.3 上遇到了类似的事情。中断后,大多数节点恢复并重新连接到主节点,但有几个节点没有。我重新启动了失败的从机,这根本没有帮助。
    我比较了好的和失败的从站的配置,检查了连接性/防火墙等。
    唯一不同的迹象是,根据主日志,在中断后,“好”从服务器尝试重新连接多次,因为存在以下几条日志消息:

    Attempting to reconnect slavexxx


    失败的从站只有上述日志消息之一。 (注意:我检查了节点配置的高级部分,即重试计数和重试间隔。所有从站对这些设置使用相同的默认值。)
    看起来有几个奴隶在第一次重试时卡住了,并保持在某种无限循环中。
    也许重新启动 Jenkins 会修复它,但幸运的是我找到了一个更轻松的解决方法:我将远程根目录设置从/foo/bar/更改为/foo/bar,反之亦然。是的,我只更改了尾随/,因此新路径和旧路径在语义上保持相同。 Jenkins 仍然可能感觉到远程根目录的变化是一个足够好的理由来中止正在进行的重新连接过程并开始一个新的过程。
    YMMV

    关于ssh - Jenkins 通过 SSH 奇怪重新启动 Slave Agent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24659802/

    相关文章:

    通过 ssh 进行 mysql 复制 - 失败

    docker - 将 Dockerfile 保存在项目中的什么位置?

    java - 为 Selenium 测试设置 Jenkins Windows 从屏幕分辨率

    java - 在哪里部署 Domino 代理的 jar 包

    azure - 尽管安装了代理,但无法从 Azure DevOps(云 - PaaS)访问内部 SonarQube(本地)

    windows - Git 在提交中使用了无效的作者姓名

    linux - 使用 ssh 执行命令从自动执行用户登录中获取输入

    linux - 如何编写 bash shell 脚本以通过 ssh 连接到远程计算机并更改用户并导出 env 变量并执行其他命令

    jenkins - 在从属节点上运行构建时,Docker为什么有用?

    java - 如何使用 Jericho 解析器设置用户代理