AutoYaST 使您可以在许多计算机上并行安装 SUSEŽ Linux Enterprise。 AutoYaST 技术在使部署适应异构硬件方面具有很大灵活性。 本章讲述如何准备简单的自动安装并勾勒出包含不同硬件类型和安装目的的高级方案。
![]() | 相同硬件 |
|---|---|
该方案假设您正在使用完全相同的硬件配置向一组计算机批量部署 SUSE Linux Enterprise。 | |
要准备 AutoYaST 大规模安装,请执行以下操作:
如第 21.1.1 节 “创建 AutoYaST 配置文件”中所述创建 AutoYaST 配置文件,该配置文件包含您的部署所需的安装细节。
如第 21.1.2 节 “分发配置文件并确定 autoyast 参数”中所述,确定 AutoYaST 配置文件的来源以及要传递到安装例程的参数。
如第 21.1.3 节 “提供安装数据”所述确定 SUSE Linux Enterprise 安装数据源 。
如第 21.1.4 节 “设置引导方案”中所述确定并设置自动安装引导方案。
如第 21.1.5 节 “创建 info 文件”所述,通过手动添加参数或创建 info 文件,将命令行传递到安装例程。
如第 21.1.6 节 “启动并监视自动安装”中所述,启动自动安装进程。
AutoYaST 配置文件告诉 AutoYaST 安装的内容以及如何配置已安装系统以最终获得完整的现成系统。 可以用几种不同方式创建:
从参考计算机将新安装复制到一组相同的计算机
使用 AutoYaST GUI 创建并修改配置文件,使其符合您的要求
使用 XML 编辑器,从头开始创建配置文件
要复制新的参考安装,请执行以下操作:
执行正常安装。
完成硬件配置并阅读发行说明后,如果默认情况下尚未选中,则选中它。 这样就创建了 /root/autoyast.xml 现成配置文件,可以用于创建此特定安装的复制品。
要使用 AutoYaST GUI 从现有的系统配置创建配置文件并对其进行符合您的需要的修改,请执行以下操作:
作为 root 启动 YaST。
选择+来启动图形 AutoYaST 前端。
选择+以准备 AutoYaST,将当前系统配置镜像到 AutoYaST 配置文件。
除了默认资源(如引导加载程序、分区和软件选择)之外,可以通过选中列表内的项目,将系统的各种其他方面添加到配置文件。
单击使 YaST 收集所有系统信息并将其写到新配置文件。
要继续,请选择下列操作之一:
如果配置文件完整且符合您的要求,请选择+并输入配置文件的文件名(如 autoyast.xml)。
通过选择相应的配置和(例如“硬件/声音”)并单击,修改参考配置文件。 相应的 YaST 模块启动,但您的设置被写入 AutoYaST 配置文件而不是应用到系统。 完成之后,选择+并输入适当的配置文件名。
使用+退出 AutoYaST 模块。
AutoYaST 配置文件可以以几种不同的方式分发。 根据分发配置文件数据所用的协议,不同的 AutoYaST 参数用来将配置文件的位置告知客户端上的安装例程。 配置文件的位置可以通过引导提示或引导后装载的 info 文件传递到安装例程。 下列选项可用:
|
配置文件位置 |
参数 |
说明 |
|---|---|---|
|
文件 |
|
使安装例程在指定路径中(如果是在 CD-ROM 顶级目录中,则为源 root 目录的相对路径— |
|
设备 |
|
使安装例程在储存设备上查找该控制文件。 只需要设备名 - 如果 |
|
软盘 |
|
使安装例程查找软盘驱动器中软盘上的控制文件。 如果想从 CD-ROM 引导,此选项特别有用。 |
|
NFS |
|
使安装路由从 NFS 服务器上检索控制文件。 |
|
HTTP |
|
使安装例程从 HTTP 服务器上检索控制文件。 |
|
HTTPS |
|
使安装例程从 HTTPS 服务器上检索控制文件。 |
|
TFTP |
|
使安装例程从 TFTP 服务器上检索控制文件。 |
|
FTP |
|
使安装例程从 FTP 服务器上检索控制文件。 |
用与实际安装匹配的值来替代服务器和路径。
AutoYaST 包含一项功能,可以使某些配置文件绑定到客户端的 MAC 地址。 无需改变 autoyast= 参数就可以同一安装过程使用不同配置文件安装不同的实例。
要使用此功能,请执行以下操作:
使用客户端的 MAC 地址作为文件名来创建不同配置文件,并将其放置到 HTTP 服务器来存放您的 AutoYaST 配置文件。
在创建 autoyast= 参数时,删除包括文件名在内的实际路径,例如:
autoyast=tftp://192.168.1.115/
启动自动安装。
YaST 尝试以下列方式确定配置文件位置:
YaST 使用自身的 IP 地址(以大写十六进制的形式)搜索配置文件,例如,192.0.2.91 是 C000025B。
如果找不到该文件,YaST 将删除一位十六进制数字并重试。这种做法将重复 8 次,直至找到具有正确文件名的文件。
如果仍然不成功,它将尝试用客户端的 MAC 地址作为文件名来查找文件。 例如,客户端的 MAC 地址是 0080C8F6484C。
如果以 MAC 地址命名的文件没有找到,YaST 将搜索名为 default(小写)的文件。 YaST 用以搜索 AutoYaST 配置文件的示例地址顺序如下:
C000025B
C000025
C00002
C0000
C000
C00
C0
C
0080C8F6484C
default
安装数据以产品 CD 或 DVD 方式提供或使用网络安装源提供。 如果将产品 CD 用作安装源,则需要对客户端进行物理访问来完成安装,因为引导进程需要手动启动,CD 需要更换。
要提供网络上的安装源,请如第 14.2.1 节 “使用 YaST 设置安装服务器”所述设置网络安装服务器(HTTP、NFS、FTP)。 使用 info 文件将服务器位置传递到安装例程。
客户端可以用以下几种不同的方式引导:
关于常规远程安装,可以使用“网络唤醒”和 PXE 启动自动安装,通过 TFTP 导入引导映像和控制文件并从任意网络安装服务器选择安装源。
可以使用原始 SUSE Linux Enterprise 媒体引导系统进行自动安装并从网络位置或软盘导入控制文件。 或者,创建自定义 CD-ROM,存放安装源和 AutoYaST 配置文件。
以下几节简要叙述网络引导或 CD-ROM 引导的基本程序。
中讨论了如何使用“网络唤醒”、PXE 和 TFTP 进行网络引导。第 14.1.3 节 “通过 VNC—PXE Boot 和“网络唤醒”进行远程安装” 要使用已介绍的步骤进行自动安装,请修改起重要作用的 PXE Linux 配置文件 (/srv/tftp/pxelinux.cfg/default),以使其包含指向 AutoYaST 配置文件位置的 autoyast 参数。 标准安装的示例项如下:
default linux
# default label linux
kernel linux
append initrd=initrd install=http://192.168.1.115/install/suse-enterprise/
自动安装的相同示例如下:
default linux
# default label linux
kernel linux
append initrd=initrd install=http://192.168.1.115/install/suse-enterprise/ \
autoyast=nfs://192.168.1.110/profiles/autoyast.xml
用安装中使用的数据替代示例 IP 地址和路径。
AutoYaST 安装中可以使用几种从 CD-ROM 引导的方法。 请从下列方案中选择:
如果完全基于网络的方案不可能执行(例如,如果硬件不支持 PXE),则使用此方法,您可以对在几乎整个过程中安装的系统进行物理访问。
需要对包含每:
SUSE Linux Enterprise 媒体
提供配置文件数据的网络服务器(详见第 21.1.2 节 “分发配置文件并确定 autoyast 参数”)
包含 info 文件的软盘,以告知安装例程在哪里找到配置文件
或
访问系统引导提示,以便在手动输入 autoyast= 参数的地方进行安装
如果完全基于网络的安装方案不起作用,则使用此方法。 它要求对要安装的系统进行物理访问以打开目标计算机,或者,在第二种情况下,按照引导提示输入配置文件位置。 无论哪种情况都可能需要根据安装范围更改媒体。
需要对包含每:
SUSE Linux Enterprise 媒体
存放配置文件和 info 文件的软盘
或
访问目标的引导提示以输入 autoyast= 参数
如果需要安装有限数量的软件包且目标数量相对较低,则要考虑创建自定义 CD,以存放安装数据和配置文件(尤其是在安装中没有网络可用的情况下)。
针对目标的安装例程需要清楚 AutoYaST 框架的不同组件。 这要通过创建命令行来完成,命令行包含查找 AutoYaST 组件、安装源所需要的所有参数以及控制安装进程所需要的参数。
这要通过根据安装引导提示手动传递这些参数来进行,或者通过提供由安装例程 (linuxrc) 读取的名为 info 的文件来进行。 前者要求对任何要安装的客户端进行物理访问,这便使得这种方法不适合于大规模部署。 后者使您能够提供一些媒体上的 info 文件,该文件要在自动安装前准备好并插入客户端驱动器。 或者,如第 21.1.4.1 节 “准备网络引导”所示使用 PXE 引导并将 linuxrc 参数包括在 pxelinux.cfg/default 文件中。
下列参数一般用于 linuxrc。 如果需要更多信息,请参见 /usr/share/doc/packages/autoyast 下的 AutoYaST 包文档。
![]() | 分隔参数和值 |
|---|---|
当根据引导提示向 linuxrc 传递参数时,请使用 | |
|
关键字 |
值 |
|---|---|
|
|
网络安装所使用的网络设备(根据 BOOTP/DHCP 的请求)。 仅在几个网络设备可用的条件下需要。 |
|
|
如果是空的,客户端将发送 BOOTP 请求。 否则,客户端将使用指定数据进行配置。 |
|
|
选定网络的网络掩码。 |
|
|
默认网关。 |
|
|
名称服务器。 |
|
|
自动安装所使用的控制文件的位置,如 |
|
|
安装源的位置,如 |
|
|
如果设置为 |
|
|
VNC 密码。 |
|
|
如果设置为 |
如果自动安装方案包含 DHCP 客户端配置和网络安装源,而且您想使用 VNC 监视安装过程,则 info 如下所示:
autoyast:profile_sourceinstall:install_sourcevnc:1 vncpassword:some_password
如果要在安装时间使用静态网络安装,则 info 文件将如下所示:
autoyast:profile_sourceinstall:install_sourcehostip:some_ipnetmask:some_netmaskgateway:some_gateway
每个选项都必须作为一个连续字符串输入到单独的行中。
info 数据可以几种不同的方式用于 linuxrc:
作为安装时位于客户端驱动器中的软盘或 CD ROM 中的文件。添加诸如 info=floppy:/info 或 info=cd:/info 的信息参数。
作为初始 RAM 磁盘的 root 目录内的文件,该磁盘用于引导来自自定义安装媒体的系统或通过 PXE 引导的系统。
作为 AutoYaST 配置文件的组成部分。在这种情况下,AutoYaST 文件需要被命名为 info 来使 linuxrc 对其进行语法分析。 以下是该方法的示例。
通过指向 info 文件的位置的 URL。其语法类似于 info=http://www.example.com/info。
linuxrc 在配置文件中寻找字符串 (start_linuxrc_conf),该字符串表示文件的开始。 如果找到,它将从该字符串开始对该内容进行语法分析并在找到字符串 end_linuxrc_conf 时完成。 这些选项以如下方式储存在配置文件中:
....
<install>
....
<init>
<info_file>
<![CDATA[
#
# Don't remove the following line:
# start_linuxrc_conf
#
install: nfs:server/path
vnc: 1
vncpassword: test
autoyast: file:///info
# end_linuxrc_conf
# Do not remove the above comment
#
]]>
</info_file>
</init>
......
</install>
....
linuxrc 装载包含引导参数的配置文件而非传统的 info 文件。 install: 参数指向安装源的位置。vnc 和 vncpassword 指示将 VNC 用于安装监视。autoyast 参数告诉 linuxrc 将 info 视作 AutoYaST 配置文件。
在提供了上述所有基础设施(配置文件、安装源和 info 文件)之后,可以继续启动自动安装。 根据引导和监视进程的所选方案,可能需要与客户端进行物理交互:
如果客户端系统从任何一种物理媒体(产品媒体或自定义 CD)进行引导,需要将这些媒体插入客户端驱动器内。
如果客户端不是通过“网络唤醒”打开的,至少需要打开客户端。
如果没有选择远程控制自动安装,来自 AutoYaST 的图形反馈则要发送到客户端附带监视器,或者,如果使用无外设客户端,则发送到串行控制台。
要启用远程控制自动安装,请如第 21.1.5 节 “创建 info 文件”中所述使用 VNC 或 SSH 参数,并如第 14.5 节 “监视安装过程”所述,从另一台计算机连接到客户端。
以下几节讲述使用 AutoYaST 的基于规则安装的基本概念并提供示例方案,使您能够创建自定义自动安装。
基于规则的 AutoYaST 安装使您能够处理异构硬件环境:
您的站点包含不同供应商的硬件吗?
计算机是在您不同硬件配置的站点上吗(例如,使用不同设备或使用大小不同的内存和磁盘)?
您要通过横跨不同的域进行安装并需要区分这些域吗?
基于规则的自动安装所做的基本上是通过把几个配置文件合成一个而生成自定义配置文件以匹配异构方案。 每个规则描述一个特定的安装功能(例如磁盘大小)并告诉 AutoYaST 当规则匹配时使用哪个配置文件。 描述不同安装功能的几个规则都组合到一个 AutoYaST rules.xml 文件中。 然后规则堆栈将被处理,AutoYaST 通过把可以匹配 AutoYaST 规则的不同配置文件合成为一个来生成最后的配置文件。 有关该过程的示例,请参见第 21.2.2 节 “基于规则自动安装的示例方案”。
基于规则的 AutoYaST 在计划和执行 SUSE Linux Enterprise 部署方面具有很大的灵活性。 您可以执行以下操作:
创建规则来匹配 AutoYaST 中的任何预定义系统属性
使用逻辑操作器将多个系统属性(如磁盘大小和内核体系结构)组合成一个规则
通过运行外壳脚本并将其输出传递到 AutoYaST 框架来创建自定义规则。 自定义规则的数量限于 5 个。
![]() | |
有关 AutoYaST 规则创建和使用方法的更多信息,请参见 | |
要准备基于规则的 AutoYaST 大规模安装,请执行以下操作:
创建几个 AutoYaST 配置文件,这些配置文件包含第 21.1.1 节 “创建 AutoYaST 配置文件”中描述的异构安装所需的安装细节。
定义规则以匹配第 21.2.2 节 “基于规则自动安装的示例方案”中所显示的硬件安装的系统属性。
如第 21.1.2 节 “分发配置文件并确定 autoyast 参数”中所述,确定 AutoYaST 配置文件的来源以及要传递到安装例程的参数。
如第 21.1.3 节 “提供安装数据”所述确定 SUSE Linux Enterprise 安装数据源。
如第 21.1.5 节 “创建 info 文件”所述,通过手动添加参数或创建 info 文件,将命令行传递到安装例程。
如第 21.1.4 节 “设置引导方案”中所述确定并设置自动安装引导方案。
如第 21.1.6 节 “启动并监视自动安装”中所述,启动自动安装进程。
要基本了解如何创建规则,请考虑图 21.2 “AutoYaST 规则”中描述的如下示例。 一次性 AutoYaST 安装下列设置:
计算机只需要无桌面环境的最小化安装和一套有限的软件包。
这些计算机需要桌面环境和一整套开发软件。
这些计算机需要桌面环境和一套有限的专用应用程序(如办公和日历软件)。
在第一步中,请使用第 21.1.1 节 “创建 AutoYaST 配置文件”中所述的方法之一来为每次使用情况创建配置文件。 在本例中,您将创建 print.xml、engineering.xml 和 sales.xml。
在第二步中,请创建规则来区分三种硬件类型并且告诉 AutoYaST 使用哪个配置文件。 使用类似于下列方法的算法来设置规则:
该计算机有 的 IP 地址吗? 然后将其设为打印服务器。
该计算机拥有 PCMCIA 硬件和 Intel 芯片组吗? 然后将其视为 Intel 笔记本电脑并安装销售部软件选择。
如果以上均不正确,则将该计算机视为开发人员工作站并进行相应的安装。
大致上,这可以转换为具有下列内容的 rules.xml 文件:
<?xml version="1.0"?>
<!DOCTYPE autoinstall SYSTEM "/usr/share/autoinstall/dtd/rules.dtd">
<autoinstall xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<rules config:type="list">
<rule>
<hostaddress>
<match>192.168.2.253</match>
<match_type>exact</match_type>
</hostaddress>
<result>
<profile>print.xml</profile>
<continue config:type="boolean">false</continue>
</result>
</rule>
<rule>
<haspcmcia>
<match>1</match>
<match_type>exact</match_type>
</haspcmcia>
<custom1>
<script>
if grep -i intel /proc/cpuinfo > /dev/null; then
echo -n "intel"
else
echo -n "non_intel"
fi;
</script>
<match>*</match>
<match_type>exact</match_type>
</custom1>
<result>
<profile>sales.xml</profile>
<continue config:type="boolean">false</continue>
</result>
<operator>and</operator>
</rule>
<rule>
<haspcmcia>
<match>0</match>
<match_type>exact</match_type>
</haspcmcia>
<result>
<profile>engineering.xml</profile>
<continue config:type="boolean">false</continue>
</result>
</rule>
</rules>
</autoinstall>
分发规则文件时,确保 rules 目录位于 profiles 目录下(在 autoyast= URL 中指定)。 AutoYaST 首先寻找包含文件名为 protocol:serverip/profiles/rules.xml 的 rules 子目录,然后装载并且合并规则文件中指定的配置文件。
剩余的自动安装程序像往常一样进行。
有关 AutoYaST 技术的更详细的信息,请参见随软件安装的文档。 它位于 /usr/share/doc/packages/autoyast2 下。 该文档的最新版本可以在 http://www.suse.de/~ug/autoyast_doc/index.html 找到。