centos jenkins自动化部署
CentOS环境下Jenkins自动化部署完整指南
一、前置准备:安装Java环境
Jenkins是基于Java开发的,需先安装Java运行环境(推荐OpenJDK 1.8):
sudo yum update -y &
&
sudo yum install -y java-1.8.0-openjdk-devel
# 验证安装
java -version
确保输出显示Java版本为1.8.x,否则Jenkins无法正常启动。
二、安装Jenkins
1. 添加Jenkins官方YUM仓库
sudo 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
此步骤确保从官方源获取Jenkins,避免第三方仓库的安全风险。
2. 安装Jenkins
sudo yum install -y jenkins
通过YUM包管理器安装,自动解决依赖问题。
3. 启动Jenkins服务
sudo systemctl start jenkins &
&
sudo systemctl enable jenkins
启动Jenkins并设置为开机自启,确保服务器重启后服务仍运行。
三、配置Jenkins
1. 解锁Jenkins
首次访问需输入初始管理员密码,密码位于:
cat /var/lib/jenkins/secrets/initialAdminPassword
复制密码并在Web界面输入,完成解锁。
2. 安装必要插件
进入“Manage Jenkins” → “Manage Plugins”,切换至“Available”标签页,搜索并安装以下核心插件:
- Git Plugin:用于拉取代码仓库(如GitHub、GitLab);
- Maven Integration Plugin:支持Maven项目构建;
- Pipeline Plugin:实现流水线自动化;
- SSH Plugin:用于远程服务器部署(可选)。
安装完成后重启Jenkins使插件生效。
3. 配置全局工具
进入“Manage Jenkins” → “Global Tool Configuration”,设置以下工具路径(若未自动检测):
- JDK:指定JDK安装路径(如
/usr/lib/jvm/java-1.8.0-openjdk); - Git:指定Git安装路径(如
/usr/bin/git); - Maven:指定Maven安装路径(如
/usr/share/maven)。
确保Jenkins能识别这些工具,避免构建时找不到命令。
四、创建自动化部署任务
1. 新建任务
进入Jenkins首页,点击“New Item”,输入任务名称(如my-app-deploy),选择任务类型:
- Freestyle Project:适合简单构建流程;
- Pipeline:适合复杂流水线(推荐,支持
Jenkinsfile定义流程)。
此处以Pipeline为例,点击“OK”。
2. 配置Pipeline任务
- 选择“Pipeline script from SCM”:表示从代码仓库获取流水线脚本;
- SCM类型:选择
Git,填写仓库URL(如https://github.com/your-repo/my-app.git); - Branch Specifier:指定分支(如
*/main,即主分支); - Script Path:填写
Jenkinsfile路径(默认在项目根目录,无需修改)。
配置完成后保存任务。
五、编写Jenkinsfile定义流水线
在项目根目录创建Jenkinsfile,以代码形式定义部署流程(示例为Java Web项目):
pipeline {
agent any // 使用任意可用节点执行
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/my-app.git' // 拉取代码
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Maven编译打包,生成war文件
}
}
stage('Deploy') {
steps {
// 将war文件复制到远程Tomcat服务器
sh 'scp target/*.war tomcat@your-server-ip:/opt/tomcat/webapps/'
// 通过SSH重启Tomcat服务
ssh 'tomcat@your-server-ip' 'systemctl restart tomcat'
}
}
}
post {
success {
echo 'Deployment succeeded!' // 构建成功提示
}
failure {
echo 'Deployment failed!' // 构建失败提示
}
}
}
此流水线包含三个阶段:拉取代码→Maven构建→部署到Tomcat服务器。
六、配置Git Webhook实现自动触发
为实现代码推送后自动构建,需在Git仓库中配置Webhook:
- 进入Git仓库(如GitHub/GitLab)的“Settings” → “Webhooks”;
- 点击“Add webhook”,填写以下信息:
- Payload URL:
http://your-jenkins-server-ip:8080/github-webhook/(若使用GitLab,替换为/gitlab-webhook/); - Content type:选择
application/json; - Trigger:选择
Just the push event(代码推送时触发)。
- Payload URL:
- 保存Webhook,Jenkins会自动验证并添加钩子。
七、安全设置(生产环境必做)
- 启用HTTPS:通过Nginx/Apache反向隧道配置SSL证书,将Jenkins端口从8080转发至443,避免数据传输明文;
- 限制用户权限:进入“Manage Jenkins” → “Manage Users”,创建普通用户并分配“Read”权限,避免未授权操作;
- 配置防火墙:仅允许必要端口(如8080、22)访问:
sudo firewall-cmd --permanent --add-port=8080/tcp --add-port=22/tcp sudo firewall-cmd --reload - 禁用默认管理员账户:创建新管理员账户后,进入“Manage Jenkins” → “Manage Users”,删除或禁用
admin账户。
八、可选优化:使用Docker部署Jenkins
若需环境隔离或快速迁移,可使用Docker运行Jenkins:
# 安装Docker
sudo yum install -y docker &
&
sudo systemctl start docker &
&
sudo systemctl enable docker
# 拉取Jenkins镜像
docker pull jenkins/jenkins:lts
# 运行容器(映射端口8080至主机,挂载数据卷)
docker run -d --name jenkins -p 8080:8080 -v /home/user/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
数据卷/home/user/jenkins_home用于持久化Jenkins数据,避免容器删除后数据丢失。
通过以上步骤,即可在CentOS环境下完成Jenkins的部署与自动化配置,实现代码提交→构建→部署的全流程自动化。根据项目需求,可调整流水线阶段(如添加测试、打包Docker镜像等),提升部署效率。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos jenkins自动化部署
本文地址: https://pptw.com/jishu/734248.html
