Jenkins在Debian上如何部署应用
导读:1. 准备基础环境 在Debian上部署Jenkins前,需先安装Java(Jenkins依赖Java运行环境)和Git(用于拉取代码)。推荐使用OpenJDK 11(兼容大多数项目): sudo apt update &&...
1. 准备基础环境
在Debian上部署Jenkins前,需先安装Java(Jenkins依赖Java运行环境)和Git(用于拉取代码)。推荐使用OpenJDK 11(兼容大多数项目):
sudo apt update &
&
sudo apt upgrade -y # 更新系统包
sudo apt install openjdk-11-jdk git -y # 安装Java和Git
java -version # 验证Java安装(需显示版本信息)
git --version # 验证Git安装
若需使用Docker简化Jenkins管理,可额外安装Docker(可选):
sudo apt install docker.io -y
sudo systemctl enable --now docker # 启动Docker并设置开机自启
2. 安装Jenkins
通过官方仓库安装Jenkins(确保软件来源安全):
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - # 导入Jenkins GPG密钥
echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list # 添加Jenkins仓库
sudo apt update # 更新包列表
sudo apt install jenkins -y # 安装Jenkins
启动Jenkins服务并设置开机自启:
sudo systemctl enable jenkins # 设置开机自启
sudo systemctl start jenkins # 启动Jenkins服务
3. 配置Jenkins
首次访问Jenkins需完成初始化设置:
- 解锁Jenkins:浏览器访问
http://< Debian服务器IP> :8080,输入sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取的初始密码。 - 安装插件:选择“Install suggested plugins”(安装推荐插件,包含Git、Pipeline等核心功能),或手动安装所需插件(如“Publish Over SSH”用于远程部署)。
- 创建管理员账户:设置用户名、密码及邮箱,完成管理员账户创建。
- 配置系统:进入“Manage Jenkins”→“Configure System”,设置全局工具(如JDK路径、Maven路径,若未自动识别需手动添加)。
4. 配置SSH免密登录(用于远程部署)
若需将应用部署到远程服务器,需配置Jenkins与目标服务器的SSH免密登录:
- 在Jenkins服务器上生成SSH密钥对(若已有密钥可跳过):
ssh-keygen -t rsa -b 4096 -C "jenkins@deploy" # 默认保存路径~/.ssh/id_rsa - 将公钥复制到目标服务器:
ssh-copy-id user@remote-server-ip # 替换为目标服务器用户名和IP - 测试免密登录:
ssh user@remote-server-ip # 若无需输入密码则表示配置成功 - 在Jenkins中添加SSH凭据:进入“Manage Jenkins”→“Manage Credentials”,添加“SSH Username with private key”类型的凭据(私钥内容可从
~/.ssh/id_rsa复制)。
5. 创建Jenkins任务(Freestyle Project示例)
以Freestyle Project为例(适合简单项目),步骤如下:
- 新建任务:点击Jenkins首页“New Item”,输入任务名称(如“my-java-app”),选择“Freestyle project”,点击“OK”。
- 配置源码管理:在“Source Code Management”部分选择“Git”,输入代码仓库URL(如
https://github.com/your-repo/my-java-app.git),若有私有仓库需添加凭据。 - 配置构建触发器:根据需求选择触发方式(如“Poll SCM”设置定时检查代码变更,格式为
H/5 * * * *表示每5分钟检查一次;或“Build when a change is pushed to GitHub”配合Webhook实现推送触发)。 - 配置构建步骤:在“Build”部分点击“Add build step”,选择“Invoke top-level Maven targets”,输入Maven命令(如
clean package,用于编译和打包项目)。 - 配置部署步骤:在“Post-build Actions”部分点击“Add post-build action”,选择“Send build artifacts over SSH”,配置以下信息:
- Name:选择之前添加的SSH凭据(如“remote-server”);
- Source files:指定要传输的文件(如
target/*.jar,即打包后的JAR文件); - Remove prefix:移除源文件路径前缀(如
target,传输到目标服务器时只保留文件名); - Remote directory:目标服务器部署目录(如
/opt/apps/my-java-app,需提前创建)。
6. 创建Jenkins任务(Pipeline示例)
若需更灵活的流程控制(如多分支管理、复杂部署逻辑),建议使用Pipeline(基于Jenkinsfile):
- 新建任务:点击“New Item”,输入任务名称(如“my-java-app-pipeline”),选择“Pipeline”,点击“OK”。
- 配置Pipeline:在“Pipeline”部分选择“Pipeline script from SCM”,选择“Git”,输入代码仓库URL及凭据,设置“Script Path”为
Jenkinsfile(需在项目根目录创建)。 - 编写Jenkinsfile:在项目根目录创建
Jenkinsfile,定义流水线流程(以下为Java项目示例):pipeline { agent any // 使用任意可用节点 tools { maven 'maven-3.8.6' // 指定Maven工具(需在Jenkins全局工具中配置) jdk 'openjdk-11' // 指定JDK工具(需在Jenkins全局工具中配置) } stages { stage('Checkout') { steps { git branch: 'main', url: 'https://github.com/your-repo/my-java-app.git' // 拉取代码(分支可根据需求修改) } } stage('Build') { steps { sh 'mvn clean package' // 编译和打包项目 } } stage('Deploy') { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: 'remote-server', // SSH配置名称(与凭据对应) transfers: [ sshTransfer( sourceFiles: 'target/*.jar', // 源文件路径 removePrefix: 'target', // 移除前缀 remoteDirectory: '/opt/apps/my-java-app' // 目标目录 ) ], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true ) ] ) } } } post { success { echo 'Deployment succeeded!' // 构建成功后输出日志 } failure { echo 'Deployment failed!' // 构建失败后输出日志 } } }
7. 触发构建与验证
- 手动触发:进入Jenkins任务页面,点击“Build Now”即可手动触发构建。
- 自动触发:若配置了“Poll SCM”或Webhook,当代码变更时会自动触发构建(如GitHub Webhook需配置Jenkins URL为
http://< Jenkins服务器IP> :8080/github-webhook/)。 - 查看结果:构建完成后,点击“Build History”中的构建编号,可查看控制台输出(Console Output)、测试结果(Test Result)等信息。
- 验证部署:登录目标服务器,检查部署目录(如
/opt/apps/my-java-app)是否存在最新JAR文件,或通过ps -ef | grep java查看应用是否运行。
注意事项
- 确保Jenkins服务器与目标服务器之间的网络连通(如防火墙开放相应端口)。
- 若使用Docker部署应用,可在Pipeline中添加
docker build和docker push步骤(需提前配置Docker Hub或私有仓库凭据)。 - 定期备份Jenkins配置(位于
/var/lib/jenkins目录)和数据,避免数据丢失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在Debian上如何部署应用
本文地址: https://pptw.com/jishu/744844.html
