本教程适用于两台服务器,A服务器部署了Jenkins(以下简称Jenkins服务器或A服务器),B服务器为应用服务器,用来部署Web应用(以下简称Web服务器或B服务器)
生成密钥文件
在A服务器生成密钥
# 生成密钥
ssh-keygen -t rsa
bash
执行命令后,一直回车即可,如图所示
- 将id_rsa.pub文件的内容复制到
authorized_keys
文件中 - 将id_rsa.pub和authorized_keys文件拷贝到B服务器的
/root/.ssh
的目录下中。
安装Publish over SSH
前往Jenkins管理界面安装Publish over SSH插件,安装插件所在路径“系统管理>插件管理”
配置Publish over SSH
前往Jenkins系统设置
界面,页面路径“系统管理>系统配置”,找到Publish over SSH
,
并将A服务器的私钥(id_rsa文件的内容)复制到下图所示文本框中
同时新增SSH Servers
并保存
新建自动化部署
以下使用开源项目做演示,项目地址:https://gitee.com/miss_you/easy-admin
示例中使用的码云git地址为:https://gitee.com/miss_you/easy-admin.git
- 配置源代码管理
- 添加Jenkins提供者
- 构建项目前操作(非必选项,根据需求选择)
- 添加shell脚本
示例脚本
#!/bin/bash
# 进入到拉取代码的目录
cd $WORKSPACE/easy-admin/src/backend/Easy.Admin.Web.Entry
# 命令文档 https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet
dotnet restore
dotnet build
# 此处构建的是linux arm64下的,根据自己需求调整参数
dotnet publish --os linux -a arm64 --no-self-contained -c Release
cd ./bin/Release/net8.0/linux-arm64
tar -czvf publish.tar.gz publish
bash
- 发送打包文件到B服务
保存后就可以实现自动部署了。