1532 字
8 分钟
部署芋道 1 Yudao后端服务构建
2025-08-01

在VMware中安装Ubuntu server#

我这里安装的是ubuntu-22.04.5-live-server-amd64.iso,可以到清华源下载

打开VMware前需要看一下网络,改成NAT模式方便ssh连接

  1. 语言:选择English
  2. 键盘布局:默认即可,English(US)
  3. 版本:Ubuntu server
  4. 网络配置:默认即可
  5. 代理:默认
  6. 镜像代理:改成阿里云https://mirrors.aliyun.com/ubuntu/
  7. 磁盘分区:选择 Use an entire disk(自动分区),下一个页面默认,然后continue
  8. 用户设置:输入用户名和密码
  9. 系统更新:skip跳过
  10. ssh服务:勾选 Install OpenSSH server
  11. 其他软件:暂时不需要,跳过

配置sshd_config#

ListenAddress 0.0.0.0 # 允许所有 IP 连接
PasswordAuthentication yes # 允许密码登录(可选,建议用密钥)
PermitRootLogin yes # 允许ssh连接时使用root用户

端口这里不用修改,还是用默认的22,后续通过NAT设置配置端口转发,让windows的50022转发到这个虚拟机的22端口

重启ssh服务:sudo service ssh restart

(已废弃)ssh通过127.0.0.1+端口的方式连接不同的虚拟机#

  1. 关闭虚拟机,在 VMware 中选择 “NAT 模式”
  2. 编辑 → 虚拟网络编辑器 → NAT设置 中添加端口转发规则:
    • 主机端口(Windows 端口):50022(或其他自定义端口)
    • 虚拟机 IP192.168.142.128(Ubuntu 的 NAT IP,可用 ifconfig 查看)
    • 虚拟机端口22(SSH 默认端口)

PixPin_2025-07-26_23-47-20

PixPin_2025-07-27_00-03-55

重复此步骤,为每个虚拟机分配不同的 主机端口(如 500225002350024

设置静态地址#

上面的端口映射方式虽然ssh连接虚拟机简单了,但是如果虚拟机里运行了一个服务,windows想访问这个服务还是需要看一下虚拟机的ip地址,所以不如配置成静态的地址

首先在VMware中查看子网IP并修改网关,我这里子网IP为192.168.142.0,网关设置为192.168.142.1,该虚拟机对应的网卡名为VMnet8

PixPin_2025-08-13_17-04-39

然后在「网络和Internet设置」>「更改适配器选项」>「VMnet8」>「属性」>「Internet 协议版本 4 (TCP/IPv4)」>「属性」>「修改IP地址」

PixPin_2025-08-13_10-25-06

PixPin_2025-08-13_10-27-58

修改后打开虚拟机,修改/etc/netplan路径下的网络配置文件

PixPin_2025-08-13_10-33-45

这里可能不同虚拟机的文件名是不同的,可以看一下文件内容,默认的内容大概是这样的

PixPin_2025-08-13_10-32-49

注意这里的ens33,自己原来文件中是什么用什么,其它的有是ens32的,修改后的内容:

# This is the network config written by 'subiquity'
network:
renderer: networkd
ethernets:
ens33: # 上面 ip addr 命令查看到的网卡编号
addresses:
- 192.168.142.100/24 # 子网 CIDR 由 “子网 IP 地址” 192.168.142.0 和 “子网掩码” 255.255.255.0 计算得到:本机私有 IP 地址,在子网允许的 IP 范围内自定义(注意如果有多个虚拟机的,不要互相冲突)
#gateway4: 192.168.142.1 # IPv4 网关 IP,上面“NAT 设置”可查看得到,注:gateway4 配置已过时,使用以下的 default routes 配置代替
routes:
- to: default
via: 192.168.142.1 # IPv4 网关 IP,上面“NAT 设置”可查看得到
nameservers:
addresses:
- 114.114.114.114 # 首选 DNS 服务器
- 8.8.8.8 # 备用 DNS 服务器
search: [] # 搜索域,这里为空
version: 2

修改后使用netplan apply应用网络配置

重启被覆盖问题#

我这里修改/etc/netplan路径下的文件并netplan apply应用后,通过ifconfig查看是生效的,但是重启又会恢复,后来发现是Cloud-Init 覆盖了配置,所以还需要修改这个的配置文件

我这里查看/etc/cloud/cloud.cfg.d/路径,发现90-installer-network.cfg这个文件的内容和上面默认的50-cloud-init.yaml是一样的,所以修改了90-installer-network.cfg这个文件

PixPin_2025-08-13_17-15-44

将该文件的内容修改为和上面50-cloud-init.yaml完全一致即可,以下是不带注释的代码:

# This is the network config written by 'subiquity'
network:
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.142.100/24
routes:
- to: default
via: 192.168.142.1
nameservers:
addresses:
- 114.114.114.114
- 8.8.8.8
search: []
version: 2

1.yudao后端服务构建#

下载JDK21#

由于openJDK22版本GA了,所以21版本需要到历史版本中下载https://jdk.java.net/archive/

PixPin_2025-07-27_07-59-53

配置JAVA环境

上传到linux系统中,之后解压,这里我将压缩包放到了/opt目录下

Terminal window
cd /opt
tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz

编辑文件~/.bashrc在文件最后添加三行内容(已废弃,使用下面的代码)

Terminal window
# 废弃,使用这三行代码后,虚拟机中默认的java版本为jdk11,这里PATH写的不对,
# 不应该把 CLASSPATH 加到 PATH 里,CLASSPATH 不是用来设置 PATH 的,它只用于
# Java 程序运行时加载类路径,导致了/opt/jdk-21.0.2/bin 没有优先于系统默认的
# /usr/bin 出现在 PATH 中
# 经测试,which java指令的输出结果为/usr/bin/java
export JAVA_HOME=/opt/jdk-21.0.2
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${CLASSPATH}:${JAVA_HOME}/bin:$PATH

新的代码:

Terminal window
# 设置 JDK 安装路径
export JAVA_HOME=/opt/jdk-21.0.2
# 设置 CLASSPATH(Java 类路径,仅用于 Java 程序运行)
export CLASSPATH=.:$JAVA_HOME/lib
# 设置 PATH(系统查找命令的路径,必须把 $JAVA_HOME/bin 放在最前面)
export PATH=$JAVA_HOME/bin:$PATH

使用新代码并加载配置后,查看java版本正常

重新加载配置

Terminal window
source ~/.bashrc

查看JAVA版本

java --version

如果版本为openjdk 21.0.2,说明没有问题

安装配置maven#

apt install maven

配置国内源,更改配置文件/etc/maven/settings.xml 找到<mirrors>标签行,将下面内容添加到此标签内

<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public </url>
</mirror>

下载后端源码#

mkdir -p /opt/gitdir
cd /opt/gitdir
git clone https://gitee.com/zhijiantianya/yudao-cloud.git

切换分支 由于官方更新了项目,将master-jdk21分支替换为了master-jdk17,所以这里跟视频不一样。又因为官方更新速度比较快,有时候新代码无法通过构建,使用时无需追求最新的代码而是选择一个稳定能够通过的代码。项目提供了tag,可以切换到最新的tag来成功构建。可以在项目下执行git tag来查看项目所有的tag,这里使用最新的tag:

cd yudao-cloud/
git checkout v2.1.0\(jdk17/21\)

构建项目#

mvn clean package -Dmaven.test.skip=true

项目构建时长跟网络和机器配置有关

PixPin_2025-07-27_09-59-43

至此,我们已经部署好了后端环境,成功构建了后端项目 后续我们会继续部署这个项目,直到项目部署到k8s集群中并能正常访问

部署芋道 1 Yudao后端服务构建
https://fuwari.cbba.top/posts/部署芋道-1-yudao后端服务构建/
作者
Chen_Feng
发布于
2025-08-01
许可协议
CC BY-NC-SA 4.0