TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
CI(持续集成):开发人员频繁地将代码变更合并到共享的主干(如 Git 的 main 分支),每次合并都会触发自动化构建和测试,确保代码始终处于可集成状态。
CD(持续交付/持续部署):在 CI 的基础上,自动将构建好的应用部署到测试环境、预发布环境甚至生产环境,实现快速交付。
环境准备:在云服务器上安装 Jenkins。
配置 Jenkins:安装必要的插件,配置 Jenkins 的全局工具(如 Git、JDK、Maven 等)。
创建 Jenkins 项目:配置源码管理(如 Git)、构建触发器、构建步骤等。
编写构建脚本:定义构建、测试、打包等流程(如使用 Maven、Gradle、Shell 脚本等)。
配置部署流程:将构建产物(如 JAR 包、Docker 镜像等)部署到目标环境(如测试服务器、生产服务器)。
测试与优化:验证 CI/CD 流程是否正常工作,并根据需求优化配置。
云服务器(如阿里云 ECS、腾讯云 CVM、AWS EC2 等)
操作系统:推荐使用 Linux(如 Ubuntu、CentOS)
Java 环境:Jenkins 依赖 Java,需安装 JDK(推荐 JDK 11 或 JDK 17)
Jenkins 默认运行在 8080 端口。
在浏览器中访问 http://<服务器IP>:8080。
首次访问时,需要解锁 Jenkins。解锁密钥位于日志文件中:
在解锁后,Jenkins 会提示安装推荐插件。建议选择默认的推荐插件,包括 Git、Pipeline、Maven 等。
设置一个管理员用户名和密码,用于登录 Jenkins。
进入 Jenkins 管理界面:Manage Jenkins > Global Tool Configuration。
找到 JDK 部分,点击 Add JDK。
填写名称(如 JDK11),取消勾选 Install automatically(如果已手动安装 JDK)。
填写 JDK 的安装路径(如 /usr/lib/jvm/java-11-openjdk-amd64)。
在 Global Tool Configuration 中找到 Git 部分,点击 Add Git。
填写名称(如 Git),取消勾选 Install automatically(如果已安装 Git)。
填写 Git 的安装路径(如 /usr/bin/git)。
下载 Maven:
配置环境变量:
验证安装:
在 Jenkins 中配置 Maven:
在 Global Tool Configuration 中找到 Maven 部分,点击 Add Maven。
填写名称(如 Maven3),取消勾选 Install automatically。
填写 Maven 的安装路径(如 /opt/maven)。
在 Jenkins 首页,点击 New Item。
输入项目名称(如 my-ci-cd-project),选择 Pipeline,然后点击 OK。
直接在 Jenkins 中编写 Pipeline 脚本
通过外部的 Jenkinsfile 定义 Pipeline
在 Pipeline 配置页面中,找到 Pipeline 部分。
选择 Pipeline script from SCM。
配置 Git 仓库:
SCM:选择 Git
Repository URL:填写你的 Git 仓库地址(如 https://github.com/username/my-ci-cd-project.git)
Credentials:如果仓库需要认证,添加 Git 的用户名和密码或 SSH 密钥。
Branch Specifier:填写分支名称(如 */main)
点击 Save 保存配置。
点击 Build Now 手动触发一次构建,验证 Pipeline 是否正常工作。
进入你的 GitHub 仓库,点击 Settings > Webhooks > Add webhook。
配置 Webhook:
Payload URL:填写 Jenkins 的 Webhook 地址,格式为 http://<Jenkins服务器IP>:8080/github-webhook/
Content type:选择 application/json
Trigger on:选择 Just the push event(或其他事件,如 Pull Request)
点击 Add webhook 保存配置。
进入 Jenkins 管理界面:Manage Jenkins > Manage Plugins。
在 Available 插件中搜索 GitHub Integration,安装并启用。
在 Jenkins 项目的配置页面中,勾选 GitHub hook trigger for GITScm polling。
使用 scp 或 rsync 将构建产物(如 JAR 包、WAR 包等)复制到测试服务器。
示例:
生产环境的部署通常需要更高的安全性,可以通过以下方式实现:
手动审批:在 Jenkins Pipeline 中添加 input 步骤,等待人工确认后再部署。
自动化部署:使用工具(如 Ansible、Docker、Kubernetes)实现自动化部署。
验证 CI/CD 流程:
提交代码到 Git 仓库,观察 Jenkins 是否自动触发构建。
检查构建日志,确保每个阶段(如构建、测试、部署)都正常执行。
优化配置:
根据项目需求调整 Pipeline 的流程(如增加代码质量检查、自动化测试覆盖率等)。
使用 Jenkins 的并行执行功能,加快构建和部署速度。
安装 Jenkins:在云服务器上安装并配置 Jenkins。
配置全局工具:安装并配置 JDK、Git、Maven 等开发工具。
创建 Pipeline 项目:定义 CI/CD 流程,包括代码拉取、构建、测试、部署等步骤。
配置自动化触发器:通过 Webhook 实现代码提交后自动触发构建。
配置部署流程:将构建产物部署到测试环境或生产环境。
测试与优化:验证流程并优化配置。
在云服务器上使用 Jenkins 实现 CI/CD(持续集成/持续交付) 是现代软件开发中的最佳实践之一。Jenkins 是一个开源的自动化工具,广泛用于构建、测试和部署应用程序。通过 Jenkins,你可以实现代码的自动化构建、测试、打包、发布等流程,从而提高开发效率和软件质量。
以下是从 环境准备 到 完整 CI/CD 流程搭建 的详细指南,帮助你在云服务器上使用 Jenkins 实现 CI/CD。
一、CI/CD 的基本概念
二、在云服务器上使用 Jenkins 实现 CI/CD 的整体流程
三、在云服务器上安装 Jenkins
1. 环境要求
2. 安装 Java
以 Ubuntu 为例:
sudo apt update
sudo apt install openjdk-11-jdk -y
验证安装:
java -version
3. 安装 Jenkins
(1)添加 Jenkins 的官方仓库
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
(2)更新软件包索引并安装 Jenkins
sudo apt update
sudo apt install jenkins -y
(3)启动 Jenkins 并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
(4)检查 Jenkins 状态
sudo systemctl status jenkins
如果状态显示为 active (running),说明 Jenkins 已成功启动。
(5)访问 Jenkins
(6)解锁 Jenkins
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
将输出的密钥粘贴到 Jenkins 的解锁页面。
(7)安装推荐插件
(8)创建管理员用户
四、配置 Jenkins 的全局工具
在 Jenkins 中,需要配置常用的开发工具(如 Git、JDK、Maven 等),以便在构建过程中使用。
1. 配置 JDK
2. 配置 Git
如果未安装 Git,可以通过以下命令安装:
sudo apt install git -y
3. 配置 Maven(可选)
如果你的项目使用 Maven 构建,可以安装并配置 Maven:
wget https://downloads.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz tar -xzf apache-maven-3.9.4-bin.tar.gz sudo mv apache-maven-3.9.4 /opt/maven
编辑 ~/.bashrc 或 /etc/profile,添加以下内容:
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
然后运行:
source ~/.bashrc
mvn -version
五、创建 Jenkins 项目并配置 CI/CD 流程
1. 创建一个新的 Jenkins 项目
2. 配置 Pipeline 项目
在 Pipeline 配置页面中,有两种方式定义 Pipeline:
推荐使用 Jenkinsfile,将 Pipeline 的定义与代码一起存储在版本控制系统中(如 Git),便于管理和协作。
(1)配置源码管理
(2)配置 Jenkinsfile
在项目的根目录下创建一个名为 Jenkinsfile 的文件,定义 Pipeline 的流程。以下是一个简单的示例:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
echo '正在从 Git 拉取代码...'
checkout scm
}
}
stage('Build') {
steps {
echo '正在构建项目...'
sh 'mvn clean package' // 如果是 Maven 项目
// 如果是其他项目,可以使用相应的构建命令,如 `npm install` 或 `gradle build`
}
}
stage('Test') {
steps {
echo '正在运行测试...'
sh 'mvn test' // 如果是 Maven 项目
}
}
stage('Deploy to Test Environment') {
steps {
echo '正在部署到测试环境...'
sh 'scp target/my-app.jar user@test-server:/opt/my-app/'
// 使用 scp 或其他工具将构建产物部署到目标服务器
}
}
stage('Deploy to Production Environment') {
steps {
echo '正在部署到生产环境...'
// 可以添加手动审批步骤,确保生产部署的安全性
input message: '是否部署到生产环境?', ok: '确认部署'
sh 'scp target/my-app.jar user@prod-server:/opt/my-app/'
}
}
}
post {
success {
echo 'CI/CD 流程成功完成!'
}
failure {
echo 'CI/CD 流程失败,请检查日志!'
}
}
}
根据你的项目类型(如 Java、Node.js、Python 等),调整构建和部署命令。
(3)保存并运行
六、配置自动化触发器
为了让 Jenkins 在代码提交时自动触发构建,可以配置 Webhook。
1. 在 Git 仓库中配置 Webhook
以 GitHub 为例:
2. 在 Jenkins 中启用 GitHub 插件
七、配置部署流程
Jenkins 的部署流程可以根据目标环境的不同而有所不同。以下是常见的部署方式:
1. 部署到测试环境
scp target/my-app.jar user@test-server:/opt/my-app/ ssh user@test-server "cd /opt/my-app/ && nohup java -jar my-app.jar &"
2. 部署到生产环境
示例(使用 scp 部署到生产服务器):
scp target/my-app.jar user@prod-server:/opt/my-app/ ssh user@prod-server "cd /opt/my-app/ && nohup java -jar my-app.jar &"
八、测试与优化
九、总结
在云服务器上使用 Jenkins 实现 CI/CD 的流程如下: