在 Proxmox VE 上制作 Rocky Linux 9.0 系统镜像模板

注:此方法适用于 Rocky Linux 9 所有系统版本。

安装QEMU Guest Agent

# 安装qemu agent
dnf install -y qemu-guest-agent
reboot

安装重启后,确保在[概要]中可以看到对应IP信息,如果无法看到对应IP信息,说明QEMU Guest Agent未启用,需要在[选项]中启用。

系统初始化设置

目前部分公有云厂商都没有进行相关步骤配置,如:Windows运行sysprep等,这样造成所有虚拟机的 SID 都是相同的,对于传统企业上云来说,如果需要使用Active Directory进行集中账号、权限管理的话,是不太友好的。Linux 也是如此,唯一机器 ID 很重要。

# 更新系统
dnf update

# 安装必要的软件
dnf install -y wget curl chrony iotop iftop telnet net-tools bash-completion

# 设置首次登录强制修改密码
chage -d0 root

# 清理缓存
yum clean all

# 删除网卡配置文件
rm -rf /etc/NetworkManager/system-connections/ens*.nmconnection

# 删除SSH私钥,不同系统私钥从严格意思上来说应该不同,所以删除后,重启系统会自动生成全新的私钥
rm -rf /etc/ssh/ssh_host_*

# 修改machine-id,machine-id为系统的唯一性ID,每台服务器系统应该唯一,用于解决系统ID冲突,我们需要重置机器ID。先删除现有/etc/machine-id文件,然后在/etc/profile文件最后添加systemd-machine-id-setup命令,开机后会通过systemd-machine-id-setup命令生成全新的machine-id。如果/etc/machine-id文件存在,systemd-machine-id-setup命令就不会再重新创建新的机器ID。
rm -rf /etc/machine-id
echo "systemd-machine-id-setup" >> /etc/profile

# 清理系统日志
systemctl stop systemd-journald.socket
find /var/log -type f -exec rm -rf {} \;

# 设置持久化保存日志的目录
mkdir -p /var/log/journal

# 清除历史命令
echo /dev/null > ~/.bash_history ; history -c

# 关闭系统
systemctl poweroff

使用此模板可能遇到的问题

在使用此模板的时候,您可能会遇到报错: unknown connection ensXX,这是因为网络配置分为两个层面,一个是网络设备层面,一个是网络连接层面。我们的IP地址配置属于网络连接层面。两者的区别:用命令nmcli device xxx 操作的都是网络设备层面的,用命令nmcli connection xxx操作的都是网络连接层面的。

# 显示所有连接
nmcli connection show

# 删除自动生成的连接
nmcli con delete "Wired connection 1"

# 查看网络设备名称
[[email protected] ~]# nmcli device
DEVICE  TYPE      STATE      CONNECTION 
ens18   ethernet  connected  --      
lo      loopback  unmanaged  --         

# 重新创建连接,并配置IP地址
# con-name 创建的连接名称,type 为设备类型,ifname 为网卡设备本身的名称,可以通过nmcli device命令查看。
nmcli connection add con-name ens18 type ethernet ifname ens18 autoconnect yes ip4 172.16.11.141/24 gw4 172.16.11.254

# 查看创建的连接
[[email protected] ~]# nmcli con show
NAME   UUID                                  TYPE      DEVICE 
ens18  4c12c254-f020-44bf-8c6a-4386a5287e46  ethernet  ens18 

# 启用连接
nmcli connection up ens18

# 这时候可以看到设备 ens18 已经连接至 ens18 这个网络连接。
[[email protected] ~]# nmcli device
DEVICE  TYPE      STATE      CONNECTION 
ens18   ethernet  connected  ens18      
lo      loopback  unmanaged  -- 

# 设置DNS
nmcli connection modify ens18 ipv4.dns "223.6.6.6 114.114.114.114"

# 查看对应网络配置文件
[[email protected] ~]# cat /etc/NetworkManager/system-connections/ens18.nmconnection 
[connection]
id=ens18
uuid=4c12c254-f020-44bf-8c6a-4386a5287e46
type=ethernet
interface-name=ens18
timestamp=1669518152

[ethernet]

[ipv4]
address1=172.16.11.141/24,172.16.11.254
dns=223.6.6.6;114.114.114.114;
method=manual

[ipv6]
addr-gen-mode=stable-privacy
method=auto

[proxy]

写在最后

通过以上的设置 Rocky Linux 9.0 系统就封装完成了,这时候只需要在 Proxmox VE 右击对应虚拟机转换成模板即可。此方法不仅仅适用于 Proxmox VE,对于 Hyper-v\ESXI\OpenStack\oVirt 同样适用,只是 Hyper-v 与 ESXI 安装的代理软件包不同而已,如:vm-tools 等。通过模板部署系统,可以极大提高我们部署系统的速度。

用一杯咖啡支持我们,每一篇 [技术博文] 都经过我们实操,并非从网上一味的copy,期间花费了大量的心思,希望能够帮忙到您。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