温馨提示×

Linux下Jenkins配置有哪些要点

小樊
47
2026-01-08 15:14:06
栏目: 智能运维

Linux下Jenkins配置要点

一 环境与安装

  • 安装并验证 Java 11+(推荐 OpenJDK 11),确保 JAVA_HOME 正确;Jenkins 2.x 系列在 Java 11 上更稳。
  • 安装方式三选一:
    1. 系统包管理器安装(Debian/Ubuntu 用 APT、RHEL/CentOS 用 YUM/DNF);
    2. 下载官方 Generic Java package (.war) 直接运行;
    3. 部署到 Tomcat(将 jenkins.war 放入 webapps)。
  • 启动与自启:
    • systemd:执行 sudo systemctl start jenkins && sudo systemctl enable jenkins
    • war:执行 java -jar jenkins.war --httpPort=8080
  • 访问初始化页面:打开 http://:8080,使用文件 /var/lib/jenkins/secrets/initialAdminPassword 解锁,按向导安装插件并创建管理员。

二 关键目录与端口配置

  • 发行版差异要点:
    • Debian/Ubuntu:主目录通常为 /var/lib/jenkins;服务由包管理器管理;
    • RHEL/CentOS:配置文件 /etc/sysconfig/jenkins(可设置 JENKINS_HOME、JENKINS_PORT、JENKINS_USER 等),安装目录常见为 /usr/lib/jenkins,工作空间默认在 ${JENKINS_HOME}/workspace
  • 自定义主目录与端口(示例思路):
    • 修改 JENKINS_HOME 后,需同步迁移旧数据并修正权限;
    • 端口冲突时改为如 9090java -jar jenkins.war --httpPort=9090
  • 防火墙放行:
    • firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 日志与排错:
    • systemd:sudo journalctl -u jenkins -f
    • war/nohup:tail -f /var/log/jenkins.log

三 安全加固与访问控制

  • 启用并完善“全局安全”:
    • 认证(安全域):优先使用 Jenkins 自有用户数据库 或对接 LDAP/AD
    • 授权:避免“任何人都可做任何事”,建议 基于矩阵项目矩阵授权策略,按需分配权限;
    • 默认已启用 CSRF 保护,保持开启;
  • 最小权限与凭据:
    • 禁用或严格限制 匿名访问
    • 使用 Credentials Binding 插件以加密方式存储 用户名/密码、SSH 私钥、令牌
  • 网络安全:
    • 仅开放必要端口(如 8080/443/22),限制来源 IP;
    • 建议通过 反向代理 + HTTPS(如 Nginx/Apache)对外服务;
  • 运行环境隔离:
    • 尽量在 代理(Agent) 上执行构建,避免在主节点直接构建;
  • 维护与合规:
    • 定期更新 Jenkins 与插件,关注官方安全通告。

四 构建与集成配置

  • 源码与凭证:
    • SCM 选 Git;凭证优先用 SSH Username with private key(将公钥加入 Git 服务,私钥存入 Jenkins);
    • 确保 ~/.ssh 权限为 700、私钥 600
  • 触发器:
    • 推荐 Webhook(GitHub/GitLab)实现提交即构建;
    • 备选 SCM Poll(如 H/5 * * * * 每 5 分钟检查一次);
  • 构建工具链:
    • 全局工具配置 JDK、Maven/Gradle;Maven 可在 MAVEN_OPTS 指定本地仓库路径;
  • 常用插件:
    • Git、Pipeline、Credentials Binding、Blue Ocean、Role-Based Strategy、Publish Over SSH
  • 通知与部署:
    • 邮件通知(SMTP/SSL,如 QQ 邮箱需开启 SMTP 授权码);
    • 远程部署可用 Publish Over SSH 传输产物并执行目标机脚本。

五 权限与故障排查

  • 常见权限问题:
    • 构建/部署目录无写权限:将目录属主改为 jenkins:jenkins 或加入 www-data 组并赋权;
    • 部署到 /var/www/htmlsudo usermod -aG www-data jenkins && sudo chown -R www-data:www-data /var/www/html && sudo chmod -R g+w /var/www/html
    • 使用 Docker:将 jenkins 加入 docker 组(sudo usermod -aG docker jenkins),重启生效;
  • SSH Key 与 Git:
    • 切换到 jenkins 用户生成密钥:sudo su - jenkins -c "ssh-keygen -t rsa -b 4096 -C 'jenkins@your-server'"
    • 将公钥添加到 Git 服务,Jenkins 中创建 “SSH Username with private key” 凭证;
  • 端口与连通性:
    • 端口被占用:更换端口或停用冲突服务;
    • 云服务器需放行安全组与系统防火墙;
  • 日志定位:
    • sudo journalctl -u jenkins -ftail -f /var/log/jenkins.log 查看实时日志。

0