公司级的Jenkins使用者不可能只用一台机器做构建,必然还有其他的节点,本篇为大家阐述如何配置普通节点。
建立slave节点通用配置
系统配置项-节点管理,可以查看当前的节点信息
点击左侧菜单栏新建节点,第一次创建只能是固定节点,后续可以创建复制其他节点
主要配置项解析
Number of executors:执行器数量,运行的任务最大数量。
远程工作目录:slave节点的工作目录
标签 labels :节点的分组标签。
用法:分为两种,尽可能使用这个节点,意思是随便运行任务就会匹配到这个机器上运行;只运行绑定到这个机器上的任务,任务配置了标签匹配后即可。
节点属性中的工具位置和环境变量可以提前预设一些工具位置和变量的值。
创建完成后,在节点界面如果不正常可能要重启代理,如果正常可以查看正在机器上运行的工作。
在任务设置中,可以看到通用配置里的限制项目运行节点选项,可以使用标签表达式匹配,常用或||。
launch agent via ssh
启动方式: launch agent via ssh,主机处配置IP,credentials选择用户名账号的方式,key verification选项选择不验证。账号密码需具有操作远程工作目录的权限,高级配置中还有一些jvm,超时时间的选项。
可用性:一般选择尽量保持代理在线。
根据经验,添加新的用户用useradd -m 用户名,可以直接创建用户文件夹,后期可以直接登录,直接useradd会有些链接问题。
主页右侧也有了节点的信息:
此方式的credentials也可以选择私钥的方式,需要在节点的authorized_keys放入公钥。此处可能与ssh agent插件的ssh有冲突,需要慎重选择。
通过远程命令方式
选择launch agent via execution of command on the controller,写入launch命令
ssh -v jenkins_slave@ip "java -jar ~/slave.jar"
就是上一种方式的命令登录式,在launch command的问号处可以找到下载该文件的链接
此时需要先配置主机免密码登录slave机器
将主机jenkins用户下的.ssh文件下的公钥,放入slave机器用户该目录下authorized_keys文件中。
主机的目录在jenkins安装目录下,一般为/var/lib/jenkins下。
slave的一般在对应的home目录下的用户文件夹里。
slave主机一般配置sshd_config文件
RSAAuthentication yes
ServerKeyBits 768
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
HostbasedAuthentication no
IgnoreRhosts yes
如果不太成功,可以将公钥数据放入root用户下尝试。
同时master机器的私钥权限必须为600,否则会被跳过验证。
甚至可以使用PasswordAuthentication no来避免密码登录,只使用认证登录,设置前建议先将root用户的验证好。
使用java web代理方式
这种方式在不同的版本也叫别的名称
简单配置后保存
有时候会提示从节点端口被禁用,点击配置链接
将代理中的禁用改为指定端口。
回到节点页面。根据提示的命令执行。
可以看到成功链接。jenkins页面显示也正常
另外还有配置K8S容器的,因自身设备难以复现出来,建议参阅juejin.cn/post/696346…