D SLE 12 与 15 中的 AutoYaST 配置文件之间的差异 #
SUSE Linux Enterprise Server 15 中的重大更改(例如新的模块概念,或者以 firewalld
取代 SuSEfirewall2)要求在 AutoYaST 中进行更改。如果您想要在 SUSE Linux Enterprise Server 15 中重复使用现有的 SUSE Linux Enterprise Server12 配置文件,需要按本文所述调整这些配置文件。
D.1 产品选择 #
为了能够与针对早于 SLE15 的产品版本创建的配置文件向后兼容,AutoYaST 实施了一种自动选择产品的启发方法。当配置文件不包含 product
元素时,将使用此启发。自动产品选择基于配置文件中的软件包和软件集选择。但是,只要有可能,都应该避免依赖此机制,并将旧配置文件更改为使用明确选择产品的方式。
有关明确选择产品的信息,请参见第 4.10.1 节 “产品选择”。
如果自动产品选择失败,将显示错误,并且安装不会继续。
D.2 软件 #
SUSE Linux Enterprise Server 15 SP6 安装媒体仅包含极少的一部分可安装的软件包。这组精简的软件包仅提供安装环境,而不包括任何服务器应用程序或高级工具。提供更多软件包的其他储存库以“模块”或“扩展”的形式提供。通过以下两种备选方式提供:
通过注册服务器(SUSE Customer Center 或本地 SMT/RMT 代理)
通过包含所有模块和扩展的 SLE-15-SP6-Full-ARCH-GM-media1.iso 映像。使用此媒体不要求在安装期间访问注册服务器。可以通过安装服务器在本地网络上共享此媒体。
只需使用注册服务器就会在安装时授予对所有维护更新的访问权限。在不注册的情况下使用 DVD 媒体时无法访问维护更新。
D.2.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 节 “系统注册和扩展选择”。
D.2.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>
D.2.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 发布。
D.3 模块和扩展依赖项的注册 #
从 SUSE Linux Enterprise Server 15 开始,注册期间,AutoYaST 会根据扩展的依赖项自动对扩展重新排序。这意味着,AutoYaST 配置文件中的扩展顺序并不重要。
另外,AutoYaST 会自动添加依赖模块,即使这些模块在配置文件中缺失。这意味着,您无需指定全部所需模块。但是,如果一个扩展依赖于另一个扩展,则需要在配置文件中指定所依赖的扩展(包括注册密钥)。否则注册将会失败。
您可以使用 SUSEConnect --list-extensions
命令列出已注册系统中的可用扩展和模块。
D.4 分区 #
先前由 YaST 使用的分区后端 libstorage
现已被 libstorage-ng
取代,后者可以实现以前所不能实现的新功能。尽管后端有更改,但配置文件的 XML 语法并未更改。不过,SUSE Linux Enterprise Server 15 包含一些常规更改,相关说明请见下文。
D.4.1 GPT 变成 AMD64/Intel 64 上的默认分区类型 #
在 AMD64/Intel 64 系统上,GPT 现在是首选的分区类型。不过,如果您更想保留旧行为,可以通过在配置文件中将disklabel
元素设为 msdos
来明确指示。
D.4.2 设置分区号 #
AutoYaST 将不再支持强制分区号,因为在某些情况下,此行为不起作用。此外,GPT 现已成为首选的分区表类型,因此分区号没有太大的意义。
不过,您仍可使用 partition_nr
标记来指定要重复使用的分区。有关更多信息,请参考第 4.6.3.2 节 “分区配置”。
D.4.3 强制设置主分区 #
仍可将某个分区强制作为primary
(仅限在 MS-DOS 分区表中),方法是将 partition_type
设为 primary
。但是,AutoYaST 将忽略任何其他值(例如 logical
),因为它会自动确定分区类型。
D.4.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
标记,因此不再支持此标记。
D.4.5 Btrfs:禁用子卷 #
可以通过将 create_subvolumes
设为 false
来禁用 Btrfs 子卷。要跳过默认的 @
子卷,请指定 subvolumes_prefix
。
<partition> <create_subvolumes config:type="boolean">false</create_subvolumes> <subvolumes_prefix><![CDATA[]]></subvolumes_prefix> </partition>]]>
D.4.6 不再支持读取现有的 /etc/fstab
#
在 SUSE Linux Enterprise Server 15 上,不再支持在尝试确定分区布局时从之前的安装读取现有 /etc/fstab
的功能。
D.4.7 已去除用于对齐分区的设置 #
由于柱面的概念已过时,partition_alignment
> 标记没有任何意义,因此不再可用。AutoYaST 始终尝试以最佳方式对齐分区。
D.4.8 使用 type
定义卷组 #
已去除 is_lvm_vg
元素,以便可将 type
设置为 CT_LVM
值。有关更多细节,请参见第 4.6.5 节 “逻辑卷管理器 (LVM)”。
D.5 防火墙配置 #
在 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 语法:
D.5.1 将接口指派给区域 #
SuSEfirewall2 和 firewalld
都基于区域,但它们使用不同的预定义规则集和不同的信任级别建立网络连接。
firewalld
区域的映射 #
| SuSEfirewall2 (SLE 12) |
---|---|
dmz | DMZ |
external |
EXT, |
public |
EXT, |
internal |
INT, |
trusted |
INT, |
block | 无 |
drop | 无 |
home | 无 |
work | 无 |
在 SuSEfirewall2 中,默认区域是外部区域 (EXT),但也允许使用特殊关键字 any
将未在任何位置列出的所有接口指派给指定区域。
D.5.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>
D.5.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>
D.5.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>
D.5.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
firewalld
RPM 打包 https://en.opensuse.org/firewalld/RPM_Packagingfirewalld
已经为/usr/lib/firewalld/services
中的大多数重要服务提供支持。在定义新配置之前,请先检查此目录中的现有配置。
D.5.4 更多信息 #
D.6 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>
D.7 在第二阶段需要 AutoYaST 软件包 #
常规安装是在一个阶段中执行的,而通过 AutoYaST 执行的安装通常需要两个阶段。要执行安装的第二阶段,AutoYaST 需要几个额外的软件包,例如 autoyast2-installation 和 autoyast2。如果缺少这些软件包,将显示警告。
D.8 已去除 CA 管理模块 #
用于 CA 管理的模块 (yast2-ca-management) 已从 SUSE Linux Enterprise Server 15 中去除,目前尚无替代模块。如果您要重复使用 SLE12 配置文件,请确保它不包含 ca_mgm
部分。
D.9 升级 #
D.9.1 软件 #
SLE 12 提供两种模式用于评估哪些软件包需要升级。在 SUSE Linux Enterprise Server 15 SP6 中,升级与否始终由依赖关系解析程序决定,相当于使用 zypper dup
。
这样会使 software 部分中的 only_installed_packages
选项过时。
D.9.2 注册 #
升级已注册的系统时,将去除所有旧储存库。这是为了避免新旧储存库之间可能发生的冲突,以及清理已删除产品的储存库。如果您需要保留自定义储存库,请使用 add-on
选项重新添加它们。
<suse_register> <do_registration config:type="boolean">true</do_registration> </suse_register>
如果注册服务器返回多个可能的迁移目标,AutoYaST 将自动选择第一个目标。目前您无法选择其他迁移目标。
升级未注册的系统或通过省略 suse_register
选项跳过注册升级后,您可能需要手动调整储存库设置。