为 Jenkins 配置工作节点
后知后觉 暂无评论

安装程序运行所需 JDK 11(17 版本也可以)

sudo apt install openjdk-11-jre-headless

创建用户和用户组

sudo adduser --group --home /var/lib/jenkins --shell /bin/bash jenkins
sudo adduser --system --quiet --home /var/lib/jenkins --no-create-home --ingroup jenkins --disabled-password --shell /bin/bash --gecos 'Jenkins' jenkins

创建工作目录

sudo mkdir /var/lib/jenkins

创建程序运行脚本,写入以下内容

#!/usr/bin/env bash
JK_DOMAIN="172.16.16.201"
JK_AGENT_HOME="/var/lib/jenkins"
JK_AGENT_URL="http://172.16.16.201:80/manage/computer/builder/jenkins-agent.jnlp"
JK_AGENT_SECRET="xxxxxxxx"
JK_WORK_DIR="/var/lib/jenkins/"
RE_CODE=0

if [ ! -d $JK_AGENT_HOME ]; then
    echo "Error"
    exit 1
fi

case "$1" in
    start)
        cd $JENKINS_HOME
        curl -sO http://$JK_DOMAIN/jnlpJars/agent.jar
        java -jar agent.jar -jnlpUrl http://$JK_DOMAIN/computer/worker/jenkins-agent.jnlp \
            -secret $JK_AGENT_SECRET \
            -workDir $JK_WORK_DIR \
            -failIfWorkDirIsMissing
        exit 0
        ;;
    stop)
        ps -ef | grep jenkins | grep agent | grep -v grep | awk '{print $2}' | xargs kill -9
        code=$?
    ;;
    *)
        echo "Error"
    exit 7
    ;;
esac
exit $code
小贴士:上述脚本中的地址和密钥请按实际情况进行修改。

创建工作子目录并授权

sudo mkdir -p /var/lib/jenkins/remoting
sudo chmod +x /var/lib/jenkins/agent.sh
sudo chown -R jenkins:jenkins /var/lib/jenkins

创建守护单元 /usr/lib/systemd/system/jenkins-agent.service ,写入以下内容

[Unit]
Description=Jenkins Agent

[Service]
User=jenkins
Group=jenkins
Environment="JENKINS_HOME=/var/lib/jenkins"
WorkingDirectory=/var/lib/jenkins
ExecStart=/bin/bash /var/lib/jenkins/agent.sh start
Restart=always

[Install]
WantedBy=multi-user.target

重新加载单元

sudo systemctl daemon-reload
sudo systemctl enable jenkins-agent.service
sudo systemctl restart jenkins-agent.service

在 Jenkins 页面中配置 Node 属性,将 Number of executors 改为 2 (不建议超过工作节点实际 CPU 核心数),将 Remote root directory 改为 /var/lib/jenkins/ ,勾选 Fail is workspace is missing 和 Use WebSocket 选项。

节点配置

服务启动成功后,可查看节点工作状态。

节点状态


附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。