如何在Linux中使用Jenkins进行CI/CD
导读:在 Linux 上使用 Jenkins 搭建 CI/CD 的实操指南 一 环境准备与安装 安装 Java 11(Jenkins 官方推荐),并确认版本:sudo apt update && sudo apt install...
在 Linux 上使用 Jenkins 搭建 CI/CD 的实操指南
一 环境准备与安装
- 安装 Java 11(Jenkins 官方推荐),并确认版本:sudo apt update & & sudo apt install -y openjdk-11-jdk;java -version。
- 添加 Jenkins 官方仓库 并安装(Debian/Ubuntu 示例):
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
sudo apt update & & sudo apt install -y jenkins - 启动与开机自启:sudo systemctl start jenkins & & sudo systemctl enable jenkins & & sudo systemctl status jenkins。
- 防火墙放行端口(若启用防火墙):sudo ufw allow 8080 或 firewall-cmd --permanent --add-port=8080/tcp & & firewall-cmd --reload。
- 首次访问:打开浏览器进入 http://< 服务器IP> :8080,解锁管理员:sudo cat /var/lib/jenkins/secrets/initialAdminPassword,随后安装推荐插件并创建管理员账户。
二 基础配置与首个流水线
- 插件建议:安装 Pipeline、Git、Docker、Blue Ocean、SSH Pipeline Steps 等常用插件(Manage Jenkins → Plugins)。
- 全局工具:在 Manage Jenkins → Global Tool Configuration 配置 JDK、Maven/Gradle、Docker 路径或自动安装。
- 创建任务:New Item → 选择 Pipeline → 在 “Pipeline” 部分选择 Pipeline script from SCM → SCM 选 Git,填写仓库 URL 与凭证(如 SSH 私钥或用户名/密码)。
- 触发器:
- 推荐 Webhook(GitHub:Payload URL 为 http:///github-webhook/,Content type 为 application/json;任务中勾选 “GitHub hook trigger for GITScm polling”)。
- 备选 SCM Poll:如 “H/5 * * * *” 每 5 分钟轮询。
- 首个 Jenkinsfile(声明式,位于仓库根目录):
pipeline {
agent any
stages {
stage(‘Checkout’) { steps { git url: ‘https://github.com/yourorg/yourrepo.git’, branch: ‘main’ } }
stage(‘Build’) { steps { sh ‘mvn clean package -DskipTests’ } }
stage(‘Test’) { steps { sh ‘mvn test’; junit ‘**/target/surefire-reports/*.xml’ } }
}
} - 保存后点击 立即构建,在 “控制台输出” 查看执行日志与排错。
三 常见权限与连通性问题处理
- Docker 构建时报 “Got permission denied while trying to connect to the Docker daemon socket”:将 jenkins 用户加入 docker 组并重启服务:sudo usermod -aG docker jenkins & & sudo systemctl restart jenkins;验证:sudo su - jenkins -c “docker info”。
- 代码目录或部署路径无写权限:确保工作空间与部署目标对 jenkins 用户可写(chown/chmod 或在项目目录上调整所属用户/组)。
- 私有仓库访问:在 Jenkins 的 凭证 中配置 SSH 私钥 或 用户名/密码,并在 SCM/Git 步骤中引用对应 credentialsId。
- 构建代理连通性:如使用 SSH Agent 部署,提前在 “Manage Jenkins → Credentials” 配置服务器私钥,并在流水线中用 sshagent 引用。
四 安全加固与维护要点
- 身份与授权:启用安全策略,禁用匿名访问;采用 RBAC(如 Role-based Authorization Strategy 插件)按角色分配权限;可集成 LDAP/AD/OAuth。
- 凭证管理:敏感信息统一存入 Credentials,在流水线中用 withCredentials 绑定环境变量,避免硬编码。
- 系统与插件:遵循 最小权限原则,定期更新 Jenkins 与插件,变更前做好备份与回滚方案。
- 传输安全:通过 反向代理 + HTTPS(如 Nginx + Let’s Encrypt)对外暴露服务,避免明文传输。
五 扩展场景与建议
- 多节点与弹性:配置 Jenkins Agent(SSH 或 Kubernetes)扩展并发能力,Master 专注调度与安全管控。
- 云原生交付:结合 Kubernetes Plugin 与 kubectl/Helm 实现滚动升级与蓝绿发布;在流水线中使用 kubernetesApply 等步骤。
- 可视化与质量门禁:使用 Blue Ocean 提升可视化体验;在关键阶段加入 单元测试、代码扫描、制品晋级 等质量关卡,失败即阻断发布。
- 反馈机制:在 post 阶段集成 Slack/邮件 通知,及时告警构建结果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux中使用Jenkins进行CI/CD
本文地址: https://pptw.com/jishu/757225.html
