iVentoy 自动安装
很多操作系统都提供了无人值守、自动安装部署的方案。你只需要提供一个脚本或者模板即可。
比如 Windows 中的 unattend XML、Redhat/CentOS系列中的 Kickstart 脚本、SUSE系列中的 autoYast XML、Debian系列中的preseed脚本等等。
正常情况下,如果你想进行自动安装,你必须重新制作一个新的ISO文件,在里面放入一个自动安装的脚本才可以。
通过 iVentoy 你无需重新制作ISO文件,只需要简单地为一个ISO文件指定一个或者多个自动安装脚本即可。
当有多个自动安装脚本时,在启动时会弹出菜单来让你选择。 你还可以随时更新这些自动安装的脚本。
- 支持的发行版 (更新中)
下面的示例脚本位于安装包内的 user/scripts/example
目录下。
发行版 | 脚本格式 | 示例脚本 | 说明 |
---|---|---|---|
Windows | Unattend XML | unattended.xml | Windows系列 |
Deepin/UOS | INI | deepin.ini | Deepin/UOS 系统 |
RHEL8/CentOS8 | Kickstart script | kickstart8.cfg | 同时也支持基于这几个派生出来的发行版。比如 OpenAnolis, RockyLinux 等。 |
RHEL7/CentOS7/Fedora | Kickstart script | kickstart7.cfg | 同时也支持基于这几个派生出来的发行版。比如 Oracle Linux, EuroLinux 等。 |
RHEL6/CentOS6 | Kickstart script | kickstart6.cfg | 同时也支持基于这几个派生出来的发行版。 |
openEuler | Kickstart script | openeuler.cfg | openEuler 版本。 |
Debian | Preseed script | preseed.cfg | Debian 系列的发行版。 |
Ubuntu Server (< 20.x) | Preseed script | preseed.cfg | 早期 Ubuntu Server 版本 |
Ubuntu Server (20.x+) | cloud-init | cloud-init-user-data | Ubuntu Server 20.x 以后的版本 |
SUSE | autoYast XML | autoYast.xml | SLES 和 openSUSE |
注意,这里的示例脚本仅供参考,需要根据实际需要修改,尤其是里面磁盘分区设置的部分。否则会造成磁盘被误格式化、数据丢失等问题。
- 软件配置
直接在 iVentoy 界面上选择对应的ISO文件,设置自动安装脚本路径即可。
- 脚本变量扩展
在进行自动安装时,在安装脚本中有一些配置是无法固定写死的,必须根据实际环境进行调整。
最常见的就是对于安装盘的指定,比如我们在安装脚本中指定系统安装到 DISK0
或者 /dev/sda
但在有些机器上它对应的那个盘并不是我们想要的那个。
这样可能就把系统安装到错误的盘上了。
针对上述需求,iVentoy 在自动安装脚本中支持 变量扩展
,变量使用 $$VT_XXX$$
的形式,其中 VT_XXX 对应变量名。
注意:
1. 包含变量的自动安装脚本文件必须是 UTF-8 编码格式。
2. 只支持下面表格中列出的变量,不支持自定义变量。
2. 变量名两边必须各用2个$符号包起来,即 $$VT_XXX$$ 的形式。
3. Ventoy 会自动检测自动安装脚本内是否包含变量,对于不包含变量的脚本不会做扩展处理。
4. 变量扩展是在副本中进行的,不会修改脚本源文件。
内置变量 | 扩展后示例 | 说明 |
---|---|---|
VT_MAC_COLON_LOWER |
11:22:33:aa:bb:cc | 客户端PXE网卡的MAC地址。 |
VT_MAC_COLON_UPPER |
11:22:33:AA:BB:CC | 客户端PXE网卡的MAC地址。 |
VT_MAC_DASH_LOWER |
11-22-33-aa-bb-cc | 客户端PXE网卡的MAC地址。 |
VT_MAC_DASH_UPPER |
11-22-33-AA-BB-CC | 客户端PXE网卡的MAC地址。 |
VT_SERVER_IP |
192.168.100.100 | iVentoy Server端的IP地址。 |
VT_LOCAL_IP |
192.168.100.200 | 本机分配的IP地址。 |
VT_NET_MASK |
255.255.255.0 | 子网掩码。 |
VT_NET_MASK_LEN |
24 | 子网掩码长度。 |
VT_GATEWAY |
192.168.100.1 | 网关地址。 |
VT_HTTP_PORT |
16000 | iVentoy HTTP服务的端口号。 |
VT_NBD_PORT |
10809 | iVentoy NBD服务的端口号。 |
VT_IMG_ID |
2 | 当前安装的系统镜像 ID。 |
VT_IMG_PMD5 |
68c033b63073f1c57ea95a80dacfb887 | 当前安装的系统镜像的路径MD5。 |
VT_IMG_ID_HTTP_URL |
http://192.168.100.100:16000/eiso/id/1 | 当前安装的ISO镜像的内部 HTTP 路径(镜像ID的形式)。参考 《iVentoy HTTP 路径说明》 |
VT_IMG_PMD5_HTTP_URL |
http://192.168.100.100:16000/eiso/ pmd5/68c033b63073f1c57ea95a80dacfb887 |
当前安装的ISO镜像的内部 HTTP 路径(路径MD5值的形式)。参考 《iVentoy HTTP 路径说明》 |
VT_WINDOWS_DISK_1ST_NONUSB |
1 | 第一个非 USB 盘。按照 Windows 下的磁盘编号,只能在 Windows unattend.xml 中使用。 |
VT_WINDOWS_DISK_MAX_SIZE |
1 | 容量最大的盘。按照 Windows 下的磁盘编号,只能在 Windows unattend.xml 中使用。 |
VT_WINDOWS_DISK_CLOSEST_XXX |
2 | 容量最接近 XXX GB的磁盘。 注意这里使用时 XXX 要换成具体的数值,比如 VT_WINDOWS_DISK_CLOSEST_300 表示容量最接近 300GB 的那个盘。只能在 Windows unattend.xml 中使用。 |
VT_LINUX_DISK_SDX_1ST_NONUSB |
sdb | sda sdb sdc ... 中第一个非 USB 盘。只检测 sdX 形式的盘,不检测像 hda/vda/nvme0n1 等形式的盘。只能在 Linux 系统的安装脚本中使用。 |
VT_LINUX_DISK_MAX_SIZE |
sdc | 容量最大的盘。不仅限于 sdX 形式的盘,包括 hda/vda/nvme0n1 等所有形式。只能在 Linux 系统的安装脚本中使用。 |
VT_LINUX_DISK_CLOSEST_XXX |
sda | 容量最接近 XXX GB的磁盘。 注意这里使用时 XXX 要换成具体的数值,比如 VT_WINDOWS_DISK_CLOSEST_256 表示容量最接近 256GB 的那个盘。不仅限于 sdX 形式的盘,包括 hda/vda/nvme0n1 等所有形式。只能在 Linux 系统的安装脚本中使用。 |
脚本示例:unattend.xml
脚本示例:kickstart.cfg