Linux下Jenkins配置有哪些要点
小樊
47
2026-01-08 15:14:06
Linux下Jenkins配置要点
一 环境与安装
- 安装并验证 Java 11+(推荐 OpenJDK 11),确保 JAVA_HOME 正确;Jenkins 2.x 系列在 Java 11 上更稳。
- 安装方式三选一:
- 系统包管理器安装(Debian/Ubuntu 用 APT、RHEL/CentOS 用 YUM/DNF);
- 下载官方 Generic Java package (.war) 直接运行;
- 部署到 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 后,需同步迁移旧数据并修正权限;
- 端口冲突时改为如 9090:
java -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/html:
sudo 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 -f 或 tail -f /var/log/jenkins.log 查看实时日志。