基于规则的自动安装

以下几节讲述使用 AutoYaST 的基于规则安装的基本概念并提供示例方案,使您能够创建自定义自动安装。

了解基于规则的自动安装

基于规则的 AutoYaST 安装使您能够处理异构硬件环境:

  • 您的站点包含不同供应商的硬件吗?

  • 计算机是在您不同硬件配置的站点上吗(例如,使用不同设备或使用大小不同的内存和磁盘)?

  • 您要通过横跨不同的域进行安装并需要区分这些域吗?

基于规则的自动安装所做的基本上是通过把几个配置文件合成一个而生成自定义配置文件以匹配异构方案。 每个规则描述一个特定的安装功能(例如磁盘大小)并告诉 AutoYaST 当规则匹配时使用哪个配置文件。 描述不同安装功能的几个规则都组合到一个 AutoYaST rules.xml 文件中。 然后规则堆栈将被处理,AutoYaST 通过把可以匹配 AutoYaST 规则的不同配置文件合成为一个来生成最后的配置文件。 有关该过程的示例,请参见第 5.2.2 节 “基于规则自动安装的示例方案”

基于规则的 AutoYaST 在计划和执行 SUSE Linux Enterprise 部署方面具有很大的灵活性。 您可以执行以下操作:

  • 创建规则来匹配 AutoYaST 中的任何预定义系统属性

  • 使用逻辑操作器将多个系统属性(如磁盘大小和内核体系结构)组合成一个规则

  • 通过运行 shell 脚本并将其输出传递到 AutoYaST 框架来创建自定义规则。 自定义规则的数量限于 5 个。

[Note]

有关 AutoYaST 规则创建和使用方法的更多信息,请参见规则和类别一章 /Usr/share/doc/packages/autoyast2/html/index.html 下的包文档。

要准备基于规则的 AutoYaST 大规模安装,请执行以下操作:

  1. 创建几个 AutoYaST 配置文件,这些配置文件包含第 5.1.1 节 “创建 AutoYaST 配置文件”中描述的异构安装所需的安装细节。

  2. 定义规则以匹配第 5.2.2 节 “基于规则自动安装的示例方案”中所显示的硬件安装的系统属性。

  3. 第 5.1.2 节 “分发配置文件并确定 autoyast 参数”中所述,确定 AutoYaST 配置文件的来源以及要传递到安装例程的参数。

  4. 第 5.1.3 节 “提供安装数据”所述确定 SUSE Linux Enterprise 安装数据源

  5. 第 5.1.5 节 “创建 info 文件”所述,通过手动添加参数或创建 info 文件,将命令行传递到安装例程。

  6. 第 5.1.4 节 “设置引导方案”中所述确定并设置自动安装引导方案。

  7. 第 5.1.6 节 “启动并监视自动安装”中所述,启动自动安装进程。

基于规则自动安装的示例方案

要基本了解如何创建规则,请考虑图 5.2 “AutoYaST 规则”中描述的如下示例。 一次性 AutoYaST 安装下列设置:

打印服务器

计算机只需要无桌面环境的最小化安装和一套有限的软件包。

工程设计部的工作站

这些计算机需要桌面环境和一整套开发软件。

销售部的笔记本电脑

这些计算机需要桌面环境和一套有限的专用应用程序(如办公和日历软件)。

图 5.2. AutoYaST 规则

AutoYaST 规则

在第一步中,请使用第 5.1.1 节 “创建 AutoYaST 配置文件”中所述的方法之一来为每次使用情况创建配置文件。 在本例中,您将创建 print.xmlengineering.xmlsales.xml

在第二步中,请创建规则来区分三种硬件类型并且告诉 AutoYaST 使用哪个配置文件。 使用类似于下列方法的算法来设置规则:

  1. 该计算机有 192.168.27.11 的 IP 地址吗? 然后将其设为打印服务器。

  2. 该计算机拥有 PCMCIA 硬件和 Intel 芯片组吗? 然后将其视为 Intel 笔记本电脑并安装销售部软件选择。

  3. 如果以上均不正确,则将该计算机视为开发人员工作站并进行相应的安装。

大致上,这可以转换为具有下列内容的 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.27.11</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 目录位于 autoyast=protocol:serverip/profiles/ URL 中指定的 profiles 目录下。AutoYaST 首先寻找包含文件名为 rules.xmlrules 子目录,然后装载并且合并规则文件中指定的配置文件。

剩余的自动安装程序像往常一样进行。