1、配置节点

创建一个节点,并且设置名称、cpu核心数(根据work节点的cpu数量)、远程工作目录即可。

点击保存后,返回到节点列表并且打开刚刚配置的节点,查看运行节点的命令。


2、在工作节点上配置自启动
在需要运行agent.jar的节点服务器上配置自启动。
#!/bin/sh
CWD=`pwd`
JENKINS_AGENT=/data/jenkins/agent.jar
JENKINS_RUN_CMD="java -jar ${JENKINS_AGENT} -url https://jenkins.xxxxx.com/ -secret b6a9204356d3fcb1a201d7d722b322ece67e0b -name worker-ops -webSocket -workDir /data/jenkins"
case $1 in
start)
nohup $JENKINS_RUN_CMD > /dev/null 2>&1 &
;;
stop)
kill -9 `ps -ef | grep "${JENKINS_AGENT}"|grep -v "grep"|awk '{print $2}'`
;;
restart)
cd "$CMD"
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
3、配置systemd守护进程
# vim /lib/systemd/system/jenkins-agent.service
[Unit]
Description=jenkins-agent.service
After=network.target
[Service]
LimitNOFILE=65536
LimitNPROC=65536
Type=forking
Environment=JAVA_HOME=/opt/jdk-22/
Environment=PATH=$PATH:/opt/jdk-22/bin:/bin
ExecStart=/data/jenkins/start-agent.sh start
ExecStop=/data/jenkins/start-agent.sh stop
ExecReload=/data/jenkins/start-agent.sh restart
[Install]
WantedBy=multi-user.target
必须设置环境变量,包括JAVE_HOME及PATH,PATH的环境变量中也需要设备/bin等,如果遇到一些命令错误,也需要将对应的目录设置到环境变量中即可。
systemctl enable jenkins-agent
systemctl start jenkins-agent
4、错误解决:

注意,上面的这个问题是因为Jenkins使用了nginx反向代码,但是没有设置websocket的header配置(下图配置的红色部分)。
server {
listen 8085;
server_name jenkins.xxxxx.com;
location / {
proxy_http_version 1.1;
proxy_buffering off;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
proxy_set_header Host $host;
#设置WebSocket 所需的头信息
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
#传递真实的客户端IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Proxy "";
proxy_pass http://192.168.58.2:9088/;
}
}