搭建 Jenkins 实现自动化部署的步骤如下:
一、环境准备
- 服务器要求
- 操作系统:Linux(推荐 Ubuntu/CentOS)、Windows 或 macOS
- 硬件:至少 2GB 内存(建议 4GB+),10GB 磁盘空间
- 依赖:Java 8 或 11(Jenkins 运行必需)
- 安装 Java
# Ubuntu/Debian sudo apt update sudo apt install openjdk-11-jdk # CentOS/RHEL sudo yum install java-11-openjdk-devel
二、安装 Jenkins
方法 1:通过官方仓库安装(Linux)
-
添加 Jenkins 仓库密钥和源:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.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 -
安装 Jenkins:
sudo apt install jenkins -
启动 Jenkins 并设置开机自启:
sudo systemctl start jenkins sudo systemctl enable jenkins
方法 2:通过 WAR 包安装(通用)
-
下载 Jenkins WAR 包:
wget https://get.jenkins.io/war-stable/2.414.3/jenkins.war -
启动 Jenkins(默认端口 8080):
java -jar jenkins.war –httpPort=8080
三、初始化 Jenkins
- 访问 Jenkins 控制台
- 打开浏览器访问:
http://<服务器IP>:8080
- 首次访问会提示输入初始密码,通过以下命令获取:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 打开浏览器访问:
- 安装推荐插件
- 选择“安装推荐的插件”,等待安装完成。
- 创建管理员账户
- 设置用户名、密码和邮箱。
四、配置自动化部署
1. 安装必要插件
- 进入 Dashboard > Manage Jenkins > Plugin Manager,安装以下插件:
- Git Plugin:用于拉取代码。
- Pipeline:支持流水线脚本。
- SSH Pipeline Steps 或 Publish Over SSH:用于远程执行命令。
- Docker Plugin(可选):如果需要构建 Docker 镜像。
2. 配置全局工具
- 进入 Dashboard > Manage Jenkins > Tools:
- 配置 JDK、Git、Maven/Gradle 等工具路径。
3. 创建 Pipeline 项目
- 新建任务
- 选择 Pipeline 类型,输入项目名称。
- 配置 Pipeline 脚本
- 在 Pipeline 配置中,选择 Pipeline script 或从 SCM(如 Git)加载脚本。
- 示例脚本(拉取代码 + 构建 + 部署):
pipeline { agent any stages { stage(‘Checkout’) { steps { git url: ‘https://github.com/your-repo.git’, branch: ‘main’ } } stage(‘Build’) { steps { sh ‘mvn clean package’ // 如果是 Maven 项目 } } stage(‘Deploy’) { steps { sshagent([‘your-ssh-credentials’]) { sh ‘scp target/*.jar user@remote-server:/path/to/deploy’ sh ‘ssh user@remote-server “systemctl restart your-service”‘ } } } } }
4. 配置凭据
- 进入 Dashboard > Manage Jenkins > Credentials,添加:
- Git 仓库的 SSH 密钥或用户名密码。
- 远程服务器的 SSH 凭据(用于部署)。
5. 配置触发器(可选)
- 在 Pipeline 配置中启用 Poll SCM 或 GitHub Webhook,实现代码提交后自动触发构建。
五、测试与运行
- 手动触发构建
- 在项目页面点击 Build Now,查看控制台输出是否成功。
- 验证部署
- 检查远程服务器上的文件是否更新,服务是否重启成功。
六、常见问题解决
- 权限问题
- 确保 Jenkins 用户(如
jenkins
)有权限访问工作目录和远程服务器。 - 解决方案:
sudo chown -R jenkins:jenkins /var/lib/jenkins
- 确保 Jenkins 用户(如
- 端口冲突
- 如果 8080 端口被占用,启动时指定其他端口:
java -jar jenkins.war –httpPort=8081
- 如果 8080 端口被占用,启动时指定其他端口:
- 插件安装失败
- 检查网络连接,或手动下载插件(
.hpi
文件)上传到 Jenkins。
- 检查网络连接,或手动下载插件(
七、进阶优化
-
使用 Docker 部署 Jenkins
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts -
集成 Kubernetes
- 使用 Kubernetes Plugin 动态创建 Jenkins Agent。
-
备份与恢复
- 定期备份
/var/lib/jenkins
目录或使用 ThinBackup Plugin。
- 定期备份
通过以上步骤,你可以成功搭建 Jenkins 并实现自动化部署。根据实际需求调整 Pipeline 脚本和配置即可。