D SLE 12 与 15 中的 AutoYaST 配置文件之间的差异 #
SUSE Linux Enterprise Server 15 中的重大更改(例如新的模块概念,或者以 firewalld 取代 SuSEfirewall2)要求在 AutoYaST 中进行更改。如果您想要在 SUSE Linux Enterprise Server 15 中重复使用现有的 SUSE Linux Enterprise Server12 配置文件,需要按本文所述调整这些配置文件。
   
D1 产品选择 #
   为了能够与针对早于 SLE15 的产品版本创建的配置文件向后兼容,AutoYaST 实施了一种自动选择产品的启发方法。当配置文件不包含 product 元素时,将使用此启发。自动产品选择基于配置文件中的软件包和软件集选择。但是,只要有可能,都应该避免依赖此机制,并将旧配置文件更改为使用明确选择产品的方式。
  
有关明确选择产品的信息,请参见第 4.10.1 节 “产品选择”。
如果自动产品选择失败,将显示错误,并且安装不会继续。
D2 软件 #
SUSE Linux Enterprise Server 15 SP6 安装媒体仅包含极少的一部分可安装的软件包。这组精简的软件包仅提供安装环境,而不包括任何服务器应用程序或高级工具。提供更多软件包的其他储存库以“模块”或“扩展”的形式提供。通过以下两种备选方式提供:
- 通过注册服务器(SUSE Customer Center 或本地 SMT/RMT 代理) 
- 通过包含所有模块和扩展的 SLE-15-SP6-Full-ARCH-GM-media1.iso 映像。使用此媒体不要求在安装期间访问注册服务器。可以通过安装服务器在本地网络上共享此媒体。 
只需使用注册服务器就会在安装时授予对所有维护更新的访问权限。在不注册的情况下使用 DVD 媒体时无法访问维护更新。
D2.1 使用注册服务器添加模块或扩展 #
    要从注册服务器添加模块或扩展,请对 addons 部分中的每个模块/扩展使用 suse_register 标记。扩展需要额外的注册代码,可通过 reg_code 标记指定该注册代码。
   
    以下 XML 代码会添加 Basesystem 和 Server Applications 模块以及 Live Patching 扩展。要获取标记name、version 和 arch 的相应值,请在已安装 SLE 15 SP6 的系统上运行 SUSEConnect
    --list-extensions 命令。
   
