温馨提示×

如何自定义Jenkins Linux配置

小樊
42
2025-11-20 13:54:27
栏目: 智能运维

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_LOGPIDFILE,便于集中化日志与进程管理(示例见下节)。

三 示例 将 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 8082tail -f /opt/jenkins/logs/jenkins.log
  • RHEL/CentOS 可按相同思路修改 /etc/sysconfig/jenkins 的对应键名(如 JENKINS_PORTJENKINS_HOMEJENKINS_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 ConsoleJCasC 中引用,实现品牌化与布局微调。

五 构建环境与脚本常见自定义

  • 全局环境变量
    • 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,用于拉取与部署。

0