多节点构建
环境配置:
IP | jenkins 角色 |
用户 | 环境 |
---|---|---|---|
192.168.2.195 | master | jenkins:ci | jenkins maven java8 git |
192.168.2.194 | slave | jenkisn:ci | maven java8 git |
从节点要求
- 尽量选择干净的节点
- 同样需要支持Java构建相关的环境
- 主从节点间需要支持免密通信
- 不需要在从节点手动安装
jenkins
,由master节点自动进行控制 需要有
maven jdk git
环境,用于后续构建yum install git
多节点服务间免密配置
做节点主从,我们就需要给参与构建的slave
节点和master
进行免密通信的配置,方便构建过程中的调度通信。
目标:实现master的jenkins用户—》免密连接slave的jenkins用户
在
master
机器上使用jenkins
用户生成秘钥$ su jenkins # 进入当前目录下,查看是否已经有.ssh目录以及目录下的公私钥 $ cd ~ $ ls -a # 如果不存在,则执行如下命令进行生成 $ ssh-keygen -t rsa # 按3次回车
运行后会在当前用户的根目录生成一个.ssh文件夹
.ssh文件夹中的文件描述
id_rsa
: 生成的私钥文件id_rsa.pub
: 生成的公钥文件know_hosts
: 已知的主机公钥清单
接下来需要将公钥导入到认证文件中
$ su jenkins $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果希望ssh公钥生效需满足至少下面两个条件:
.ssh
目录的权限必须是700.ssh/authorized_keys
文件权限必须是600
给对应文件授权
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys
将
authorized_keys
文件拷贝到slave服务器的jenkins
用户.ssh目录下# 使用root用户 在slave上创建jenkins用户 $ groupadd ci $ useradd jenkins -g ci # 给创建一个密码 slave123 $ passwd jenkins # 创建/home/jenkins/.ssh文件夹(如果存在则不用创建) $ su jenkins $ cd ~ $ mkdir -p .ssh # 在master服务器上将jenkins用户.ssh/pub公钥文件拷贝到slave的jenkins用户的.ssh目录下,并命名为authorized_keys $ scp -p ~/.ssh/id_rsa.pub jenkins@192.168.2.194:/home/jenkins/.ssh/authorized_keys
在master服务器上进行免密连接测试
# 在jenkins服务器的/home/jenkins目录下创建filetest文件,并拷贝到应用服务器 $ cd ~/ $ touch filetest $ scp -p filetest jenkins@192.168.2.194:/home/jenkins/filetest # 进入到slave(192.168.2.194),检查/home/jenkins目录下是否出现filetest # 在jenkins服务器上使用ssh进行免密连接测试,成功后会出现Last Login的提示 $ ssh jenkins@192.168.2.194 Last login: Sun Sep 20 21:53:03 2022 $ exit
- 到此免密登录和拷贝实现成功,为接下来jar包部署提供了快捷的帮助
配置jenkins
从节点凭据
从节点的指定
从节点需要支持:Git、Maven、Java,如果要执行Node环境,则需要配置node
属性详解
- 名称:填节点名称,如slave1
- 描述:节点描述,如:这是第一个从节点
- 并发构建数(
Number of executors
):看着填数字,如:3 - 远程工作目录 填写从节点上
jenkins agent
的工作目录,推荐只用绝对路径,如/home/jenkins/jk
。注意jenkins
要有该目录的读写权限 - 标签:随意填写。
jenkins
可以通过标签指定一组从服务器运行某个构建任务 用法:可以指定什么情况下使用该从节点,建议选择第二种。
- 尽可能使用该节点
- 只允许运行绑定到这台机器的Job:任务指定了使用该节点时,才用该节点运行
启动方法:选择
launch slave agents via SSH
- 主机:填写从服务器的ip或域名
- Credentials:填写SSH认证信息,可用户密码认证或SSH密钥认证方式
- Host Key Verification Strategy 选择
Manually Trusted Key Verification Strategy
,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。Host Key 验证是用来防止中间人攻击 - 选中
Require manual verification of initial connection
- 可用性Availability:不修改
高级
java
路径 填写从主机上的java的路径,可以使用which java 查看。如果这里不填,jenkins会扫描一些特定路径,如果扫描不到java,就会报错,所以建议填写- 环境变量 勾选上,并填写运行构建任务所需要的环境变量。建议填上
JAVA_HOME
,免得jenkins
运行构建任务时找不到java。
- 工具位置
- 环境变量
填完之后,点击【保存】 ,并启动代理
从节点你指定的远程目录下就会生成slave.jar文件