<suse_register> <addons config:type="list"> <addon> <name>sle-module-basesystem</name> <version>15.6</version> <arch>x86_64</arch> </addon> <addon> <name>sle-module-server-applications</name> <version>15.6</version> <arch>x86_64</arch> </addon> <addon> <name>sle-module-live-patching</name> <version>15.6</version> <arch>x86_64</arch> <reg_code>REGISTRATION_CODE</reg_code> </addon> </addons> </suse_register>
有关更多信息,请参考第 4.3 节 “系统注册和扩展选择”。
D2.2 使用 SLE-15-SP6-Full-ARCH-GM-media1.iso 映像添加模块或扩展 #
要使用 SLE-15-SP6-Full-ARCH-GM-media1.iso 映像添加模块或扩展,请按以下示例中所示在 add-on 部分中创建相应项。以下 XML 代码会从包含该映像的 USB 闪存盘添加 Basesystem 模块:
<add-on> <add_on_products config:type="list"> <listentry> <media_url><![CDATA[dvd:///?devices=/dev/sda%2C/dev/sdb%2C/dev/sdc%2C/dev/sdd]]></media_url> <product_dir>/Module-Basesystem</product_dir> <product>sle-module-basesystem</product> </listentry> </add_on_products> </add-on>
product 必须与储存库中包含的内部产品名称相匹配。如果安装时产品名称不匹配,AutoYaST 将报告错误。
    
     您可以通过 NFS、FTP 或 HTTP 服务器在本地网络上共享 USB 闪存盘的内容。要执行此操作,请替换 media_url 标记中的 URL,使其指向服务器上媒体的根目录,例如:
    
<media_url>ftp://ftp.example.com/sle_15_sp6_full/</media_url>
D2.3 已更名的软件集 #
软件集自 SUSE Linux Enterprise Server 15 开始也已发生更改。某些软件集已更名;下表中提供了简短摘要。
| 旧的 SLE12 软件集 | 新的 SLE 15 软件集 | 
|---|---|
| Basis-Devel | devel_basis | 
| gnome-basic | gnome_basic | 
| Minimal | enhanced_base | 
| printing | print_server | 
| SDK-C-C++ | devel_basis | 
| SDK-Doc | technical_writing | 
| SDK-YaST | devel_yast | 
请仔细检查定义的软件集中是否包含全部所需软件包,并相应地调整配置文件。此外,需在已激活的扩展或模块中提供所需的软件集和软件包。
- 上表中的软件集重命名并非一对一替换;某些软件集的内容也发生了更改,某些软件包已移到不同软件集,甚至已从 SUSE Linux Enterprise Server 15 中去除。 
- 请检查所需的软件包是否仍包含在使用的软件集中,并根据需要使用 - packages标记指定其他软件包。
- 以上列表可能不完整,因为某些产品尚未针对 SUSE Linux Enterprise Server 15 发布。 
D3 模块和扩展依赖项的注册 #
从 SUSE Linux Enterprise Server 15 开始,注册期间,AutoYaST 会根据扩展的依赖项自动对扩展重新排序。这意味着,AutoYaST 配置文件中的扩展顺序并不重要。
另外,AutoYaST 会自动添加依赖模块,即使这些模块在配置文件中缺失。这意味着,您无需指定全部所需模块。但是,如果一个扩展依赖于另一个扩展,则需要在配置文件中指定所依赖的扩展(包括注册密钥)。否则注册将会失败。
   您可以使用 SUSEConnect --list-extensions 命令列出已注册系统中的可用扩展和模块。
  
D4 分区 #
   先前由 YaST 使用的分区后端 libstorage 现已被 libstorage-ng 取代,后者可以实现以前所不能实现的新功能。尽管后端有更改,但配置文件的 XML 语法并未更改。不过,SUSE Linux Enterprise Server 15 包含一些常规更改,相关说明请见下文。
  
D4.1 GPT 变成 AMD64/Intel 64 上的默认分区类型 #
    在 AMD64/Intel 64 系统上,GPT 现在是首选的分区类型。不过,如果您更想保留旧行为,可以通过在配置文件中将disklabel 元素设为 msdos 来明确指示。
   
D4.2 设置分区号 #
AutoYaST 将不再支持强制分区号,因为在某些情况下,此行为不起作用。此外,GPT 现已成为首选的分区表类型,因此分区号没有太大的意义。
    不过,您仍可使用 partition_nr 标记来指定要重复使用的分区。有关更多信息,请参考第 4.6.3.2 节 “分区配置”。
   
D4.3 强制设置主分区 #
    仍可将某个分区强制作为primary(仅限在 MS-DOS 分区表中),方法是将 partition_type 设为 primary。但是,AutoYaST 将忽略任何其他值(例如 logical),因为它会自动确定分区类型。
   
D4.4 Btrfs:默认子卷名称 #
    新储存层允许用户为每个 Btrfs 文件系统设置不同的默认子卷(或者不设置默认子卷)。如下面的示例所示,可以使用 subvolumes_prefix 标记为每个分区指定前缀名称:
   
<partition> <mount>/</mount> <filesystem config:type="symbol">btrfs</filesystem> <size>max</size> <subvolumes_prefix>@</subvolumes_prefix> </partition>
    要省略子卷前缀,请设置 subvolumes_prefix 标记:
   
<partition> <mount>/</mount> <filesystem config:type="symbol">btrfs</filesystem> <size>max</size> <subvolumes_prefix>@</subvolumes_prefix> </partition>
    由于实施新的行为,不再需要旧的 btrfs_set_default_subvolume_name 标记,因此不再支持此标记。
   
D4.5 Btrfs:禁用子卷 #
     可以通过将 create_subvolumes 设为 false 来禁用 Btrfs 子卷。要跳过默认的 @ 子卷,请指定 subvolumes_prefix。
   
<partition> <create_subvolumes config:type="boolean">false</create_subvolumes> <subvolumes_prefix><![CDATA[]]></subvolumes_prefix> </partition>]]>
D4.6 不再支持读取现有的 /etc/fstab #
    在 SUSE Linux Enterprise Server 15 上,不再支持在尝试确定分区布局时从之前的安装读取现有 /etc/fstab 的功能。
   
D4.7 已去除用于对齐分区的设置 #
    由于柱面的概念已过时,partition_alignment> 标记没有任何意义,因此不再可用。AutoYaST 始终尝试以最佳方式对齐分区。
   
D4.8 使用 type 定义卷组 #
     已去除 is_lvm_vg 元素,以便可将 type 设置为 CT_LVM 值。有关更多细节,请参见第 4.6.5 节 “逻辑卷管理器 (LVM)”。
    
D5 防火墙配置 #
   在 SUSE Linux Enterprise Server 15 中,firewalld 已取代 SuSEfirewall2 成为默认防火墙。这两个防火墙的配置具有明显的差异,因此相应的 AutoYaST 配置文件语法已更改。
  
旧配置文件仍有效,但支持的配置极其有限。建议按下面所述更新 SLE 15 的配置文件。如果保留 SLE12 配置文件,我们建议检查最终配置,以避免意外行为或网络安全威胁。
| 支持(但已弃用) | 不支持 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | |
| 
 | |
