温馨提示×

Jenkins在Ubuntu上的最佳部署方式

小樊
36
2025-12-28 04:13:58
栏目: 智能运维

Ubuntu 上部署 Jenkins 的最佳实践

一 推荐架构与安装方式

  • 架构选择:优先采用 系统服务包管理安装(APT + systemd),稳定、易维护、易备份;在需要快速试用或环境隔离时,可用 WAR 包运行;如需弹性伸缩与一致性环境,可使用 Docker 容器化
  • Java 运行时:安装 OpenJDK 11 或 17(LTS),执行 java -version 校验版本。
  • APT 安装步骤(推荐):
    1. 安装 Java:sudo apt update && sudo apt install -y openjdk-11-jdk
    2. 导入密钥与源(新版推荐 GPG 到 keyring):
      curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
      echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
    3. 安装与启动:sudo apt update && sudo apt install -y jenkins
      sudo systemctl start jenkins && sudo systemctl enable jenkins
    4. 验证:sudo systemctl status jenkins,默认监听 8080
  • 快速替代方案:
    • WAR 包:export JENKINS_HOME=/opt/jenkins && nohup java -Xmx2g -jar jenkins.war --httpPort=8080 > /opt/jenkins/jenkins.log 2>&1 &
    • Docker:docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
      以上做法覆盖 Ubuntu 上的主流、可维护的部署路径,并兼顾稳定与易用。

二 首次启动与安全加固

  • 解锁与初始化:访问 http://:8080,获取初始密码 sudo cat /var/lib/jenkins/secrets/initialAdminPassword,选择安装推荐插件并创建管理员。
  • 安全配置:在 Manage Jenkins → Configure Global Security 启用安全;授权策略建议 基于角色的访问控制(RBAC)项目矩阵授权;对接 LDAP/SSO 集中认证;开启 CSRF 保护
  • 网络与端口:仅开放必要端口(默认 8080);如需公网域名与 HTTPS,使用 Nginx/Apache 反向代理 终止 TLS。
  • 防火墙:
    • UFW:sudo ufw allow 8080/tcp && sudo ufw enable
    • firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • HTTPS 与反向代理:部署有效证书(如 Let’s Encrypt),对外暴露 80/443,后台代理到 8080;限制管理端口访问来源。
  • 凭据与最小权限:在 Credentials 集中管理 SSH 密钥、仓库凭据等,任务以 credentialsId 引用,避免明文。

三 核心配置与性能优化

  • 全局工具:在 Manage Jenkins → Global Tool Configuration 指定 JDK、Git、Maven/Gradle 路径,避免每个任务重复配置。
  • 系统参数:在 Manage Jenkins → Configure System 设置 Jenkins URLExecutors(并发数≈CPU 核心数,避免过度并发)。
  • JVM 与资源:在 /etc/default/jenkins 调整 JAVA_ARGS="-Xms1g -Xmx2g"(按机器内存与负载调优);必要时开启 并行构建分布式构建(Agent) 扩展吞吐。
  • 插件策略:仅安装必要插件(如 Git、Pipeline、Blue Ocean、Docker Pipeline、Kubernetes),定期更新并移除未使用插件;插件更新站点可换为 清华镜像 提升下载速度。
  • 存储与清理:定期清理旧构建与工作空间,控制磁盘占用;升级至 SSD、合理分配 CPU/内存 资源。

四 备份与升级维护

  • 备份策略:定期备份 $JENKINS_HOME(含 jobs/、config.xml、credentials.xml、plugins/ 等),可脚本化或结合备份系统;容器化场景备份挂载卷 jenkins_home
  • 升级路径:
    • APT:sudo apt update && sudo apt install --only-upgrade jenkins(保持配置与数据目录不变)
    • WAR:替换 jenkins.war 并重启
    • Docker:拉取新镜像并重启容器(注意数据卷持久化)
  • 变更与回滚:变更前快照 $JENKINS_HOME;升级后在维护窗口观察 构建队列、日志与插件兼容性,必要时回滚版本。

五 快速排障与常用命令

  • 服务与日志:sudo systemctl status jenkinssudo journalctl -u jenkins -f
  • 端口连通:ss -tlnp | grep 8080curl -I http://127.0.0.1:8080
  • 初始化密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword(WAR 包路径取决于 $JENKINS_HOME
  • 配置文件与目录:常见为 /etc/default/jenkins(JVM/端口等)、/var/lib/jenkins(JENKINS_HOME)、/var/log/jenkins/jenkins.log
  • 插件与更新:在 Manage Jenkins → Manage Plugins 检查更新与依赖冲突,必要时回退版本。

0