Jenkins管理静态节点

Jenkins搭建完成后一般只有一个master节点,此节点主要用于管理Jenkins配置,如果再在master节点上跑一系列的Job,未免有点太勉强,并且如果出现资源紧缺的现象,会影响到整个Jenkins的使用,所有一般我们会添加slave(agent)节点,使master节点专注于管理、构建,slave节点进行具体Job的运行。

Jenkins增加slave节点分为静态和动态两种,静态方式就是增加一个固定的节点,这个节点会一直在Jenkins中,动态的目前有docker和k8s等方式,本节主要介绍静态增加节点,动态方式下节介绍。

静态增加节点的方式

静态增加agent节点主要有以下几种方式:

  1. Launch agent via SSH:通过ssh方式增加节点,此方式需要以下几步:
    • 节点机器必须有java环境
    • ssh用户名+密码方式或者用户名+秘钥方式连接
  2. Java Web方式启动代理:这种方式,新增好Jenkins节点后,会出现一条加入命令,在目标机执行命令即可。使用此方式前提:
    • 目标机有Java环境
    • 提前下载好agent.jar这个包
  3. Launch agent via execution of command on the master:通过在master节点执行某些命令或者脚本来启动agent节点,一般当master可以免密操作另外一台机器时使用

增加节点示例

Java Web方式启动代理

  1. 系统管理—>节点管理—>新建节点

  2. 主要设置能同时运行的任务数,以及agent启动方式,远程工作的家目录等

  3. 保存后,agent是一个未连接的状态,需要点击agent的名字,然后根据提示配置agent端

  4. 使用java启动agent进程

  5. 登录agent机器,下载agent.jar包,启动进程即可(可以后台启动)

    # wget http://10.85.142.151:8080/jnlpJars/agent.jar
    # java -jar agent.jar -jnlpUrl http://10.85.142.151:8080/computer/javaweb/jenkins-agent.jnlp -secret @secret-file -workDir "/home/jenkins"
    

Launch agent via SSH方式启动代理

  1. 先添加ssh凭据,可以使用账号密码的形式,也可以使用私钥连接,看实际情况

  2. 创建完成之后,添加agent节点,选择SSH方式

    要选择一个主机秘钥验证策略,选择know_hosts文件方式即可,然后要在jenkins主机的存储目录下创建.ssh目录,保存known_hosts文件,不然会报错找不到.ssh/known_hosts文件。

  3. ssh可以连接到目标机器,agent即可正常使用

此两种方式比较灵活,推荐使用,也完全可以把命令放到容器中启动,以docker方式运行。