有时,我的一个 Jenkins 从代理会被 Jenkins 标记为离线。
代理实际上运行得很好,但 Jenkins 服务器似乎无法通过 ssh 连接到它。重新启动从代理只会产生一个空的日志控制台。
这个问题的一个非常奇怪和奇怪的解决方法如下:
这似乎每次都能解决问题。有没有人经历过这个并知道更好的解决方案?
最佳答案
我在 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/