上一章,使用ssh的方式添加了两个agent,并都成功完成了构建任务,这一章使用jnlp的方式配置agent,jnlp方式配置agent有个好处,就是agent是主动去找到Master请求连接的,master->agent的通道可以配置一个agent的可访问ip:端口,也可以通过Websocket。这样即使agent是藏在不能直接访问的内网里的,也可以直接将它配置进来。
前置步骤
准备一台虚拟机
192.168.233.35
和上一章一样配置好Git、Java、Maven和对应的jenkins用户
1、添加Node配置
同样记得在Tool Locations中配置好Java Home和Maven Home
2、点开加好的节点的Status tab按照上面的操作指引启动agent
2.1、登录192.168.233.35,切换jenkins用户
su jenkins #切换到jenkins用户
cd ~ #进入home目录
2.2、下载启动agent的相关jar包
curl -sO http://192.168.233.28:8080/jnlpJars/agent.jar
2.4、启动agent,我们这里用nohub在后台启动
nohup java -jar agent.jar -jnlpUrl http://192.168.233.28:8080/computer/192%2E168%2E233%2E35/jenkins-agent.jnlp -secret xxx -workDir "/data/jenkins" > nohup.log &
2.5、刷新agent的状态,可以看到agent已经处于在线状态了
碰到的问题:
执行job 的时候报错
java.lang.UnsatisfiedLinkError: /data/services/jdk-17.0.7/lib/libawt_xawt.so: libXrender.so.1: cannot open shared object file: No such file or directory
是因为agent的环境缺少依赖,我们在agent机器上把相关依赖安装上就好了
sudo apt update
sudo apt install libxrender-dev
sudo apt install libxtst-dev # 这个看情况是否有报错,添加
安装完最好重启下启动agent的java进程