CentOS环境下Jenkins自动化部署完整指南
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无法正常启动。
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,避免第三方仓库的安全风险。
sudo yum install -y jenkins
通过YUM包管理器安装,自动解决依赖问题。
sudo systemctl start jenkins && sudo systemctl enable jenkins
启动Jenkins并设置为开机自启,确保服务器重启后服务仍运行。
首次访问需输入初始管理员密码,密码位于:
cat /var/lib/jenkins/secrets/initialAdminPassword
复制密码并在Web界面输入,完成解锁。
进入“Manage Jenkins” → “Manage Plugins”,切换至“Available”标签页,搜索并安装以下核心插件:
进入“Manage Jenkins” → “Global Tool Configuration”,设置以下工具路径(若未自动检测):
/usr/lib/jvm/java-1.8.0-openjdk);/usr/bin/git);/usr/share/maven)。进入Jenkins首页,点击“New Item”,输入任务名称(如my-app-deploy),选择任务类型:
Jenkinsfile定义流程)。Git,填写仓库URL(如https://github.com/your-repo/my-app.git);*/main,即主分支);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:
http://your-jenkins-server-ip:8080/github-webhook/(若使用GitLab,替换为/gitlab-webhook/);application/json;Just the push event(代码推送时触发)。sudo firewall-cmd --permanent --add-port=8080/tcp --add-port=22/tcp
sudo firewall-cmd --reload
admin账户。若需环境隔离或快速迁移,可使用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镜像等),提升部署效率。