Linux 上自定义 Jenkins 配置的实用步骤
一 系统环境与目录规划
- 确认 Java 已安装(推荐 Java 11/17),并准备专用用户(如 jenkins)与目录(如 /opt/jenkins)。
- 常见发行版与默认路径对照:
- RHEL/CentOS:配置文件 /etc/sysconfig/jenkins;主目录 /var/lib/jenkins;日志 /var/log/jenkins/jenkins.log;WAR 包 /usr/lib/jenkins/jenkins.war。
- Ubuntu/Debian:配置文件 /etc/default/jenkins;主目录 /var/lib/jenkins;日志 /var/log/jenkins/jenkins.log;WAR 包 /usr/share/jenkins/jenkins.war。
- 建议将 JENKINS_HOME 与日志、插件、缓存等拆分到独立目录,便于备份与迁移(示例见下一节)。
二 核心自定义项与配置方法
- 修改监听端口
- RHEL/CentOS:编辑 /etc/sysconfig/jenkins,设置 JENKINS_PORT=“8082”(示例)。
- Ubuntu/Debian:编辑 /etc/default/jenkins,设置 HTTP_PORT=8082(示例)。
- 重启服务生效:
sudo systemctl restart jenkins。
- 自定义 JENKINS_HOME(工作目录)
- 准备目录并迁移数据:
sudo rsync -a /var/lib/jenkins/ /opt/jenkins/home/
- 修改配置(对应发行版)为 JENKINS_HOME=/opt/jenkins/home,并确保目录属主为 jenkins:jenkins。
- 重启服务生效。
- 指定 Java 与 JVM 参数
- RHEL/CentOS:在 /etc/sysconfig/jenkins 设置 JENKINS_JAVA_OPTIONS=“-Xmx1024m -Djava.awt.headless=true”。
- Ubuntu/Debian:在 /etc/default/jenkins 设置 JAVA_ARGS=“-Xmx1024m”。
- 如需指定 JDK 路径,可在启动脚本或环境里显式设置 JAVA_HOME。
- 运行用户与权限
- 默认以 jenkins 用户运行;如需改为 root(不建议,存在安全风险),在相应配置文件将 JENKINS_USER=root 并重启。
- 日志与 PID 路径
- 可自定义 JENKINS_LOG 与 PIDFILE,便于集中化日志与进程管理(示例见下节)。
三 示例 将 Jenkins 迁移到 /opt/jenkins 并调整端口与内存
- 准备目录与权限
sudo mkdir -p /opt/jenkins/{home,logs,plugins,conf,lib,cache}
sudo rsync -a /var/lib/jenkins/ /opt/jenkins/home/
sudo chown -R jenkins:jenkins /opt/jenkins
- 迁移并软链配置文件与脚本(Ubuntu/Debian 示例)
sudo mv /etc/default/jenkins /opt/jenkins/conf && sudo ln -s /opt/jenkins/conf/jenkins /etc/default/jenkins
sudo mv /etc/init.d/jenkins /opt/jenkins/bin && sudo ln -s /opt/jenkins/bin/jenkins /etc/init.d/jenkins
sudo mv /usr/share/jenkins/jenkins.war /opt/jenkins/lib
- 编辑 /opt/jenkins/conf/jenkins
JENKINS_HOME=/opt/jenkins/home
JENKINS_WAR=/opt/jenkins/lib/jenkins.war
JENKINS_LOG=/opt/jenkins/logs/jenkins.log
JAVA_ARGS="-Xmx1024m -Djava.awt.headless=true"
HTTP_PORT=8082
- 重启与验证
sudo systemctl daemon-reload && sudo systemctl restart jenkins
ss -ltnp | grep 8082 或 tail -f /opt/jenkins/logs/jenkins.log
- RHEL/CentOS 可按相同思路修改 /etc/sysconfig/jenkins 的对应键名(如 JENKINS_PORT、JENKINS_HOME、JENKINS_JAVA_OPTIONS)。
四 插件源与界面外观自定义
- 插件更新源加速
- 编辑 $JENKINS_HOME/hudson.model.UpdateCenter.xml,将 URL 改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,保存后重启或触发更新检查。
- 界面主题与样式
- 安装 Theme Plugin 后,在 Manage Jenkins → Configure System → Theme 选择主题(如 Dark Theme)。
- 高级自定义可在 $JENKINS_HOME/userContent/ 放置 custom.css/custom.js 并在 Manage Jenkins → Script Console 或 JCasC 中引用,实现品牌化与布局微调。
五 构建环境与脚本常见自定义
- 全局环境变量
- 在 Manage Jenkins → System → Global Properties → Environment Variables 添加如 MAVEN_HOME、PATH,便于 Job 直接调用。
- 构建保活与后台进程
- 在 Job 的 Shell 中启动守护进程前设置 BUILD_ID=dontKillMe,避免被 Jenkins 默认清理策略终止。
- SSH 与凭据
- 生成密钥:
ssh-keygen -t rsa -b 4096 -C "ci@org.com",将公钥添加到 Git 服务;私钥作为 SSH Username with private key 凭据录入 Jenkins,用于拉取与部署。