| 
 | |
| 
 | 
   不再可用的 SuSEfirewall2 配置选项要么在 firewalld 中没有等效的映射,要么将在未来的 SUSE Linux Enterprise Server 版本中提供支持。某些 firewalld 功能尚不受 YaST 和 AutoYaST 的支持 — 您可以在 AutoYaST 配置文件中通过安装后脚本使用这些功能。有关更多信息,请参见第 4.32 节 “自定义用户脚本”。
   
    启用和启动 firewalld 的 systemd 服务是使用 SLE12 中的相同语法完成的。在 AutoYaST 中,只有这一部分防火墙配置语法未更改:
   
<firewall> <enable_firewall config:type="boolean">true</enable_firewall> <start_firewall config:type="boolean">true</start_firewall> ... </firewall>
以下示例演示如何将已弃用(但仍受支持)的配置文件转换为 SLE 15 语法:
D5.1 将接口指派给区域 #
    SuSEfirewall2 和 firewalld 都基于区域,但它们使用不同的预定义规则集和不同的信任级别建立网络连接。
   
firewalld 区域的映射 #| 
 | SuSEfirewall2 (SLE 12) | 
|---|---|
| dmz | DMZ | 
| external | 
         EXT, | 
| public | 
         EXT, | 
| internal | 
         INT, | 
| trusted | 
         INT, | 
| block | 无 | 
| drop | 无 | 
| home | 无 | 
| work | 无 | 
    在 SuSEfirewall2 中,默认区域是外部区域 (EXT),但也允许使用特殊关键字 any 将未在任何位置列出的所有接口指派给指定区域。
   
D5.1.1 默认配置 #
     以下两个示例演示了应用于接口 wlan0、eth0、eth1 和 wlan1 的默认配置。
    
<firewall> <FW_DEV_DMZ>any eth0</FW_DEV_DMZ> <FW_DEV_EXT>eth1 wlan0</FW_DEV_EXT> <FW_DEV_INT>wlan1</FW_DEV_INT> </firewall>
<firewall>
 <default_zone>dmz</default_zone>
 <zones config:type="list">
  <zone>
   <name>dmz</name>
   <interfaces config:type="list">
    <interface>eth0</interface>
   </interfaces>
  </zone>
  <zone>
   <name>public</name>
   <interfaces config:type="list">
    <interface>eth1</interface>
   </interfaces>
  </zone>
  <zone>
   <name>trusted</name>
   <interfaces config:type="list">
    <interface>wlan1</interface>
   </interfaces>
  </zone>
 </zones>
</firewall>D5.1.2 掩蔽和保护内部区域 #
     以下两个示例演示了如何使用掩蔽和受保护内部区域来配置接口 wlan0、eth0、eth1 和 wlan1。
    
<firewall> <FW_DEV_DMZ>any eth0</FW_DEV_DMZ> <FW_DEV_EXT>eth1 wlan0</FW_DEV_EXT> <FW_DEV_INT>wlan1</FW_DEV_INT> <FW_MASQUERADE>yes</FW_MASQUERADE> <FW_PROTECT_FROM_INT>yes</FW_PROTECT_FROM_INT> </firewall>
<firewall>
 <default_zone>dmz</default_zone>
 <zones config:type="list">
  <zone>
   <name>dmz</name>
   <interfaces config:type="list">
    <interface>eth0</interface>
   </interfaces>
  </zone>
  <zone>
   <name>external</name>
   <interfaces config:type="list">
    <interface>eth1</interface>
   </interfaces>
  </zone>
  <zone>
   <name>internal</name>
   <interfaces config:type="list">
    <interface>wlan1</interface>
   </interfaces>
  </zone>
 </zones>
</firewall>D5.2 打开端口 #
    在 SuSEfirewall2 中,使用 FW_SERVICES_\{DMZ,EXT,INT}_\{TCP,UDP,IP,RPC} 标记来打开不同区域中的端口。
   
    对于 TCP 或 UDP,SuSEfirewall2 支持端口号或端口范围,或者使用相应区域和服务的单个标记指定的 /etc/services  中的服务名称。对于 IP 服务,支持端口号或端口范围,或者可使用以下标记指定的 /etc protocols 中的协议名称:FW_SERVICES_ZONE_IP。
   
    对于 firewalld,在相应区域的 port 部分中,每个端口、端口范围和服务都需要有单独的项。在 protocol 部分中,IP 服务需要有单独的项。
   
    受 SuSEfirewall2 支持的 RPC 服务不再受 firewalld 的支持。
   
