从 master 重新启动 Jenkins Slave

2024-01-01

我使用 jenkins 主从配置来捕获产品的性能指标。我们观察到 jenkins-slave 倾向于积累内存,从而影响捕获的性能指标。

为了确保捕获的指标的一致性,我们正在考虑每天在从站上没有运行作业时从主站重新启动 jenkins 从站。这可行吗?

我们怎样才能实现它呢?

注意:使用 jenkins-slave 作为服务不是一个选择,因为我们还存在其他安全访问问题。


我知道这个答案来得有点晚了:

这就是我出于同样的原因做了同样的事情,不确定这是否是实现这一目标的最佳方法,但它解决了我们的许多问题:

对于 Windows 机器:

  1. 创建一个仅在 Windows 计算机上运行“shutdown -r -f”的作业。 它将重新启动机器。
  2. 现在将其恢复为在线部分。出于和你类似的原因,我 没有使用“jenkins-slave 作为服务”。相反,我配置了 通过JNLP客户端连接节点,然后添加slave.jar Window 任务调度程序中每个节点的命令(运行在 启动)
  3. 现在作业重新启动机器并且 Windows 机器带来 重新启动后,Jenkins 本身就在线。

对于 Mac 机器:

  1. Mac 上的过程相对更容易。首先,创建一个作业来运行 Mac 节点上的“shutdown -r now”

  2. 该节点只需设置为通过 ssh 连接即可。那将 负责在 Jenkins 上将其上线。

这是我的脚本的“执行 shell”部分,用于重新启动用于自动化的所有计算机:

distro=`uname`
if [ "$distro" = "Windows_NT" ] || [ "$distro" = "WindowsNT" ] ;then
echo "Restarting Windows Machine...."
shutdown -r -f
else
echo "Restarting Mac Machine...."
sudo shutdown -r now
fi

PS:

它与问题并不完全相关,但可能对您指定的情况有用。添加批处理脚本来在 Windows 计算机启动时清理临时文件可能是个好主意。 将以下内容添加到 Windows 计算机启动文件夹中的批处理脚本(例如 cleanTemp.bat)中。 (对于 Windows 10,C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)

rmdir %temp% /s /q

md %temp%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 master 重新启动 Jenkins Slave 的相关文章

随机推荐