在系统启动到自动安装后,并且已检索到控制文件,YaST 将根据控制文件中提供的信息配置系统。所有配置设置都将汇总在一个窗口中,默认情况下会显示该窗口,如果需要完全自动安装,则应禁用它。
在 YaST 显示配置摘要时,YaST 仅探测了硬件并为自动安装准备了系统。系统尚未发生任何更改。如果出现任何错误,您仍然可以中止该过程。
系统应可自动安装,而无需图形适配器或显示器。尽管如此,建议在客户端机器上连接显示器,以便您可以监督该过程并在出现错误时获得反馈。在图形界面和基于文本的 Ncurses 界面之间进行选择。对于无头客户端,可以使用串行控制台监视系统消息。
通过将关键字 console(例如 console=ttyS0)添加到内核的命令行来启动使用串行控制台安装系统。这将以控制台模式启动 linuxrc,稍后以串行控制台模式启动 YaST。
有多种启动客户端的方法。计算机可以从其网络接口卡 (NIC) 启动,以通过 DHCP 或 TFTP 接收启动镜像。或者,可以从闪存盘(例如 USB 存储设备)或可引导 DVD-ROM 加载合适的内核和 initrd 镜像。
YaST 将在启动时检查启动介质或 initrd 的根目录中的 autoinst.xml,如果找到该文件,则切换到自动安装。如果控制文件命名不同或位于其他位置,请使用参数 AutoYaST=URL 在内核命令行中指定其位置。
或者,您可以将 autoinst.xml 放置在物理或虚拟挂载的设备中,该设备标记为 OEMDRV。在这种情况下,您无需在内核命令行上指定 autoinst.xml 的位置。 autoinst.xml 必须位于设备的根目录中。
为了测试/救援目的或因为 NIC 没有 PROM 或 PXE,您可以构建一个可与 AutoYaST 一起使用的可引导闪存盘。闪存盘也可以存储控制文件。
使用以下命令将安装镜像的内容复制到可移动闪存盘。
>sudodd if=IMAGE of=FLASH_DISK bs=4M && sync
IMAGE 需要替换为 SLE-15-SP6-Online-ARCH-GM-media1.iso 或 SLE-15-SP6-Full-ARCH-GM-media1.iso 镜像文件的路径。 FLASH_DISK 需要替换为闪存设备。要识别该设备,请插入它并运行
# grep -Ff <(hwinfo --disk --short) <(hwinfo --usb --short)
disk:
/dev/sdc General USB Flash Disk确保设备的大小足以容纳所需的镜像。您可以使用以下命令检查设备的大小:
# fdisk -l /dev/sdc | grep -e "^/dev"
/dev/sdc1 * 2048 31490047 31488000 15G 83 Linux在此示例中,该设备具有 15 GB 的容量。用于 SLE-15-SP6-Full-ARCH-GM-media1.iso 的命令将是
dd if=SLE-15-SP6-Full-ARCH-GM-media1.iso of=/dev/sdc bs=4M && sync
运行 dd 命令时,分区上的所有数据将被擦除!
您可以将 SUSE Linux Enterprise 安装介质 (SLE-15-SP6-Online-ARCH-GM-media1.iso 或 SLE-15-SP6-Full-ARCH-GM-media1.iso) 与其他介质结合使用。例如,可以通过闪存盘或网络上的指定位置提供控制文件。或者,创建包含控制文件的自定义安装介质。
通过 PXE 启动需要在您的网络中配置 DHCP 和 TFTP 服务器。然后,计算机将启动而无需物理介质。
如果您通过 PXE 安装,安装将陷入无限循环。这是因为第一次重新启动后,机器再次执行 PXE 启动并重新启动安装,而不是从硬盘启动进行安装的第二阶段。
有几种方法可以解决此问题。您可以使用 HTTP 服务器提供 AutoYaST 控制文件。或者,运行 Web 服务器上的 CGI 脚本,该脚本提供控制文件并更改目标主机的 TFTP 服务器配置。这样,机器的下一次 PXE 启动将默认从硬盘启动。
另一种方法是使用 AutoYaST 通过控制文件为目标主机上传新的 PXE 启动配置
<pxe>
<pxe_localboot config:type="boolean">true</pxe_localboot>
<pxelinux-config>
DEFAULT linux
LABEL linux
localboot 0
</pxelinux-config>
<tftp-server>192.168.1.115</tftp-server>
<pxelinux-dir>/pxelinux.cfg</pxelinux-dir>
<filename>__MAC__</filename>
</pxe>此条目将在第一次重新启动发生之前,将新的配置上传到 TFTP 服务器以供目标主机使用。在大多数安装中,TFTP 守护程序以用户 nobody 身份运行。您需要确保此用户具有对 pxelinux.cfg 目录的写权限。您还可以配置要上传的文件名。如果您使用“magic” __MAC__ 文件名,则文件名将是您机器的 MAC 地址,例如 01-08-00-27-79-49-ee。如果缺少文件名设置,将使用 IP 地址作为文件名。
要对同一机器执行另一个自动安装,您需要从 TFTP 服务器中删除该文件。
添加命令行变量 autoyast 将导致 linuxrc 以自动模式启动。 linuxrc 程序将在用于启动系统的初始 RAM 磁盘的根目录中搜索配置文件,该配置文件应与主控制文件区分开:
在用于启动系统的初始 RAM 磁盘的根目录中;
在启动介质的根目录中。
linuxrc 配置文件支持多个关键字。有关 linuxrc 的工作方式和其他关键字的详细说明,请参阅 附录 C,高级 linuxrc 选项。其中一些更常见的选项是:
使用 AutoYaST 启动自动升级;请参阅 第 4.10 节,“升级”。
自动安装的控制文件位置;有关详细信息,请参阅 AutoYaST 控制文件位置。
配置并启动网络。如果 AutoYaST 要从远程位置获取,则需要。有关详细信息,请参阅 第 C.3 节,“高级网络设置”。
要加载的内核模块
安装目录的位置,例如 install=nfs://192.168.2.1/CDs/。
在使用 HTTPS 时,默认情况下启用 SSL 检查。如果需要,您可以通过将 ssl_verify=no 附加到 HTTPS URL 来禁用 SSL 检查,如下例所示:
install=https://192.168.2.1/CDs/?ssl_verify=no
如果您传递了多个查询选项,请用与号分隔它们
install=https://192.168.2.1/CDs/?foo=bar&ssl_verify=no
有关更多信息,请参阅 man 8 zypper 的“FTP/HTTP/HTTPS 目录树”部分。
安装模式,例如 nfs、http 等(如果设置了 install 则不需要)。
如果未在 AutoYaST 配置文件中指定,则 root 用户的密码
要联系的服务器 (NFS) 以获取源目录
NFS 服务器上的目录
即使控制文件中的 <confirm>no</confirm>,确认提示也会出现。
这些变量和关键字会将系统启动到 YaST 可以使用主控制文件接管的阶段。目前,会自动发现源介质,这在某些情况下可以使您无需向 linuxrc 发出任何说明即可启动自动安装过程。
传统的 linuxrc 配置文件 (info) 的功能是向客户端提供有关安装服务器和源位置的足够信息。通常,此文件不是必需的,但它是在特殊网络环境中未使用 DHCP 和 BOOTP 或需要加载特殊内核模块时需要的。
您可以使用内核命令行将关键字传递给 linuxrc。可以通过多种方式完成此操作。您可以交互式地在启动时以通常的方式指定 linuxrc 关键字以及其他内核参数。您还可以将内核参数插入到自定义网络可引导磁盘镜像中。也可以配置 DHCP 服务器以结合 Etherboot 或 PXE 传递内核参数。
autoyast2 启动选项而不是 autoyastautoyast2 选项类似于 autoyast 选项,但 linuxrc 会解析提供的值,例如,如果需要,会尝试配置网络。此选项未在本文档中描述。有关 AutoYaST 和 linuxrc URI 语法之间的差异,请参阅 linuxrc 附录:附录 C,高级 linuxrc 选项。AutoYaST 的规则和类不受支持。
命令行变量 autoyast 可以按照以下列表所述的格式使用。
autoyast 语法用于控制文件的 URI 位置可能令人困惑。格式为 SCHEMA://HOST/PATH-TO-FILE。使用的正斜杠的数量各不相同。对于控制文件的远程位置,URI 如下例所示,对于 NFS 服务器,有两个正斜杠:autoyast=nfs://SERVER/PATH。
当您的控制文件位于本地文件系统时,情况就不同了。例如,autoyast=usb:///profile.xml 与 autoyast=usb:///profile.xml 相同。您可以省略本地主机名,但必须保留第三个正斜杠。 autoyast=usb://profile.xml 将失败,因为 profile.xml 被解释为主机名。
对于升级,不需要 autoyast 变量进行自动离线升级,请参阅 程序 4.1,“以离线升级模式启动 AutoYaST”。
对于新安装,如果 autoinst.xml 文件位于以下三个位置之一,则将启动 autoyast
安装闪存盘(例如,USB 存储器)的根目录
安装介质的根目录
用于启动系统的初始 RAM 磁盘的根目录
autoyast=file:///PATH在指定的路径中查找控制文件,相对于源根目录,例如,当控制文件位于任何本地文件系统的顶层目录中(包括挂载的外部设备,如 CD 或 USB 驱动器)时,为 file:///autoinst.xml。(这与 file://localhost/autoinst.xml 相同。)
autoyast=device://DEVICE/FILENAME在存储设备上查找控制文件。不要指定设备的完整路径,而仅指定设备名称(例如,device://vda1/autoyast.xml)。您也可以省略指定设备,并触发 autoyast 搜索所有设备,例如,autoyast=device://localhost/autoinst.xml,或 autoyast=device:///autoinst.xml。
autoyast=nfs://SERVER/PATH在 NFS 服务器上查找控制文件。
autoyast=http://[user:password@]SERVER/PATH使用 HTTP 协议从 Web 服务器检索控制文件。指定用户名和密码是可选的。
autoyast=https://[user:password@]SERVER/PATH使用 HTTPS 从 Web 服务器检索控制文件。指定用户名和密码是可选的。
autoyast=tftp://SERVER/PATH通过 TFTP 检索控制文件。
autoyast=ftp://[user:password@]SERVER/PATH通过 FTP 检索控制文件。指定用户名和密码是可选的。
autoyast=usb:///PATH从 USB 设备检索控制文件(autoyast 将搜索所有连接的 USB 设备)。
autoyast=relurl://PATH从安装源检索控制文件:要么从默认安装源,要么从在 install=INSTALLATION_SOURCE_PATH 中定义的安装源。
autoyast=repo:/PATH从指定的路径检索控制文件。该路径必须相对于安装源。
autoyast=cifs://SERVER/PATH在 CIFS 服务器上查找控制文件。
autoyast=label://LABEL/PATH搜索具有指定标签的设备上的控制文件。
使用不同类型的基础设施和源介质,可以使用多种自动安装方案。最简单的方法是使用 openSUSE Leap 的适当安装介质(SLE-15-SP6-Online-ARCH-GM-media1.iso 或 SLE-15-SP6-Full-ARCH-GM-media1.iso)。但是,要启动自动安装过程,应在系统启动时输入自动安装命令行变量,并且 YaST 应该可以访问控制文件。
在脚本环境中,可以使用虚拟机的串行控制台,这允许您以文本模式工作。然后,您可以从 expect 脚本或等效脚本传递所需的参数。
以下场景列表解释了如何提供控制文件
在使用原始安装介质 (SLE-15-SP6-Online-ARCH-GM-media1.iso 或 SLE-15-SP6-Full-ARCH-GM-media1.iso 需要) 时,控制文件需要通过闪存盘(例如,USB 存储器)或网络访问。
闪存盘(例如,USB 存储器)。 通过 autoyast=usb://PATH 选项访问控制文件。
网络。 通过以下命令访问控制文件:autoyast=nfs://..、autoyast=ftp://..、autoyast=http://..、autoyast=https://..、autoyast=tftp://.. 或 autoyast=cifs://..。需要使用 linuxrc 中的启动选项定义网络访问。这可以通过 DHCP 完成:netsetup=dhcp autoyast=http://163.122.3.5/autoyast.xml
在这种情况下,您可以将控制文件直接包含在安装介质上。如果将其放置在根目录中并命名为 autoinst.xml,则会自动找到并用于安装。否则,使用 autoyast=file:///PATH 指定控制文件的路径。
此选项是最重要的,因为通常使用 SLP 或 NFS 服务器和其他网络服务(如 BOOTP 和 DHCP)安装多台机器。使控制文件可用的最简单方法是将其放置在安装源的根目录中,并将其命名为 autoinst.xml。在这种情况下,会自动找到并用于安装。控制文件也可以位于以下位置
闪存盘(例如,USB 存储器)。 通过 autoyast=usb://PATH 选项访问控制文件。
网络。 通过以下命令访问控制文件:autoyast=nfs://..、autoyast=ftp://..、autoyast=http://..、autoyast=https://..、autoyast=tftp://.. 或 autoyast=cifs://..。
要在不需要或不可用的情况下禁用安装过程中的网络,例如从 DVD-ROM 自动安装,请使用 linuxrc 选项 netsetup=0 禁用网络设置。
使用所有 AutoYaST 调用选项,可以以以下方式指定控制文件的位置
指定控制文件的确切位置
autoyast=http://192.168.1.1/control-files/client01.xml
指定包含多个控制文件的目录
autoyast=http://192.168.1.1/control-files/
在这种情况下,使用下面描述的 IP 地址的十六进制表示形式检索相关的控制文件。
该目录的路径必须以 / 结尾。
目录中的文件不应有任何扩展名,例如 .xml。因此,文件名只需要是 IP 或 MAC 地址。
> ls -r control-files
C00002 0080C8F6484C default如果仅定义了路径前缀变量,YaST 将以以下方式从指定位置检索控制文件
首先,它将使用自己的 IP 地址(大写十六进制)搜索控制文件,例如 192.0.2.91 -> C000025B。
如果未找到该文件,YaST 将删除一个十六进制数字并再次尝试。此操作将重复,直到找到具有正确名称的文件。最终,它将尝试查找以客户端的 MAC 地址作为文件名的文件(mac 应具有以下语法:0080C8F6484C),如果未找到,则查找名为 default(小写)的文件。
例如,对于 192.0.2.91,HTTP 客户端将尝试
C000025B C000025 C00002 C0000 C000 C00 C0 C 0080C8F6484C default
按照该顺序。
要确定客户端的 IP 地址的十六进制表示形式,请使用 /usr/bin/gethostip 工具,该工具与 syslinux 包一起提供。
> /usr/bin/gethostip 10.10.0.1
10.10.0.1 10.10.0.1 0A0A0001自动安装没有网络连接的系统最简单的方法是使用原始 openSUSE Leap DVD-ROM 和闪存盘(例如,USB 存储器)。您无需设置安装服务器或网络环境。
创建控制文件并将其命名为 autoinst.xml。将文件 autoinst.xml 复制到闪存盘。
linuxrc info 文件与 AutoYaST 控制文件结合使用 #Edit source如果您选择使用 info 文件或启动选项将信息传递给 linuxrc,则可以将关键字集成到 AutoYaST 控制文件中。添加一个 info_file 部分,如下例所示。此部分包含以冒号分隔的键值对,每行一个对。
linuxrc 选项在 AutoYaST 控制文件中 #....
<install>
....
<init>
<info_file>
install: nfs://192.168.1.1/CDs/full-x86_64
dud: https://example.com/driver_updates/filename.dud
upgrade: 1
textmode: 1
</info_file>
</init>
......
</install>
....请注意,autoyast2 关键字必须指向相同的文件。如果它在闪存盘(例如,USB 存储器)上,则需要使用 usb:// 选项。如果 info 文件存储在初始 RAM 磁盘中,则需要使用 file:/// 选项。
自动安装过程中的系统配置是整个过程最重要的部分。如您在前面的章节中看到的,几乎可以自动配置目标系统上的任何内容。除了预定义的指令之外,您还可以始终使用后脚本来更改系统中的其他内容。此外,您可以更改任何系统变量,并在需要时将完整的配置文件复制到目标系统。
安装后和系统配置是在目标系统上安装最后一个软件包后立即启动的,并在系统首次启动后继续进行。
在系统首次启动之前,AutoYaST 会写入安装过程中收集的所有数据,并在指定位置写入引导加载程序。除了这些常规任务之外,AutoYaST 还会执行控制文件中指定的 chroot 脚本。请注意,这些脚本在系统尚未挂载时执行。
如果安装了与默认内核不同的内核,则需要强制重启。在自动安装过程中也可以强制重启,无论安装了哪个内核。使用 general 资源的 reboot 属性(参见 第 4.1 节,“常规选项”)。
大部分系统定制是在安装的第二阶段完成的。如果您需要无法使用 AutoYaST 资源完成的定制,请使用安装后脚本进行进一步修改。
您可以定义控制文件中的无限数量的自定义脚本,方法是编辑控制文件或使用配置系统。