使用Jenkins创建CI/CD流水线可以自动化代码的构建、测试和部署。以下是分步指南:
1. 安装Jenkins
- 系统要求:确保服务器满足Java环境(JDK 8或11)。
- 安装方法:
- Ubuntu/Debian:
1
2
3
4wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins - CentOS/RHEL:
1
2
3sudo 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 jenkins
- Ubuntu/Debian:
- 启动服务:
1
2sudo systemctl start jenkins
sudo systemctl enable jenkins
2. 初始化配置
- 访问
http://<服务器IP>:8080
,输入初始管理员密码(路径在/var/lib/jenkins/secrets/initialAdminPassword
)。 - 安装推荐插件(如Git、Pipeline、Maven等)。
- 创建管理员账户。
3. 安装必要插件
进入 Manage Jenkins > Manage Plugins,安装以下插件(可选):
- Git:代码仓库管理
- Pipeline:定义流水线
- Docker:容器化构建
- Kubernetes:部署到K8s集群
- SonarQube Scanner:代码质量检查
4. 配置全局工具
进入 Manage Jenkins > Global Tool Configuration,设置:
- JDK:指定JAVA_HOME路径或自动安装。
- Git:配置可执行文件路径(默认
/usr/bin/git
)。 - Maven/Gradle:配置构建工具路径。
5. 创建流水线项目
- 新建任务 > 输入任务名称,选择 Pipeline。
- 配置流水线:
- Pipeline脚本来源:选择
Pipeline script from SCM
。 - SCM:选择Git,填写仓库URL和凭证(需提前在凭据管理中配置SSH密钥或账号密码)。
- 脚本路径:指定仓库中的
Jenkinsfile
(默认为根目录)。
- Pipeline脚本来源:选择
6. 编写Jenkinsfile
在代码仓库根目录创建 Jenkinsfile
,定义流水线阶段。示例(声明式语法):
1 | pipeline { |
7. 配置触发器
- 定时触发:在流水线配置中设置
Poll SCM
(如H/5 * * * *
每5分钟检查一次变更)。 - Webhook触发(推荐):
- 在Git仓库(如GitHub)中配置Webhook,URL为
http://<Jenkins地址>/github-webhook/
。
2 Jenkins中安装 GitHub插件,并在流水线配置选择 GitHub hook trigger。
- 在Git仓库(如GitHub)中配置Webhook,URL为
8. 处理敏感信息
- 凭据管理:在 Manage Jenkins > Manage Credentials 中添加Docker Hub密码、K8s kubeconfig等。
- 在流水线中使用凭据:
1
2
3
4
5
6
7
8stage('Push to Docker Hub') {
steps {
withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
sh 'docker login -u $USER -p $PASS'
sh 'docker push my-app:${env.BUILD_ID}'
}
}
}
9. 常见问题解决
- 权限问题:确保Jenkins用户有权限执行Docker命令(将用户加入
docker
组)。 - 网络问题:检查防火墙设置,确保能访问Git仓库、镜像仓库和K8s集群。
- 构建失败:查看控制台日志,排查命令错误或依赖缺失。
10. 优化实践
- 并行执行:使用
parallel
阶段加速测试或构建。 - 分布式构建:添加Jenkins Agent分担主节点压力。
- 蓝绿部署:通过脚本实现零停机更新。
- 流水线模板:使用共享库(Shared Libraries)复用通用逻辑。
通过以上步骤,你可以快速搭建一个自动化CI/CD流水线,实现从代码提交到生产部署的全流程自动化。根据项目需求调整各阶段工具(如替换Maven为Gradle、使用Helm部署到K8s等)。