<firewall> <FW_SERVICES_DMZ_TCP>ftp ssh 80 5900:5999</FW_SERVICES_DMZ_TCP> <FW_SERVICES_EXT_UDP>1723 ipsec-nat-t</FW_SERVICES_EXT_UDP> <FW_SERVICES_EXT_IP>esp icmp gre</FW_SERVICES_EXT_IP> <FW_MASQUERADE>yes</FW_MASQUERADE> </firewall>
<firewall>
 <zones config:type="list">
  <zone>
   <name>dmz</name>
   <ports config:type="list">
    <port>ftp/tcp</port>
    <port>ssh/tcp</port>
    <port>80/tcp</port>
    <port>5900-5999/tcp</port>
   <ports>
  </zone>
  <zone>
   <name>external</name>
   <ports config:type="list">
    <port>1723/udp</port>
    <port>ipsec-nat-t/udp</port>
   </ports>
   <protocols config:type="list">
    <protocol>esp</protocol>
    <protocol>icmp</protocol>
    <protocol>gre</protocol>
   </protocols>
  </zone>
 </zones>
</firewall>D5.3 打开 firewalld 服务 #
    为了打开端口和/或协议的组合,SuSEfirewall2 提供了 FW_CONFIGURATIONS_\{EXT, DMZ, INT} 标记,这些标记与 firewalld 中的服务等效。
   
<firewall> <FW_CONFIGURATIONS_EXT>dhcp dhcpv6 samba vnc-server</FW_CONFIGURATIONS_EXT> <FW_CONFIGURATIONS_DMZ>ssh</FW_CONFIGURATIONS_DMZ> </firewall>
<firewall>
 <zones config:type="list">
  <zone>
   <name>dmz</name>
   <services config:type="list">
    <service>ssh</service>
   </services>
  </zone>
  <zone>
   <name>public</name>
   <services config:type="list">
    <service>dhcp</service>
    <service>dhcpv6</service>
    <service>samba</service>
    <service>vnc-server</service>
   </services>
  </zone>
 </zones>
</firewall>在以下两种情况下,可以通过软件包添加服务定义:
- SuSEfirewall2 服务定义:https://en.opensuse.org/SuSEfirewall2/Service_Definitions_Added_via_Packages 
- firewalldRPM 打包 https://en.opensuse.org/firewalld/RPM_Packaging- firewalld已经为- /usr/lib/firewalld/services中的大多数重要服务提供支持。在定义新配置之前,请先检查此目录中的现有配置。
D5.4 更多信息 #
D6 NTP 配置 #
   时间服务器同步守护程序 ntpd 已被更新式的守护程序 chrony 取代。因此,AutoYaST 中计时守护程序的配置语法已更改。来自 SLE12 的 AutoYaST 配置文件(其中某个部分包含 ntp:client)需要更新。
  
现在,NTP 的配置方式不是包含低级配置选项,而是在默认设置之上应用一组高级选项:
<ntp-client> <ntp_policy>auto</ntp_policy> <ntp_servers config:type="list"> <ntp_server> <iburst config:type="boolean">false</iburst> <address>cz.pool.ntp.org</address> <offline config:type="boolean">true</offline> </ntp_server> </ntp_servers> <ntp_sync>systemd</ntp_sync> </ntp-client>
D7 在第二阶段需要 AutoYaST 软件包 #
常规安装是在一个阶段中执行的,而通过 AutoYaST 执行的安装通常需要两个阶段。要执行安装的第二阶段,AutoYaST 需要几个额外的软件包,例如 autoyast2-installation 和 autoyast2。如果缺少这些软件包,将显示警告。
D8 已去除 CA 管理模块 #
   用于 CA 管理的模块 (yast2-ca-management) 已从 SUSE Linux Enterprise Server 15 中去除,目前尚无替代模块。如果您要重复使用 SLE12 配置文件,请确保它不包含 ca_mgm 部分。
  
D9 升级 #
D9.1 软件 #
     SLE 12 提供两种模式用于评估哪些软件包需要升级。在 SUSE Linux Enterprise Server 15 SP6 中,升级与否始终由依赖关系解析程序决定,相当于使用 zypper dup。
    
     这样会使 software 部分中的 only_installed_packages 选项过时。
    
D9.2 注册 #
    升级已注册的系统时,将去除所有旧储存库。这是为了避免新旧储存库之间可能发生的冲突,以及清理已删除产品的储存库。如果您需要保留自定义储存库,请使用 add-on 选项重新添加它们。
   
<suse_register> <do_registration config:type="boolean">true</do_registration> </suse_register>
如果注册服务器返回多个可能的迁移目标,AutoYaST 将自动选择第一个目标。目前您无法选择其他迁移目标。
    升级未注册的系统或通过省略 suse_register 选项跳过注册升级后,您可能需要手动调整储存库设置。