jenkins支持主从模式,这将会把构建任务分发到多个从节点去执行,这样就可以支撑起多个项目的大量构建任务,同时,你可以提供多种环境(如:开发环境、生产环境)来对同一个项目进行测试和构建。想要进一步了解jenkins主从模式的话可以参考官方文档。
本文档将针对配置 ubuntu 从节点进行图文介绍,希望可以减少读者试错浪费的时间。本文使用的是 jenkins 2.46.3 版本。
从节点准备工作
一个主机要作为jenkins的从节点需要满足两个条件:
- 该主机需要装有java运行环境
- 该主机允许jenkins master 服务器免密登录
设 jenkins master 为 A , 从节点 为 B 。我们进行如下准备工作:
SSH登录 B , 安装 java 环境
sudo apt-get update sudo apt-get install openjdk-8-jdk java -version
SSH登录A,如果还没有SSH密钥,则先生成SSH密钥,执行:
ssh-keygen
全部按Enter使用默认值。
有了密钥之后,将密钥传送到远程主机,执行:
ssh-copy-id <user-name>@<remote-host>
这样,我下次登录
<remote-host>
上的<user-name>
账户时就不需要密码了,可以试一下,执行:ssh <user-name>@<remote-host>
了解更多ssh远程登录的内容可以参考 SSH原理与运用(一):远程登录
在jenkins上配置从节点
打开jenkins,点击【系统管理】,选择【管理节点】
点击【新建节点】
输入【节点名称】,选中【permanent agent】,点击【OK】
配置节点,按照下表所示输入,加粗文字注意一下:
配置项 配置 名称 填节点名称 描述 节点描述 of executors 不改动。并发数量 远程工作目录 填写从节点上jenkins agent的工作目录,推荐只用绝对路径,如 /home/<user-name>/jenkins-agent
。注意jenkins要有该目录的读写权限标签 不改动。jenkins可以通过标签指定一组从服务器运行某个构建任务 用法 不改动。可以指定什么情况下使用该从节点,可以有“尽可能使用该节点”和“只有任务指定了使用该节点时,才用该节点运行”两种选择 启动方法 选择”launch slave agents via SSH” 主机 填写从服务器的ip或域名 Credentials 填写SSH认证信息,见附文1 Host Key Verification Strategy 选择 Manually Trusted Key Verification Strategy,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。说明一下,Host Key 验证是用来防止中间人攻击的 Require manual verification of initial connection 选中 Availability 不改动。可用性 高级——java路径 填写从主机上的java的路径,可以使用 which java
查看。如果这里不填,jenkins会扫描一些特定路径,如果扫描不到java,就会报错,所以建议填写Environment variables 勾选上,并填写运行构建任务所需要的环境变量。建议填上JAVA_HOME,免得jenkins运行构建任务时找不到java。 填完之后,点击【保存】
手动验证从节点身份
由于上面我们使用了“Manually Trusted Key Verification Strategy”策略,所以,这里我们需要手动验证一下从节点的身份。
点击我们刚刚新建的从节点:
点击【Trust SSH Host Key】,点击【是】:
点击【Launch agent】:
附文1:填写SSH认证信息
点击【add】,选择【jenkins】
参照下图输入,然后点【add】
千万注意:要填私钥位置,不是公钥喔!
选择刚刚创建的认证
参考文档
- Failed known_hosts verification for SSH agent
- Host Key Verification for SSH Agents