在 Proxmox VE 上制作 Rocky Linux 9.0 系统镜像模板
本文最后更新于 287 天前,其中的信息可能已经有所发展或是发生改变。

注:此方法适用于 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"

# 查看网络设备名称
[root@localhost ~]# 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

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

# 启用连接
nmcli connection up ens18

# 这时候可以看到设备 ens18 已经连接至 ens18 这个网络连接。
[root@localhost ~]# 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"

# 查看对应网络配置文件
[root@localhost ~]# 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 等。通过模板部署系统,可以极大提高我们部署系统的速度。

Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。

评论

  1. rdor
    3周前
    2024-9-20 17:48:07

    有一个问题:vm的ip和gateway在proxmox的cloud-init模块设置,实测发现这个ip无法作用到vm的/etc/NetworkManager/system-connections/xx.nmconnection , vm 本身无法ping通
    诉求在proxmox的cloud-init设置ip和gateway,能自动使vm生效,应该怎么做呢?

  2. rdor
    3周前
    2024-9-20 18:09:40

    解决了,需要在vm上安装cloud-init

发送评论 编辑评论


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