我们在使用jenkins的时候,一般来说肯定是有slave节点的,本来网上也有好多关于jenkins节点配置的教程,我也就不写了。简单说明一下:任务一般是在slave上面运行的。当然不是讲master节点不能跑任务,master节点主要是处理调度构建作业,把构建分发到slave节点进行实际执行,监视slave节点的状态(必要时让它们进行上线或者离线),记录和发布构建产物。
注意:构建结果和构建产物最后还是传回到master节点,比如说在jenkins工作目录下面的workspace里面的东西,其实在master节点照样是有一份的。(网上的文章很少有提到这一点的)
主要常用的的连接slave节点的方式就是通过ssh和jnlp。两个特点分别如下:
- ssh来说,我们一般用的服务器都是linux系统,当然最方便的就是通过ssh启动jenkins节点,但是这个有个前提的要求就是master和slave之前能进行ssh连接
- jnlp连接方式有个好处就是不用master和slave之间能够ssh连接,只需要能够ping即可。并且如果slave的机器是windows的话,也是可以的这个其实是非常实用的,因为有时候,可能一些权限或者防火墙的原因,这master和slave真的不能够ssh连接,还有一些未知的原因无法ssh到slave节点(我下面说的公司这个例子就是这样),都可以通过jnlp的方式进行连接。
本来是中秋节放假之期,微信群里就有人进行说,jenkins的slave节点好像不好使,上去看了下,slave节点连接挂了。下面只是我个人处理问题的一次记录,仅供大家进行参考。
问题:在slave节点上面的job不能正常的运行。
1、先登录jenkins看了一下节点,好像节点真的是挂了。看了一下是通过ssh进行连接的,点击重启了一下还是不行。
2、然后我就随手ping了一下机器,发现机器是可以ping通的,但是丢包好像是挺严重的,因为这台机器是在