本教程适用于两台服务器,A服务器部署了Jenkins(以下简称Jenkins服务器或A服务器),B服务器为应用服务器,用来部署Web应用(以下简称Web服务器或B服务器)

生成密钥文件

在A服务器生成密钥

# 生成密钥
ssh-keygen -t rsa
bash

执行命令后,一直回车即可,如图所示
image.png

  1. 将id_rsa.pub文件的内容复制到authorized_keys文件中
  2. 将id_rsa.pub和authorized_keys文件拷贝到B服务器的/root/.ssh的目录下中。

安装Publish over SSH

前往Jenkins管理界面安装Publish over SSH插件,安装插件所在路径“系统管理>插件管理”
image.png

配置Publish over SSH

前往Jenkins系统设置界面,页面路径“系统管理>系统配置”,找到Publish over SSH,
并将A服务器的私钥(id_rsa文件的内容)复制到下图所示文本框中
image.png
同时新增SSH Servers并保存
image.png

新建自动化部署

image.png

以下使用开源项目做演示,项目地址:https://gitee.com/miss_you/easy-admin
示例中使用的码云git地址为:https://gitee.com/miss_you/easy-admin.git

  1. 配置源代码管理
    image.png
  2. 添加Jenkins提供者
    image.png
    image.png
  3. 构建项目前操作(非必选项,根据需求选择)
    image.png
  4. 添加shell脚本
    image.png
    image.png
    示例脚本
#!/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
  1. 发送打包文件到B服务
    image.png
    image.png
    保存后就可以实现自动部署了。