温馨提示×

jenkins在centos上的最佳部署方式

小樊
37
2025-12-15 18:35:04
栏目: 智能运维

部署选型与总体建议

  • CentOS 7/8 上,生产环境优先采用 系统包管理器安装(YUM)+ systemd 管理 的方式,稳定、易维护、便于与系统安全策略集成。
  • 需要更高环境一致性与快速迁移时,采用 Docker 容器化 部署,注意挂载 JENKINS_HOME 与按需挂载 /var/run/docker.sock 以在容器内构建镜像/执行 Docker 命令。
  • 面向多团队与大规模构建负载,使用 Master–Agent 分布式架构,将构建任务下沉到 Agent,Master 专注调度与治理。

方式一 系统包管理器安装 YUM 稳定版

  • 准备环境
    • 更新系统并安装 Java 11/17(推荐 OpenJDK 11JDK 17 LTS):
      • sudo yum update -y
      • sudo yum install -y java-11-openjdk-devel # 或 java-17-openjdk-devel
  • 安装 Jenkins
    • 添加官方仓库并导入 GPG 密钥:
      • sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
      • sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    • 安装并启动服务:
      • sudo yum install -y jenkins
      • sudo systemctl enable --now jenkins
  • 访问与初始化
    • 开放防火墙端口(示例为 8080):
      • sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
    • 获取初始管理员密码:
      • sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 浏览器访问 http://<服务器IP>:8080,按向导安装推荐插件并创建管理员账户。
  • 关键配置与目录
    • 主配置:/etc/sysconfig/jenkins(可设置 JENKINS_PORT、JENKINS_HOME、JENKINS_USER 等)
    • 数据与日志:/var/lib/jenkins(JENKINS_HOME)、/var/log/jenkins/jenkins.log
    • 服务单元:/usr/lib/systemd/system/jenkins.service(如需自定义 JAVA_HOME/JAVA_OPTS,可在单元文件或 sysconfig 中设置)

方式二 Docker 容器化部署

  • 安装 Docker 并启动:
    • curl -fsSL https://get.docker.com | sh
    • sudo systemctl enable --now docker
  • 运行 Jenkins(示例)
    • docker run -d
      –name jenkins
      -p 8080:8080
      -p 50000:50000
      -v jenkins-data:/var/jenkins_home
      -v /var/run/docker.sock:/var/run/docker.sock
      -e JAVA_OPTS=“-Duser.timezone=Asia/Shanghai -Xmx2g -Xms512m”
      jenkins/jenkins:lts
  • 初始化
    • 查看初始化密码:
      • docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
    • 访问 http://<服务器IP>:8080 完成安装向导。
  • 说明
    • 挂载 /var/run/docker.sock 可在容器内使用宿主机的 Docker 守护进程;如需在容器内构建镜像,请评估安全风险并尽量以 非 root 用户运行容器。

安全与运维加固要点

  • 最小权限与运行账户
    • 不建议将 JENKINS_USER 改为 root;保持 jenkins 系统用户,按需通过 sudo 授权特定命令与目录。
  • 网络安全
    • 仅开放必要端口(如 8080),生产建议使用 反向代理(Nginx/HAProxy)+ TLS;避免直接暴露 8080 到公网。
  • 系统与 JVM 调优
    • /etc/sysconfig/jenkins 或 systemd 单元中设置 JAVA_OPTS(如 -Xmx/-Xms、时区),并限制并发构建数、合理设置工作空间与构建日志保留策略。
  • 插件与更新
    • 优先安装 推荐插件,定期更新 Jenkins 与插件 获取安全修复;变更前做好备份与回滚方案。
  • 备份与恢复
    • 定期备份 $JENKINS_HOME(含 jobs、config.xml、credentials.xml、plugins 等),可结合脚本与 cron 实现自动化备份与校验。

规模化与高可用建议

  • Master–Agent 分布式构建
    • 在 Master 上添加 Agent 节点(SSH 或 JNLP),将 构建、测试、部署 等任务下沉到 Agent;为不同团队/语言栈准备差异化 标签与工具链
  • 共享存储与高可用
    • 多 Master 场景可用 NFS 共享 $JENKINS_HOME,前置 HAProxy/Nginx 做负载均衡与健康检查;注意 NFS 性能与一致性配置。
  • 监控与告警
    • 监控 JVM、HTTP 请求耗时、队列长度、执行器利用率 等关键指标,结合日志与告警策略保障稳定性。

0