4 配置和安装选项 #
本章包含服务、注册、用户和组管理、升级、分区、配置管理、SSH 密钥管理、防火墙配置及其他安装选项的配置示例。
本章介绍了用于标准用途的控制文件的重要组成部分。要了解其他可用选项,请使用配置管理系统。
请注意,要使某些配置选项有效,需要根据您已配置的软件选项安装其他软件包。如果您选择安装精简系统,则可能会缺少某些软件包,需将这些软件包添加到各个软件包选项中。
YaST 会在 AutoYaST 安装后阶段开始之前的第二个安装阶段安装所需的软件包。但是,如果所需的 YaST 模块在系统中不可用,则会跳过重要的配置步骤。例如,如果未安装 yast2-security
,则不会配置安全设置。
4.1 一般选项 #
general 部分包含影响安装工作流程的所有设置。此部分的整体结构如下所示:
<?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <general> <ask-list>1 ... </ask-list> <cio_ignore>2 ... </cio_ignore> <mode>3 ... </mode> <proposals>4 ... </proposals> <self_update>5 ... </self_update> <self_update_url> ... </self_update_url> <semi-automatic config:type="list">6 ... </semi-automatic> <signature-handling>7 ... </signature-handling> <storage>8 ... </storage> <wait>9 ... </wait> </general> <profile>
4.1.1 Mode 部分 #
Mode 部分配置有关用户确认和重引导的 AutoYaST 行为。允许将以下元素用于
mode
部分:
activate_systemd_default_target
如果您将此项设置为
false
,则不会通过调用systemctl isolate
激活默认的systemd
目标。设置此值是可选操作。默认值为true
。<general> <mode> <activate_systemd_default_target config:type="boolean"> true </activate_systemd_default_target> </mode> ... </general>
confirm
默认情况下,会在出现
屏幕时停止安装。截至此时,尚未对系统进行任何更改,可在此屏幕中更改设置。要继续操作并最终开始安装,用户需要确认设置。将此值设置为false
会自动接受设置并开始安装。只有设置为false
才能执行完全无人照管的安装。设置此值是可选操作。默认值为true
。<general> <mode> <confirm config:type="boolean">true</confirm> </mode> ... </general>
confirm_base_product_license
如果将此元素设置为
true
,则会显示基础产品的 EULA。用户需要接受此许可。否则会取消安装。设置此值是可选操作。默认设置为false
。此设置仅适用于基础产品许可。在add-on
部分使用标志confirm_license
可确认其他许可(有关细节,请参见第 4.9.3 节 “安装其他/自定义的软件包或产品”)。<general> <mode> <confirm_base_product_license config:type="boolean"> false </confirm_base_product_license> </mode> ... </general>
final_halt
如果设置为
true
,则在安装并配置所有组件后(第二个阶段结束时),计算机将会关机。如果您启用final_halt
,则不需要将final_reboot
选项设置为true
。<general> <mode> <final_halt config:type="boolean">false</final_halt> </mode> ... </general>
final_reboot
如果设置为
true
,则在安装并配置所有组件后(第二个阶段结束时),计算机将重引导。如果您启用final_reboot
,则不需要将final_halt
选项设置为true
。<general> <mode> <final_reboot config:type="boolean">true</final_reboot> </mode> ... </general>
final_restart_services
如果您将此项设置为
false
,则在安装结束时(第二个阶段结束时,此时已安装并配置好所有组件)将不重启动服务。设置此值是可选操作。默认值为true
。<general> <mode> <final_restart_services config:type="boolean"> true </final_restart_services> </mode> ... </general>
halt
完成第一阶段后关闭计算机。已安装所有软件包和引导加载程序,并已运行所有 chroot 脚本。计算机不会重引导进入第二个阶段,而是关闭。如果您再次开机,计算机将会引导,且开始第二个自动安装阶段。设置此值是可选操作。默认设置为
false
。<general> <mode> <halt config:type="boolean">false</halt> </mode> ... </general>
max_systemd_wait
指定 AutoYaST 等待
systemd
设置默认目标的最长时间(以秒为单位)。设置此值是可选操作,通常不需要设置。默认值为30
(秒)。<general> <mode> <max_systemd_wait config:type="integer">30</max_systemd_wait> </mode> ... </general>
ntp_sync_time_before_installation
指定在开始安装之前用于同步时间的 NTP 服务器。只有设置了此选项才会进行时间同步。请记住,需要建立网络连接并有权访问时间服务器。设置此值是可选操作。默认不会进行时间同步。
<general> <mode> <ntp_sync_time_before_installation> ntp.example.com </max_systemd_wait> </mode> ... </general>
second_stage
常规 SUSE Linux Enterprise Server 安装在一个阶段内执行。而自动安装过程则分为两个阶段。安装基本系统后,系统将引导进入第二个阶段,系统配置在此阶段完成。将此选项设置为
false
会禁用第二个阶段。设置此值是可选操作。默认值为true
。<general> <mode> <second_stage config:type="boolean">true</second_stage> </mode> ... </general>
4.1.2 配置‘安装设置’屏幕 #
AutoYaST 允许您配置proposal
标志可以控制要在安装屏幕中显示哪些设置(“建议”)。安装媒体上的 /control.xml
文件中提供了适用于您产品的有效建议列表。该设置是可选的。默认会显示所有配置选项。
<proposals config:type="list"> <proposal>partitions_proposal</proposal> <proposal>timezone_proposal</proposal> <proposal>software_proposal</proposal> </proposals>
4.1.3 自我更新部分 #
在安装期间,YaST 可以自我更新,以解决发布后所发现的安装程序 Bug。有关此功能的更多信息,请参见部署指南。
仅当您使用统一安装程序的 GM
映像和包 ISO 时,才能使用安装程序自我更新。如果您从作为季度更新发布的 ISO(可以根据名称中的字符串 QU
来识别)进行安装,则安装程序无法自我更新,因为此功能在更新媒体中已禁用。
使用以下标记来配置 YaST 自我更新:
self_update
如果设置为
true
或false
,此选项将启用或禁用 YaST 自我更新功能。设置此值是可选操作。默认值为true
。<general> <self_update config:type="boolean">true</self_update> ... </general>
或者,您可以在内核命令行上指定引导参数
self_update=1
。self_update_url
在 YaST 自我更新期间要使用的更新储存库的位置。有关详细信息,请参见《部署指南》。
重要:仅提供安装程序自我更新储存库只能为
self_update_url
参数指定安装程序自我更新储存库 URL。不要提供任何其他储存库 URL,例如软件更新储存库 URL。<general> <self_update_url> http://example.com/updates/$arch </self_update_url> ... </general>
该 URL 可包含变量
$arch
。该变量将由系统的体系结构(例如x86_64
、s390x
等)替换。或者,您可以在内核命令行上连同
self_update=URL
一起指定引导参数self_update=1
。
4.1.4 Semi-Automatic 部分 #
AutoYaST 允许在安装期间启动某些 YaST 模块。安装计算机的管理员可以通过此便利手动配置某些安装设置,同时自动完成剩余的安装步骤。在 semi-automatic 部分可以启动以下 YaST 模块:
网络设置模块 (
networking
)分区程序 (
partitioning
)注册模块 (
scc
)
以下示例会在安装期间启动所有三个支持的 YaST 模块:
<general> <semi-automatic config:type="list"> <semi-automatic_entry>networking</semi-automatic_entry> <semi-automatic_entry>scc</semi-automatic_entry> <semi-automatic_entry>partitioning</semi-automatic_entry> </semi-automatic> </general>
4.1.5 签名处理部分 #
默认情况下,AutoYaST 只会从具有已知 GPG 密钥的源安装已签名的软件包。使用此部分可以重写默认设置。
安装未签名的软件包、未通过校验和检查的软件包或者来自您不信任的源的软件包会带来重大安全风险。软件包可能已经过修改,并可能会在您的计算机上安装恶意软件。请仅在您确认储存库和软件包可信时,才重写此部分的默认设置。对于在禁用完整性检查的情况下安装的软件所造成的任何问题,SUSE 概不负责。
所有选项的默认值均为 false。如果某个选项设置为 false,而某个软件包或储存库未通过相关测试,则会以静默方式忽略而不予安装。
accept_unsigned_file
如果设置为
true
,AutoYaST 将接受未签名的文件(例如内容文件)。<general> <signature-handling> <accept_unsigned_file config:type="boolean"> false </accept_unsigned_file> </signature-handling> ... <general>
accept_file_without_checksum
如果设置为
true
,AutoYaST 将接受内容文件中没有校验和的文件。<general> <signature-handling> <accept_file_without_checksum config:type="boolean"> false </accept_file_without_checksum> </signature-handling> ... <general>
accept_verification_failed
如果设置为
true
,即使签名校验失败,AutoYaST 也会接受这些已签名的文件。<general> <signature-handling> <accept_verification_failed config:type="boolean"> false </accept_verification_failed> </signature-handling> ... <general>
accept_unknown_gpg_key
如果设置为
true
,AutoYaST 将接受安装源的新 GPG 密钥,例如,用来对内容文件签名的密钥。<general> <signature-handling> <accept_unknown_gpg_key config:type="boolean"> false </accept_unknown_gpg_key> </signature-handling> ... <general>
accept_non_trusted_gpg_key
将此选项设置为
true
会接受您尚未信任的已知密钥。<general> <signature-handling> <accept_non_trusted_gpg_key config:type="boolean"> false </accept_non_trusted_gpg_key> </signature-handling> ... <general>
import_gpg_key
如果设置为
true
,AutoYaST 将接受安装源上的新 GPG 密钥并将其导入自身的数据库中。<general> <signature-handling> <import_gpg_key config:type="boolean"> false </import_gpg_key> </signature-handling> ... <general>
4.1.6 Wait 部分 #
在第二个安装阶段,将通过运行模块来配置系统,例如网络配置。在 wait
部分,您可以定义在运行特定模块之前和之后要执行的脚本。还可以在每个模块的前面和后面配置系统处于非活动状态(“休眠”)的时间跨度。
pre-modules
定义启动配置模块之前执行的脚本和休眠时间。以下代码演示了一个将休眠时间设置为 10 秒,并在运行网络配置模块之前执行 echo 命令的示例。
<general> <wait> <pre-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>echo foo</source> <debug config:type="boolean">false</debug> </script> </module> </pre-modules> ... </wait> <general>
post-modules
定义启动配置模块之后执行的脚本和休眠时间。以下代码演示了一个将休眠时间设置为 10 秒,并在运行网络配置模块之后执行 echo 命令的示例。
<general> <wait> <post-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>echo foo</source> <debug config:type="boolean">false</debug> </script> </module> </post-modules> ... </wait> <general>
4.1.7 将 IBM Z 上未用的设备加入黑名单 #
在 IBM Z 上,您可以通过运行 cio_ignore
并将未用的硬件设备加入黑名单,来防止内核查找这些设备。为此,可将同名的 AutoYaST 参数设置为 true
。设置此值是可选操作,仅适用于 IBM Z 硬件上的安装。默认设置为 false
。
<general> <cio_ignore config:type="boolean">false</cio_ignore> ... <general>
4.1.8 有关 general
部分的示例 #
本节提供了多个用例。
本示例演示 general 部分中最常用的选项。pre-modules 和 post-modules 部分中的脚本只是用于说明概念的虚设脚本。
<?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <general> <! -- Use cio_ignore on IBM Z only --> <cio_ignore config:type="boolean">false</cio_ignore> <mode> <halt config:type="boolean">false</halt> <forceboot config:type="boolean">false</forceboot> <final_reboot config:type="boolean">false</final_reboot> <final_halt config:type="boolean">false</final_halt> <confirm_base_product_license config:type="boolean"> false </confirm_base_product_license> <confirm config:type="boolean">true</confirm> <second_stage config:type="boolean">true</second_stage> </mode> <proposals config:type="list"> <proposal>partitions_proposal</proposal> </proposals> <self_update config:type="boolean">true</self_update> <self_update_url>http://example.com/updates/$arch</self_update_url> <signature-handling> <accept_unsigned_file config:type="boolean"> true </accept_unsigned_file> <accept_file_without_checksum config:type="boolean"> true </accept_file_without_checksum> <accept_verification_failed config:type="boolean"> true </accept_verification_failed> <accept_unknown_gpg_key config:type="boolean"> true </accept_unknown_gpg_key> <import_gpg_key config:type="boolean">true</import_gpg_key> <accept_non_trusted_gpg_key config:type="boolean"> true </accept_non_trusted_gpg_key> </signature-handling> <storage> <partition_alignment config:type="symbol"> align_cylinder </partition_alignment> </storage> <wait> <pre-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>>![CDATA[ echo "Sleeping 10 seconds" ]]></source> <debug config:type="boolean">false</debug> </script> </module> </pre-modules> <post-modules config:type="list"> <module> <name>networking</name> <sleep> <time config:type="integer">10</time> <feedback config:type="boolean">true</feedback> </sleep> <script> <source>>![CDATA[ echo "Sleeping 10 seconds" ]]></source> <debug config:type="boolean">false</debug> </script> </module> </post-modules> </wait> </general> </profile>
4.2 报告 #
report
资源管理安装期间可能显示的三种弹出窗口:
消息弹出窗口(通常是非关键的信息性消息);
警告弹出窗口(如果可能出现问题);
错误弹出窗口(如果发生了错误)。
<report> <errors> <show config:type="boolean">true</show> <timeout config:type="integer">0</timeout> <log config:type="boolean">true</log> </errors> <warnings> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </warnings> <messages> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </messages> <yesno_messages> <show config:type="boolean">true</show> <timeout config:type="integer">10</timeout> <log config:type="boolean">true</log> </yesno_messages> </report>
您可以根据自己的经验跳过、记录和显示(结合使用超时)这些消息。建议结合使用超时显示所有 messages
。在某些情况下可以跳过警告,但不应将其忽略。
自动安装模式下的默认设置是显示错误且不设置超时,并以 10 秒超时显示所有警告/消息。
请注意,安装期间显示的消息并非全部由 report
资源控制。某些涉及到软件包安装和分区的关键消息将会忽略 report
部分中的设置直接显示出来。通常需要单击 或 来回答这些消息。
4.3 系统注册和扩展选择 #
可以在 suse_register
资源中配置于注册服务器中注册系统的操作。以下示例显示在 SUSE Customer Center 中注册系统。如果您的组织提供有自己的注册服务器,则您需要使用 reg_server*
属性指定所需的数据。有关细节,请参见下表。
<suse_register> <do_registration config:type="boolean">true</do_registration> <email>tux@example.com</email> <reg_code>MY_SECRET_REGCODE</reg_code> <install_updates config:type="boolean">true</install_updates> <slp_discovery config:type="boolean">false</slp_discovery> <--! optionally register some add-ons --> <addons config:type="list"> <addon> <name>sle-module-basesystem</name> <version>15.2</version> <arch>x86_64</arch> </addon> </addons> </suse_register>
建议至少注册 Basesystem 模块,以便能够访问基础系统(Linux 内核、系统库和服务)的更新。
作为全自动注册的替代方法,还可将 AutoYaST 配置为在安装期间启动 YaST 注册模块。这样就可以手动输入注册数据。需要提供以下 XML 代码:
<general> <semi-automatic config:type="list"> <semi-automatic_entry>scc</semi-automatic_entry> </semi-automatic> </general>
如果您要使用安装时所用的相同网络设置,AutoYaST 需要在启动注册前的第 1 阶段运行网络设置:
<networking> <setup_before_proposal config:type="boolean">true</setup_before_proposal> </networking>
元素 |
说明 |
注释 |
---|---|---|
|
布尔 <do_registration config:type="boolean" >true</do_registration> |
指定是否应注册系统。如果设置为 |
|
电子邮件地址 <email>tux@example.com</email> |
可选。与注册代码匹配的电子邮件地址。 |
|
文本 <reg_code>SECRET_REGCODE</reg_code> |
必要。注册代码。 |
|
布尔 <install_updates config:type="boolean" >true</install_updates> |
可选。确定是否应安装来自“更新”频道的更新。默认为不安装这些更新 ( |
|
布尔 <slp_discovery config:type="boolean" >true</slp_discovery> |
可选。通过 SLP 搜索注册服务器。默认值为
预期会查找单个服务器。如果找到多个服务器,安装将会失败。如果有多个可用的注册服务器,您需要使用
如果 此设置也会影响自我更新功能:如果禁用此设置,将不执行 SLP 搜索。 |
|
URL <reg_server> https://smt.example.com </reg_server> |
可选。RMT 服务器 URL。如果
将从 RMT 服务器查询自我更新储存库的 URL。因此,如果未设置 |
|
<reg_server_cert_fingerprint_type> SHA1 </reg_server_cert_fingerprint_type> |
可选。需要通过 |
|
采用十六进制表示法(不区分大小写)的服务器证书指纹值。 <reg_server_cert_fingerprint> 01:AB...:EF </reg_server_cert_fingerprint> |
可选。需要通过 |
|
URL <reg_server_cert> http://smt.example.com/smt.crt </reg_server_cert> |
可选。服务器上 SSL 证书的 URL。不建议使用此选项,因为不会校验下载的证书。请改用 |
|
附加产品列表 |
指定应添加到安装储存库的注册服务器中的扩展。有关详细信息,请参见第 4.3.1 节 “扩展”。 |
要获取与 reg_server_cert_fingerprint
项配合使用的服务器证书指纹,请在 SMT 服务器上运行以下命令(如果需要,请编辑 smt.crt
文件的默认路径):
openssl x509 -noout -in /srv/www/htdocs/smt.crt -fingerprint -sha256
要从 SMT 服务器检索指纹,请使用以下命令:
curl --insecure -v https://scc.suse.com/smt.crt 2> /dev/null | openssl x509 -noout -fingerprint -sha256
请将 scc.suse.com
替换为您的服务器。
注意:只能在可信网络中使用此命令!在不可信的网络(例如因特网)中,应通过其他方式直接从服务器获取指纹。可通过 SSH、保存的服务器配置和其他源提取指纹。或者,您也可以校验下载的证书是否与服务器上的证书相同。
4.3.1 扩展 #
SUSE Customer Center 提供多个扩展,例如 sle-module-development-tools
(开发工具模块),在安装期间,可作为附加源包含这些扩展。可通过 suse_register
块中的 addons
属性添加扩展。
扩展的可用性与产品和体系结构有关,并非所有扩展都可在所有体系结构上使用。
某些扩展(例如 sle-ha
)需要注册代码。根据您的订阅,请使用扩展的专用注册代码,或者重申基础产品的注册代码。
使用 SUSEConnect --list-extensions
可以列出已注册系统中所有可用的扩展。结果包含如下几行:
Install with: SUSEConnect -p sle-module-development-tools/15.2/x86_64
-p
参数显示可在 AutoYaST 配置文件中使用的 NAME/VERSION/ARCH 值,如下所示:
<addons config:type="list"> <addon> <!-- Development Tools Module --> <name>sle-module-development-tools</name> <version>15.2</version> <arch>x86_64</arch> </addon> </addons>
从 SLES 15 开始,在注册期间,AutoYaST 会根据扩展的依赖项对扩展进行重新排序。这意味着,AutoYaST 配置文件中的扩展顺序并不重要。
另外,AutoYaST 会自动注册依赖扩展,即使这些扩展在配置文件中缺失也会如此。这意味着,您不需要填写整个扩展列表。
但是,如果依赖扩展需要注册密钥,则必须在配置文件中指定这一点(包括该注册密钥)。否则注册将会失败。
有关背景信息和 SLES 的附加产品列表,请参见 https://github.com/yast/yast-registration/wiki/Available-SCC-Extensions-for-Use-in-Autoyast。附加产品列表会不时更新。
4.4 引导装载程序 #
本文档用于 yast2-bootloader
,并适用于 GRUB 2。对于传统 GRUB 随附的早期产品版本,请参见 /usr/share/doc/packages/autoyast2/
中发行套件随附的文档
AutoYaST 引导加载程序部分的一般结构如下所示:
<bootloader> <loader_type> <!-- boot loader type (grub2 or grub2-efi) --> </loader_type> <global> <!-- entries defining the installation settings for GRUB 2 and the generic boot code --> </global> <device_map config:type="list"> <!-- entries defining the order of devices --> </device_map> </bootloader>
4.4.1 加载程序类型 #
此部分定义要使用哪个引导加载程序(UEFI 或 BIOS/传统)。并非所有体系结构都支持引导加载程序的传统和 EFI 这两种变体。最安全的 (default
) 选项是让安装程序做出决定。
<loader_type>LOADER_TYPE</loader_type>
LOADER_TYPE 的可能值为:
default
:安装程序选择正确的引导加载程序。未定义选项时,这是默认选项。grub2
:使用传统 BIOS 引导加载程序。grub2-efi
:使用 EFI 引导加载程序。none
:引导进程不由安装程序管理和配置。
4.4.2 全局 #
这是一个可选但又很重要的部分。在此处定义要将 GRUB 2 安装到何处以及引导进程的工作方式。同样,如果您未定义配置,yast2-bootloader
将建议一种配置。通常,AutoYaST 控制文件仅包含此部分,在安装期间 yast2-bootloader
会自动添加所有其他部分。除非您有特殊的要求,否则请不要在 XML 文件中指定引导加载程序配置。
<global> <activate config:type="boolean">true</activate> <timeout config:type="integer">10</timeout> <suse_btrfs config:type="boolean">true</suse_btrfs> <terminal>gfxterm</terminal> <gfxmode>1280x1024x24</gfxmode> </global>
属性 |
说明 |
---|---|
|
在引导分区上设置引导标志。如果没有单独的 /boot 分区,引导分区可以是 <activate config:type="boolean">true</activate> |
|
在常规和恢复模式的引导项末尾添加的内核参数。 <append>nomodeset vga=0x317</append> |
|
将 GRUB 2 写入单独的 /boot 分区。如果不存在单独的 /boot 分区,则将 GRUB 2 写入 <boot_boot>false</boot_boot> |
|
将 GRUB 2 写入自定义设备。 <boot_custom>/dev/sda3</boot_custom> |
|
将 GRUB 2 写入扩展分区(如果您想要使用通用引导代码,而 <boot_extended>false</boot_extended> |
|
将 GRUB 2 按顺序写入第一个磁盘的 MBR(device.map 包含磁盘顺序)。 <boot_mbr>false</boot_mbr> |
|
将 GRUB 2 写入 <boot_root>false</boot_root> |
|
将通用引导代码写入 MBR(如果 <generic_mbr config:type="boolean">false</generic_mbr> |
|
GRUB 2 屏幕的图形分辨率(要求将 <terminal> 设置为 <gfxmode>1280x1024x24</gfxmode> |
|
如果设置为 <os_prober config:type="boolean">false</os_prober> |
|
允许选择 CPU 缓解措施内核引导命令行参数的默认设置(同时在安全性与性能之间取得平衡)。可能的值为:
<cpu_mitigations>auto</cpu_mitigations>
如果未在 AutoYaST 中设置,可通过内核命令行更改相应设置。默认将使用安装媒体上 |
|
已过时,不再使用。将自动启用从 Btrfs 快照引导。 |
|
当 GRUB 2 终端模式设置为 <serial> serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 </serials> |
|
如果设置为 <secure_boot">false</secure_boot> |
|
指定要使用的 GRUB 2 终端模式,有效项为 <terminal>serial</terminal> |
|
在自动引导默认引导项之前经过的超时(以秒为单位)。 <timeout config:type="integer">10</timeout> |
|
如果设置为 <trusted_boot">true</trusted_boot> |
|
将内核参数 <vgamode>0x317</vgamode> |
|
在 Xen Guest 的引导项末尾添加的内核参数。 <xen_append>nomodeset vga=0x317</xen_append> |
|
在 VM 主机服务器上的 Xen 内核的引导项末尾添加的内核参数。 <xen_kernel_append>dom0_mem=768M</xen_kernel_append> |
4.4.3 设备映射 #
GRUB 2 在生成其配置文件时,会使用设备 ID 字符串 (UUID) 或文件系统标签来避免 BIOS 驱动器与 Linux 设备之间出现映射问题。GRUB 2 实用程序会即时创建一个临时设备映射,这通常足以满足需要,在单磁盘系统上尤其如此。但是,如果您需要覆盖自动设备映射机制,请在此部分创建自定义映射。
<device_map config:type="list"> <device_map_entry> <firmware>hd0</firmware> <!-- order of devices in target map --> <linux>/dev/disk/by-id/ata-ST3500418AS_6VM23FX0</linux> <!-- name of device (disk) --> </device_map_entry> </device_map>
4.5 分区 #
在涉及到分区时,我们可以将 AutoYaST 用例分为三个不同的级别:
自动分区。用户不关心分区,并信任 AutoYaST 会采取适当的做法。
引导式分区。用户想要设置一些基本设置。例如,某个用户想要使用 LVM,但不知道如何配置分区、卷组等。
专家分区。用户指定如何布局。但是,他们不需要指定完整的定义,AutoYaST 应为缺少的部分建议合理的默认值。
在一定程度上,这类似于使用常规安装程序。您可以跳过分区屏幕并信任 YaST、使用引导式建议,或通过专家分区程序定义分区布局。
4.5.1 自动分区 #
无需任何用户指示,AutoYaST 可提供合理的分区布局。尽管分区布局取决于选择安装的产品,但 AutoYaST 通常会建议使用 Btrfs 根文件系统、一个使用 XFS 的独立 /home
,以及一个交换分区。此外,根据体系结构,它还会添加可能需要引导的任何分区(例如 BIOS GRUB 分区)。
但是,这些默认值可能会由于各种因素(例如可用磁盘空间)而发生变化。例如,是否具有独立的 /home
取决于可用磁盘空间量。
如果您想要影响这些默认值,可以使用第 4.5.2 节 “引导式分区”中所述的方法。
4.5.2 引导式分区 #
虽然 AutoYaST 可以在没有任何用户指示的情况下提供分区布局,但有时设置一些通用参数并让 AutoYaST 来完成其余设置是很有用的。例如,您可能想要使用 LVM 或加密文件系统,但同时又不想要处理细节。这种情况类似于在常规安装中使用引导式建议时的做法。
例 4.3 “基于 LVM 的引导式分区”中的 storage
部分指示 AutoYaST 使用 LVM 设置一个分区布局,并删除所有 Windows 分区,不管是否需要这些分区。
<general> <storage> <proposal> <lvm config:type="boolean">true<lvm> <windows_delete_mode config:type="symbol">all<windows_delete_mode> </proposal> <storage> <general>
- lvm
创建基于 LVM 的建议。默认设置为
false
。<lvm config:type="boolean">true</lvm>
- resize_windows
设置为
true
时,如果需要为安装腾出空间,AutoYaST 将调整 Windows 分区的大小。<resize_windows config:type="boolean">false</resize_windows>
- windows_delete_mode
如果设置为
none
,将不会去除 Windows 分区。如果设置为
ondemand
,将在需要时去除 Windows 分区。如果设置为
all
,将去除所有 Windows 分区。
<windows_delete_mode config:type="symbol">ondemand</windows_delete_mode>
- linux_delete_mode
如果设置为
none
,将不会去除 Linux 分区。如果设置为
ondemand
,将在需要时去除 Linux 分区。如果设置为
all
,将去除所有 Linux 分区。
<linux_delete_mode config:type="symbol">ondemand</linux_delete_mode>
- other_delete_mode
如果设置为
none
,将不会去除其他分区。如果设置为
ondemand
,将在需要时去除其他分区。如果设置为
all
,将去除所有其他分区。
<other_delete_mode config:type="symbol">ondemand</other_delete_mode>
- encryption_password
启用使用指定的口令进行加密。默认为禁用加密。
<encryption_password>some-secret</encryption_password>
4.5.3 专家分区 #
作为引导式分区的替代方案,AutoYaST 允许通过 partitioning
部分描述分区布局。但是,AutoYaST 无需知道每个细节就能基于一个不甚完整的规范构建合理的布局。
partitioning
部分是 drive
元素的列表。其中的每个部分描述分区布局的一个元素,例如磁盘、LVM 卷组、RAID、多设备 Btrfs 文件系统等。
例 4.4 “创建 /
、/home
和 swap
分区”要求 AutoYaST 使用整个磁盘创建 /
、/home
和 swap
分区。请注意,其中缺少了一些信息,例如每个分区应使用的文件系统。但这不是一个问题,因为 AutoYaST 将为缺少的项建议合理的值。
/
、/home
和 swap
分区 #<partitioning config:type="list"> <drive> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <size>20GiB</size> </partition> <partition> <mount>/home</mount> <size>max</size> </partition> <partition> <mount>swap</mount> <size>1GiB</size> </partition> </partitions> </drive>
AutoYaST 会检查配置文件中描述的布局是否可引导。如果不可引导,它会添加缺少的分区。因此,如果您不确定需要引导哪些分区,可以依赖 AutoYaST 做出适当的决策。
4.5.3.1 驱动器配置 #
下面列出的元素必须放在以下 XML 结构中:
<profile> <partitioning config:type="list"> <drive> ... </drive> </partitioning> </profile>
属性 |
值 |
说明 |
---|---|---|
|
您要在此部分配置的设备。可以通过 ID 使用持久设备名称(例如 <device>/dev/sda</device>
对于卷组、软件 RAID 或 有关处理多路径设备的更多信息,请参见第 4.5.7 节 “多路径支持”。 |
可选。如果留空,AutoYaST 将尝试猜测设备。有关如何影响猜测,请参见提示:跳过设备。
如果设置为 |
|
如果设置为 <initialize config:type="boolean">true</initialize> |
可选。默认设置为 |
|
<partition> 项的列表(请参见第 4.5.3.2 节 “分区配置”)。 <partitions config:type="list"> <partition>...</partition> ... </partitions> |
可选。如果未指定任何分区,AutoYaST 将创建合理的分区(请参见第 4.5.3.5 节 “填补缺失”)。 |
|
此值仅对 LVM 有意义。 <pesize>8M</pesize> |
可选。对于 LVM 卷组,默认值为 4M。 |
|
指定 AutoYaST 将用于硬盘分区的策略。 选择下列其中一项:
|
应提供此参数。 |
|
指定 选择下列其中一项:
<type config:type="symbol">CT_LVM</type> |
可选。默认值为 |
|
描述分区表的类型。 选择下列其中一项:
<disklabel>gpt</disklabel> |
可选。默认情况下,YaST 会确定有意义的值。如果存在不同类型的分区表,仅当该分区表不包含任何应该保留或重复使用的分区时,才会使用给定的类型重新创建该分区表。要使用磁盘而不创建任何分区,请将此元素设置为 |
|
此值仅对 type=CT_LVM 驱动器有意义。如果您正在重复使用某个逻辑卷组并将此项设置为 <keep_unknown_lv config:type="boolean" >false</keep_unknown_lv> |
可选。默认设置为 |
|
在装入到 <enable_snapshots config:type="boolean" >false</enable_snapshots> |
可选。默认值为 |
use
属性中提供的值确定如何处理现有数据和分区。值 all
表示将擦除整个磁盘。如果您需要保留某些包含重要数据的分区,请创建备份并使用 confirm
属性。否则,不会出现任何弹出窗口来通知您将要删除分区。
在您未自行指定 <device> 项的情况下,可以影响 AutoYaST 的设备猜测。AutoYaST 通常会使用它能够找到的且看上去合理的第一个设备,但您可以将它配置为跳过某些设备,如下所示:
<partitioning config:type="list"> <drive> <initialize config:type="boolean">true</initialize> <skip_list config:type="list"> <listentry> <!-- skip devices that use the usb-storage driver --> <skip_key>driver</skip_key> <skip_value>usb-storage</skip_value> </listentry> <listentry> <!-- skip devices that are smaller than 1GB --> <skip_key>size_k</skip_key> <skip_value>1048576</skip_value> <skip_if_less_than config:type="boolean">true</skip_if_less_than> </listentry> <listentry> <!-- skip devices that are larger than 100GB --> <skip_key>size_k</skip_key> <skip_value>104857600</skip_value> <skip_if_more_than config:type="boolean">true</skip_if_more_than> </listentry> </skip_list> </drive> </partitioning>
如需所有 <skip_key> 可能值列表,请在已安装的系统上运行 yast2 ayast_probe
。
4.5.3.2 分区配置 #
下面列出的元素必须放在以下 XML 结构中:
<drive> <partitions config:type="list"> <partition> ... </partition> </partitions> </drive>
属性 |
值 |
说明 | |||||
---|---|---|---|---|---|---|---|
|
指定是否必须创建此分区或逻辑卷,或者此分区或逻辑卷是否已存在。 <create config:type="boolean" >false</create> |
如果设置为 | |||||
|
将使用以下方法之一加密分区:
<crypt_method config:type="symbol">luks1</crypt_method> |
可选。加密方法选择是在 SUSE Linux Enterprise Server
15 SP2 中引入的。要模仿先前版本的行为,请使用
如果需要,请查看 | |||||
|
将加密分区。此元素已弃用。请改用 <crypt_fs config:type="boolean">true</crypt_fs> |
默认为 | |||||
|
加密密钥 <crypt_key>xxxxxxxx</crypt_key> |
如果 | |||||
|
此分区的安装点。 <mount>/</mount> <mount>swap</mount> |
至少应有一个根分区 (/) 和一个交换分区。 | |||||
|
此分区的装入选项。 <fstopt> ro,noatime,user,data=ordered,acl,user_xattr </fstopt> |
有关可用装入选项,请参见 | |||||
|
分区的标签。格式化设备时很有用(尤其是 <label>mydata</label> |
有关示例,请参见 | |||||
|
分区的 UUID。仅可用于标识现有设备(请参见前面所述的 <uuid >1b4e28ba-2fa1-11d2-883f-b9a761bde3fb</uuid> |
请参见 | |||||
|
分区的大小,例如 4G、4500M 等。/boot 分区和交换分区可以使用 您也可以按百分比指定大小。即指定 10% 将使用 10% 的硬盘或卷组大小。如果需要,您可以混合指定 auto、max、size 和百分比。 <size>10G</size> |
从 SUSE Linux Enterprise Server 15 开始,所有值(包括 | |||||
|
指定 AutoYaST 是否应格式化分区。 <format config:type="boolean">false</format> |
如果您将 | |||||
|
指定要在此分区上使用的文件系统:
<filesystem config:type="symbol" >ext3</filesystem> |
可选。对于根分区 ( | |||||
|
指定要添加到 mkfs 命令的选项字符串。 <mkfs_options>-I 128</mkfs_options> |
可选。请仅在您完全清楚自己所执行的操作时,才使用此元素。 | |||||
|
此分区的分区编号。如果您已设置 <partition_nr config:type="integer" >2</partition_nr> |
通常,编号 1 到 4 是主分区,5 和更高的编号是逻辑分区。 | |||||
|
<partition_id config:type="integer" >131</partition_id> 可能的值为:
|
Linux 分区的默认值为 | |||||
|
使用 <partition_type>primary</partition_type> |
可选。允许的值为 | |||||
|
如果不使用分区编号,您可以告知 AutoYaST 按 <mountby config:type="symbol" >label</mountby> |
请参见上文有关 | |||||
|
要为 Btrfs 类型的文件系统创建的子卷列表。此键仅对 Btrfs 类型的文件系统有意义。有关更多信息,请参见第 4.5.3.3 节 “Btrfs 子卷”。 <subvolumes config:type="list"> <path>tmp</path> <path>opt</path> <path>srv</path> <path>var/crash</path> <path>var/lock</path> <path>var/run</path> <path>var/tmp</path> <path>var/spool</path> ... </subvolumes> |
如果未为分区描述定义 | |||||
|
确定是否应创建 Btrfs 子卷。 |
默认设置为 | |||||
|
设置 Btrfs 子卷前缀名称。如果不需要前缀,则必须将此元素设置为空值: <subvolumes_prefix><![CDATA[]]></subvolumes_prefix> |
默认设置为 | |||||
|
如果此分区位于卷组中的某个逻辑卷上,请在此处指定该逻辑卷的名称(请查看驱动器配置中的 <lv_name>opt_lv</lv_name> | ||||||
|
用于配置 LVM 分段的整数。指定您要分段到多少个设备(分散数据)。 <stripes config:type="integer">2</stripes> | ||||||
|
指定每个块的大小,以 KB 为单位。 <stripesize config:type="integer" >4</stripesize> | ||||||
|
如果这是(部分)卷组 (LVM) 使用的物理分区,则您需要在此处指定该卷组的名称。 <lvm_group>system</lvm_group> | ||||||
|
如果 LVM 逻辑卷应是 LVM 精简池,则 <pool config:type="boolean">false</pool> | ||||||
|
用作此精简逻辑卷的数据储存的 LVM 精简池名称。如果设置为非空值,则表示该卷是所谓的精简逻辑卷。 <used_pool>my_thin_pool</used_pool> | ||||||
|
如果此物理卷是 RAID 的一部分,请指定该 RAID 的名称。 <raid_name>/dev/md/0</raid_name> | ||||||
|
指定 RAID 选项,具体请参见下文。 <raid_options>...</raid_options> |
在 | |||||
bcache_backing_for |
如果此设备用作 <bcache_backing_for>/dev/bcache0</bcache_backing_for> |
有关更多详细信息,请参见第 4.5.8 节 “ | |||||
bcache_caching_for |
如果此设备用作 <bcache_caching_for config:type="list"> <listentry>/dev/bcache0</listentry> </bcache_caching_for> |
有关更多详细信息,请参见第 4.5.8 节 “ | |||||
|
如果应调整现有分区的大小,则此布尔值必须为 <resize config:type="boolean">false</resize> |
从 SUSE Linux Enterprise Server 15 开始,调整大小功能适用于物理磁盘分区和 LVM 卷。 |
4.5.3.3 Btrfs 子卷 #
如第 4.5.3.2 节 “分区配置”中所述,可为每个 Btrfs 文件系统定义一组子卷。这组子卷的最简单形式是一个项列表:
<subvolumes config:type="list"> <path>tmp</path> <path>opt</path> <path>srv</path> <path>var/crash</path> <path>var/lock</path> <path>var/run</path> <path>var/tmp</path> <path>var/spool</path> </subvolumes>
AutoYaST 支持对给定的子卷禁用写入时复制。在这种情况下,应使用稍微复杂一点的语法:
<subvolumes config:type="list"> <listentry>tmp</listentry> <listentry>opt</listentry> <listentry>srv</listentry> <listentry> <path>var/lib/pgsql</path> <copy_on_write config:type="boolean">false</copy_on_write> </listentry> </subvolumes>
如果对发行套件使用了默认子卷(例如 SUSE Linux Enterprise Server 中的 @
),则此默认子卷的名称将自动成为此列表中名称的前缀。可以通过设置 subvolumes_prefix
来禁用此行为。
<subvolumes_prefix><![CDATA[]]></subvolumes_prefix>
4.5.3.4 使用整个磁盘 #
AutoYaST 允许通过将 disklabel
设置为 none
(请参见第 4.5.3.1 节 “驱动器配置”)来使用整个磁盘而不创建任何分区。在这种情况下,drive
中第一个 partition
中的配置将应用到整个磁盘。
在以下示例中,我们将使用第二个磁盘 (/dev/sdb
) 作为 /home
文件系统。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <create config:type="boolean">true</create> <format config:type="boolean">true</format> <mount>/</mount> <size>max</size> </partition> </partitions> </drive> <drive> <device>/dev/sdb</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <format config:type="boolean">true</format> <mount>/home</mount> </partition> </partitions> </drive>
此外,还可将整个磁盘用作 LVM 物理卷或软件 RAID 成员。有关设置 LVM 或软件 RAID 的更多细节,请参见第 4.5.5 节 “逻辑卷管理器 (LVM)”和第 4.5.6 节 “软件 RAID”。
出于向后兼容的原因,可以通过将 <partition_nr>
元素设置为 0
来实现相同的效果。但是,从 SUSE Linux Enterprise Server 15 开始,已弃用 <partition_nr>
元素的这种用法。
4.5.3.5 填补缺失 #
使用专家分区程序方法时,AutoYaST 可以基于一个不甚完整的配置文件创建分区计划。以下配置文件演示了如何描述分区布局的一些细节,然后让 AutoYaST 完成余下的操作。
下面是单个驱动器系统的示例,该驱动器未预先分区,应根据描述的预定义分区计划进行自动分区。如果您未指定设备,系统将自动检测设备。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <use>all</use> </drive> </partitioning>
有一个更详细的示例演示了如何处理现有分区和多个驱动器。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <size>10G</size> </partition> <partition> <mount>swap</mount> <size>1G</size> </partition> </partitions> </drive> <drive> <device>/dev/sdb</device> <use>free</use> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <mount>/data1</mount> <size>15G</size> </partition> <partition> <filesystem config:type="symbol">xfs</filesystem> <mount>/data2</mount> <size>auto</size> </partition> </partitions> </drive> </partitioning>
4.5.4 高级分区功能 #
4.5.4.1 擦除分区表 #
通常不需要执行此操作,因为 AutoYaST 可以自动地逐个删除分区。但是,您需要使用相应的选项来让 AutoYaST 清除分区表,而不是逐个删除分区。
转到 drive
部分并添加:
<initialize config:type="boolean">true</initialize>
指定此设置后,AutoYaST 会先删除分区表,然后再开始分析实际分区并计算其分区计划。当然,这也意味着您无法保留任何现有分区。
4.5.4.2 装入选项 #
默认情况下,要装入的文件系统在 /etc/fstab
中按设备名称标识。可以更改此标识,以便通过搜索 UUID 或卷标来查找文件系统。请注意,并非所有文件系统都可按 UUID 或卷标装入。要指定如何装入分区,请使用具有 symbol
类型的 mountby
属性。可能的选项为:
device
(默认值)label
UUID
如果您选择使用标签装入新分区,请使用 label
属性指定其值。
在 /etc/fstab
的第四个字段中添加任何有效装入选项。用逗号分隔多个选项。可能的 fstab 选项:
- 只读装入 (
ro
) 对文件系统没有写入访问权限。默认为
false
。- 不更新访问时间 (
noatime
) 读取文件时不更新访问时间。默认为
false
。- 可由用户装入 (
user
) 文件系统可由普通用户装入。默认为
false
。-
数据日记模式(
ordered
、journal
、writeback
) journal
在将所有数据写入主文件系统之前将其提交到日记。
ordered
在将所有数据的元数据提交到日记之前,将所有数据直接写入主文件系统。
writeback
不保留数据顺序。
- 访问控制列表 (
acl
) 在文件系统上启用访问控制列表。
- 扩展用户属性 (
user_xattr
) 在文件系统上允许扩展用户属性。
<partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <format config:type="boolean">true</format> <fstopt>ro,noatime,user,data=ordered,acl,user_xattr</fstopt> <mount>/local</mount> <mountby config:type="symbol">uuid</mountby> <partition_id config:type="integer">131</partition_id> <size>10G</size> </partition> </partitions>
不同的文件系统类型支持不同的选项。请在设置选项之前,请仔细查看相关文档。
4.5.4.3 保留特定的分区 #
在某些情况下,您应该将分区保留原样,仅格式化特定的目标分区,而不要从头开始创建分区。例如,如果有不同的 Linux 安装共存,或者您安装了另一个操作系统,则您可能不想要擦除这些分区。您还可能想要将数据分区保留原样。
此类方案要求对目标系统和硬盘有专门的了解。根据具体的方案,您可能需要知道目标硬盘的确切分区表及其分区 ID、大小和编号。有了这些数据,您便可以告知 AutoYaST 保留特定的分区、格式化其他分区,并根据需要创建新分区。
以下示例将保留分区 1、2、5,并删除分区 6 以创建两个新分区。所有剩余分区只会格式化。
<partitioning config:type="list"> <drive> <device>/dev/sdc</device> <partitions config:type="list"> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <mount>/</mount> <partition_nr config:type="integer">1</partition_nr> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">false</format> <partition_nr config:type="integer">2</partition_nr> <mount>/space</mount> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <filesystem config:type="symbol">swap</filesystem> <partition_nr config:type="integer">5</partition_nr> <mount>swap</mount> </partition> <partition> <format config:type="boolean">true</format> <mount>/space2</mount> <size>5G</size> </partition> <partition> <format config:type="boolean">true</format> <mount>/space3</mount> <size>max</size> </partition> </partitions> <use>6</use> </drive> </partitioning>
最后一个示例要求确切地了解应保留的分区的现有分区表和分区编号。但在某些情况下,可能不提供此类数据,尤其是在使用不同硬盘类型和配置的混合硬件环境中。以下方案适用于采用非 Linux 操作系统并可提供指定的区域进行 Linux 安装的系统。
在此方案中,如图 4.1 “保留分区”所示,AutoYaST 不会创建新分区,而是在系统上搜索特定的分区类型,并根据控制文件中的分区计划使用这些分区类型。在本例中未指定分区编号,而仅指定了安装点和分区类型(可以提供其他配置数据,例如文件系统选项、加密和文件系统类型)。
<partitioning config:type="list"> <drive> <partitions config:type="list"> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <mount>/</mount> <partition_id config:type="integer">131</partition_id> </partition> <partition> <create config:type="boolean">false</create> <format config:type="boolean">true</format> <filesystem config:type="symbol">swap</filesystem> <partition_id config:type="integer">130</partition_id> <mount>swap</mount> </partition> </partitions> </drive> </partitioning>
当 AutoYaST 探测储存设备时,尚未分析配置文件中的 partitioning 部分。在某些方案中,无法清楚地知道要使用哪个密钥来解锁设备。例如,定义了多个加密密钥时,就可能会发生这种情况。为了解决此问题,AutoYaST 会尝试所有已加密设备上定义的所有密钥,直到找到有效的密钥。
4.5.5 逻辑卷管理器 (LVM) #
要配置 LVM,请先使用前面所述的常规分区方法创建一个物理卷。
以下示例演示如何在 partitioning
资源中准备 LVM。将在类型为 LVM
并包含卷组 system
的设备 /dev/sda1
上创建一个未格式化的分区。此分区将使用驱动器上的所有可用空间。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <create config:type="boolean">true</create> <lvm_group>system</lvm_group> <partition_type>primary</partition_type> <partition_id config:type="integer">142</partition_id> <partition_nr config:type="integer">1</partition_nr> <size>max</size> </partition> </partitions> <use>all</use> </drive> </partitioning>
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <lvm_group>system</lvm_group> <partition_type>primary</partition_type> <size>max</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/system</device> <is_lvm_vg config:type="boolean">true</is_lvm_vg> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>user_lv</lv_name> <mount>/usr</mount> <size>15G</size> </partition> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>opt_lv</lv_name> <mount>/opt</mount> <size>10G</size> </partition> <partition> <filesystem config:type="symbol">ext4</filesystem> <lv_name>var_lv</lv_name> <mount>/var</mount> <size>1G</size> </partition> </partitions> <pesize>4M</pesize> <use>all</use> </drive> </partitioning>
对于逻辑卷,可将 size
设置为 max
。当然,只能为一个逻辑卷使用 max
。无法将一个卷组中的两个逻辑卷都设置为 max
。
4.5.6 软件 RAID #
对软件 RAID 设备的支持在 SUSE Linux Enterprise Server 15 SP2 中已得到很大改进。
如果需要,请参见第 4.5.6.1 节 “使用已弃用的语法”来了解有关指定软件 RAID 的旧方法的更多细节,出于向后兼容考虑,这种旧方法仍受支持。
使用 AutoYaST 可以创建和组装软件 RAID 设备。支持的 RAID 级别如下:
- RAID 0
此级别可提高磁盘性能。此模式不提供冗余。如果某个驱动器崩溃,将无法恢复数据。
- RAID 1
此模式提供最佳冗余。在两个或更多个磁盘上可使用此模式。在所有磁盘上保留所有数据的精确副本。只要至少有一个磁盘仍可正常工作,就不会丢失数据。用于此 RAID 类型的分区大小应大致相同。
- RAID 5
此模式结合了更多磁盘的管理功能,同时仍可保持一定程度的冗余。在三个或更多个磁盘上可使用此模式。如果有一个磁盘发生故障,所有数据仍将保持不变。如果两个磁盘同时发生故障,所有数据都会丢失。
- 多路径
此模式允许通过多个控制器访问同一物理设备,以提供冗余来防止控制器卡故障。在至少两个设备上可使用此模式。
类似于 LVM,AutoYaST 配置文件中的软件 RAID 定义由两个不同的部分构成:
确定要将哪些磁盘或分区用作 RAID 成员。为此,您需要在此类设备中设置
raid_name
元素。使用专用的
drive
部分定义 RAID 本身。
以下示例演示了一种 RAID1 配置,该配置使用第一和第二个磁盘中的各一个分区作为 RAID 成员:
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <mount>/</mount> <size>20G</size> </partition> <partition> <raid_name>/dev/md/0</raid_name> <size>max</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <raid_name>/dev/md/0</raid_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/md/0</device> <partitions config:type="list"> <partition> <mount>/home</mount> <size>40G</size> </partition> <partition> <mount>/srv</mount> <size>10G</size> </partition> </partitions> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>left_asymmetric</parity_algorithm> <raid_type>raid1</raid_type> </raid_options> <use>all</use> </drive> </partitioning>
如果您不想在软件 RAID 中创建分区,请将 disklabel
设置为 none
,就像对常规磁盘所做那样。在以下示例中,为简洁起见,仅显示了 RAID drive
部分:
<drive> <device>/dev/md/0</device> <disklabel>none</disklabel> <partitions config:type="list"> <partition> <mount>/home</mount> <size>40G</size> </partition> </partitions> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>left_asymmetric</parity_algorithm> <raid_type>raid1</raid_type> </raid_options> <use>all</use> </drive>
4.5.6.1 使用已弃用的语法 #
如果启用了安装程序自我更新功能,则可以将 SUSE Linux Enterprise Server 15 的软件 RAID 分区。但是,该方案在以前的版本中不受支持,因此定义软件 RAID 的方法略有不同。
本节定义了旧式配置的样式,出于向后兼容的原因,仍然支持这种配置。
使用这种已弃用的语法配置 RAID 时请注意以下几点:
RAID 的设备始终是
/dev/md
。属性
partition_nr
用于确定 MD 设备编号。如果partition_nr
等于 0,则配置/dev/md/0
。添加多个partition
部分表示您想要配置多个软件 RAID(/dev/md/0
、/dev/md/1
等)。所有特定于 RAID 的选项都包含在
raid_options
资源中。
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <partitions config:type="list"> <partition> <partition_id config:type="integer">253</partition_id> <format config:type="boolean">false</format> <raid_name>/dev/md0</raid_name> <raid_type>raid1</raid_type> <size>4G</size> </partition> <!-- Insert a configuration for the regular partitions located on /dev/sda here (for example / and swap) --> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <partitions config:type="list"> <partition> <format config:type="boolean">false</format> <partition_id config:type="integer">253</partition_id> <raid_name>/dev/md0</raid_name> <size>4gb</size> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/md</device> <partitions config:type="list"> <partition> <filesystem config:type="symbol">ext4</filesystem> <format config:type="boolean">true</format> <mount>/space</mount> <partition_id config:type="integer">131</partition_id> <partition_nr config:type="integer">0</partition_nr> <raid_options> <chunk_size>4</chunk_size> <parity_algorithm>left_asymmetric</parity_algorithm> </raid_options> </partition> </partitions> <use>all</use> </drive> </partitioning>
4.5.6.2 RAID 选项 #
以下元素必须放在以下 XML 结构中:
<partition> <raid_options> ... </raid_options> </partition>
属性 |
值 |
说明 |
---|---|---|
|
<chunk_size>4</chunk_size> | |
|
可能的值为:
对于 RAID6 和 RAID10,可使用以下值:
<parity_algorithm >left_asymmetric</parity_algorithm> | |
|
可能的值为: <raid_type>raid1</raid_type> |
默认值为 |
|
此列表包含物理设备的顺序: <device_order config:type="list"> <device>/dev/sdb2</device> <device>/dev/sda1</device> ... </device_order> |
此元素是可选的,默认为字母顺序。 |
4.5.7 多路径支持 #
AutoYaST 可以处理多路径设备。要利用此类设备,您需要按照例 4.16 “使用多路径设备”中所示启用多路径支持。或者,可以在内核命令行上使用以下参数:LIBSTORAGE_MULTIPATH_AUTOSTART=ON
。
与 SUSE Linux Enterprise 12 不同,无需将 drive 部分类型设置为 CT_DMMULTIPATH
。而应使用 CT_DISK
,不过出于历史原因,这两个值是等效的。
<general> <storage> <start_multipath config:type="boolean">true</start_multipath> <storage> </general> <partitioning> <drive> <partitions config:type="list"> <partition> <size>20G</size> <mount>/</mount> <filesystem config:type="symbol">ext4</filesystem> </partition> <partition> <size>auto</size> <mount>swap</mount> </partition> </partitions> <type config:type="symbol">CT_DISK</type> <use>all</use> </drive> </partitioning>
如果您要指定设备,可以使用全球标识符 (WWID)、其设备名称(例如 /dev/dm-0
)、/dev/disk
下表示多路径设备的任何其他路径,或者其任何路径。
以例 4.17 “列出多路径设备”中的 multipath
列表为例,您可以使用 /dev/mapper/14945540000000000f86756dce9286158be4c6e3567e75ba5
、/dev/dm-3
、/dev/disk
下的任何其他对应路径(如例 4.18 “使用 WWID 标识多路径设备”中所示),或设备的任何路径(/dev/sda
或 /dev/sdb
)。
# multipath -l 14945540000000000f86756dce9286158be4c6e3567e75ba5 dm-3 ATA,VIRTUAL-DISK size=40G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 2:0:0:0 sda 8:0 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 3:0:0:0 sdb 8:16 active ready running
<drive> <partitions config:type="list"> <device>/dev/mapper/14945540000000000f86756dce9286158be4c6e3567e75ba5</device> <partition> <size>20G</size> <mount>/</mount> <filesystem config:type="symbol">ext4</filesystem> </partition> </partitions> <type config:type="symbol">CT_DISK</type> <use>all</use> </drive>
4.5.8 bcache
配置 #
bcache
是允许使用多个快速驱动器来加速访问一个或多个慢速驱动器的缓存系统。例如,您可以使用一个快速驱动器作为缓存,来改善一个较大(但较慢)驱动器的性能。
有关 SUSE Linux Enterprise Server 上的 bcache 的详细信息,另请参见 https://www.suse.com/c/combine-the-performance-of-solid-state-drive-with-the-capacity-of-a-hard-drive-with-bcache-and-yast/ 上的博客文章。
要设置 bcache
设备,AutoYaST 需要一个指定了以下设置的配置文件:
要将某个(慢速)块设备设置为后端设备,请使用
bcache_backing_for
元素。要将某个(快速)块设备设置为缓存设备,请使用
bcache_caching_for
元素。您可以使用同一设备来加速访问多个驱动器。要指定
bcache
设备的布局,请使用drive
部分,并将type
元素设置为CT_BCACHE
。bcache
设备的布局可以包含分区。
bcache
定义 #<partitioning config:type="list"> <drive> <device>/dev/sda</device> <type config:type="symbol">CT_DISK</type> <use>all</use> <enable_snapshots config:type="boolean">true</enable_snapshots> <partitions config:type="list"> <partition> <filesystem config:type="symbol">btrfs</filesystem> <mount>/</mount> <create config:type="boolean">true</create> <size>max</size> </partition> <partition> <filesystem config:type="symbol">swap</filesystem> <mount>swap</mount> <create config:type="boolean">true</create> <size>2GiB</size> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_DISK</type> <device>/dev/sdb</device> <disklabel>msdos</disklabel> <use>all</use> <partitions config:type="list"> <partition> <!-- It can serve as caching device for several bcaches --> <bcache_caching_for config:type="list"> <listentry>/dev/bcache0</listentry> </bcache_caching_for> <size>max</size> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_DISK</type> <device>/dev/sdc</device> <use>all</use> <disklabel>msdos</disklabel> <partitions config:type="list"> <partition> <!-- It can serve as backing device for one bcache --> <bcache_backing_for>/dev/bcache0</bcache_backing_for> </partition> </partitions> </drive> <drive> <type config:type="symbol">CT_BCACHE</type> <device>/dev/bcache0</device> <bcache_options> <cache_mode>writethrough</cache_mode> </bcache_options> <use>all</use> <partitions config:type="list"> <partition> <mount>/data</mount> <size>20GiB</size> </partition> <partition> <mount>swap</mount> <filesystem config:type="symbol">swap</filesystem> <size>1GiB</size> </partition> </partitions> </drive> </partitioning>
目前,bcache_options
部分中唯一支持的选项是下表中所述的 cache_mode
。
属性 |
值 |
说明 |
---|---|---|
|
<cache_mode>writethrough</cache_mode> |
|
4.5.9 多设备 Btrfs 配置 #
Btrfs 支持创建跨越多个储存设备的单个卷,提供与软件 RAID 实现类似的功能,例如 Linux 内核的内置 mdraid
子系统。多设备 Btrfs 比其他某些 RAID 实现更具优势。例如,可将多设备 Btrfs 卷从一个 RAID 级别动态迁移到另一个 RAID 级别、可按文件设置 RAID 级别等。但是,并非所有这些功能在 SUSE Linux Enterprise Server 15 SP 2 中仍受到完全支持。
使用 AutoYaST 时,可以通过指定 CT_BTRFS
类型的驱动器来配置多设备 Btrfs。device
属性用作标识每个多设备 Btrfs 的任意名称。
与使用 RAID 时一样,需要先创建所有块设备(例如分区、LVM 逻辑卷等),并将其指派到您要通过此类块设备创建的 Btrfs 文件系统。
以下示例演示了一种简单的多设备 Btrfs 配置:
<partitioning config:type="list"> <drive> <device>/dev/sda</device> <disklabel>none</disklabel> <partitions> <partition> <btrfs_name>root_fs</btrfs_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>/dev/sdb</device> <disklabel>gpt</disklabel> <partitions> <partition> <partition_nr>1</partition_nr> <size>4gb</size> <filesystem>ext4</filesystem> <btrfs_name>root_fs</btrfs_name> </partition> </partitions> <use>all</use> </drive> <drive> <device>root_fs</device> <type config:type="symbol">CT_BTRFS</type> <partitions> <partition config:type="list> <mount>/</mount> </partition> </partitions> <btrfs_options> <raid_leve>raid1</raid_level> <metadata_raid_leve>raid1</metadata_raid_level> </btrfs_options> </drive> </partitioning>
支持的数据和元数据 RAID 级别为:default
、single
、dup
、raid0
、raid1
和 raid10
。默认情况下,文件系统元数据会镜像到两个设备,数据在所有设备之间分段。如果只存在一个设备,则在这一个设备上复制元数据。
配置多设备 Btrfs 文件系统时请记住以下几点:
设备需要指明
btrfs_name
属性才能包含到多设备 Btrfs 文件系统中。所有 Btrfs 特定的选项都包含在
CT_BTRFS
驱动器的btrfs_options
资源中。
4.5.10 NFS 配置 #
AutoYaST 允许将 SUSE Linux Enterprise Server 安装到网络文件系统 (NFS) 共享中。为此,您必须创建 CT_NFS
类型的驱动器,并提供 NFS 共享名 (SERVER:PATH) 作为设备名称。与安装点相关的信息包含在其第一个 partition 部分中。请注意,对于 NFS 驱动器,只会考虑第一个分区。
有关安装系统后如何配置 NFS 客户端和服务器的详细信息,请参见第 4.5.10 节 “NFS 配置”。
<partitioning config:type="list"> <drive> <device>192.168.1.1:/exports/root_fs</device> <type config:type="symbol">CT_NFS</type> <use>all</use> <partitions config:type="list"> <partition> <mount>/</mount> <fstopt>nolock</fstopt> </partition> </partitions> </drive> </partitioning>
4.5.11 IBM Z 特定的配置 #
4.5.11.1 配置 DASD 磁盘 #
下面列出的元素必须放在以下 XML 结构中:
<dasd> <devices config:type="list"> <listentry> ... </listentry> </devices> </dasd>
<profile> 部分中的标记。需在单独的 <listentry> ... </listentry> 部分配置每个磁盘。
属性 |
说明 |
值 |
---|---|---|
|
<device >DASD</dev_name> | |
|
您要在此部分配置的设备 ( <dev_name >/dev/dasda</dev_name> |
可选,但建议指定。如果留空,AutoYaST 将尝试猜测设备。 |
|
用于访问磁盘的通道。 <channel>0.0.0150</channel> |
必需。 |
|
启用或禁用 <diag config:type="boolean">true</diag> |
可选。 |
4.5.11.2 配置 zFCP 磁盘 #
以下元素必须放在以下 XML 结构中:
<profile> <zfcp> <devices config:type="list"> <listentry> ... </listentry> </devices> </zfcp> <profile>
需在单独的 listentry
部分配置每个磁盘。
属性 |
值 |
---|---|
|
通道编号 <controller_id >0.0.fc00</controller_id> |
4.6 iSCSI 发起端概述 #
使用 iscsi-client
资源可将目标计算机配置为 iSCSI 客户端。
<iscsi-client> <initiatorname>iqn.2013-02.de.suse:01:e229358d2dea</initiatorname> <targets config:type="list"> <listentry> <authmethod>None</authmethod> <portal>192.168.1.1:3260</portal> <startup>onboot</startup> <target>iqn.2001-05.com.doe:test</target> <iface>default</iface> </listentry> </targets> <version>1.0</version> </iscsi-client>
属性 |
说明 |
---|---|
|
|
|
YaST 模块的版本。默认值:1.0 |
|
目标列表。每个项包含:
|
4.7 以太网光纤通道 (FCoE) 配置 #
使用 fcoe_cfg
资源可以配置以太网光纤通道 (FCoE)。
<fcoe-client> <fcoe_cfg> <DEBUG>no</DEBUG> <USE_SYSLOG>yes</USE_SYSLOG> </fcoe_cfg> <interfaces config:type="list"> <listentry> <dev_name>eth3</dev_name> <mac_addr>01:000:000:000:42:42</mac_addr> <device>Gigabit 1313</device> <vlan_interface>200</vlan_interface> <fcoe_vlan>eth3.200</fcoe_vlan> <fcoe_enable>yes</fcoe_enable> <dcb_required>yes</dcb_required> <auto_vlan>no</auto_vlan> <dcb_capable>no</dcb_capable> <cfg_device>eth3.200</cfg_device> </listentry> </interfaces> <service_start> <fcoe config:type="boolean">true</fcoe> <lldpad config:type="boolean">true</lldpad> </service_start> </fcoe-client>
属性 |
说明 |
值 |
---|---|---|
|
如果设置为 yes,则会将 |
yes/no |
|
网卡列表,包括 VLAN 和 FCoE 配置的状态。 | |
|
启用或禁用在引导时启动
启动
|
yes/no |
4.8 国家/地区设置 #
语言、时区和键盘设置。
<language> <language>en_GB</language> <languages>de_DE,en_US</languages> </language>
属性 |
说明 |
值 |
---|---|---|
|
主要语言 |
在 |
|
逗号分隔的次要语言 |
在 |
如果主要语言的配置值未知,它将被重设置为默认值 en_US
。
<timezone> <hwclock>UTC</hwclock> <timezone>Europe/Berlin</timezone> </timezone>
属性 |
说明 |
值 |
---|---|---|
|
硬件时钟使用的是本地时间还是 UTC |
localtime/UTC |
|
时区 |
在 |
<keyboard> <keymap>german</keymap> </keyboard>
属性 |
说明 |
值 |
---|---|---|
|
键盘布局 |
键映射代码值或键映射别名值均有效。在 |
4.9 软件 #
4.9.1 产品选择 #
从 SUSE Linux Enterprise Server 15 开始,所有产品都是使用单个安装媒体分发的。因此,您需要使用 product
标记选择要安装的产品。
可用于 product
标记的值包括:
- SLES
SUSE Linux Enterprise Server
- SLE_HPC
SUSE Linux Enterprise High Performance Computing
- SLE_RT
SUSE Linux Enterprise Real Time
- SLES_SAP
SUSE Linux Enterprise Server for SAP Applications
- SLED
SUSE Linux Enterprise Desktop
- SUSE-Manager-Server
SUSE Manager Server
- SUSE-Manager-Retail-Branch-Server
SUSE Manager for Retail
- SUSE-Manager-Proxy
SUSE Manager Proxy
在以下示例中,所选择的产品为 SUSE Linux Enterprise Desktop:
<software> <products config:type="list"> <product>SLED</product> </products> </software>
在特殊情况下,媒体可能只包含一个产品。如果是这样,则您无需按上面所述显式选择产品。AutoYaST 将自动选择唯一可用的产品。
如果您正在使用或迁移旧版 SUSE Linux Enterprise Server 中的 AutoYaST 配置文件,请注意一些特殊注意事项。有关细节,请参见第 D.1 节 “产品选择”。
4.9.2 使用 Patterns 和 Packages 部分选择软件包 #
模式或软件包的配置如下所示:
<software> <patterns config:type="list"> <pattern>directory_server</pattern> </patterns> <packages config:type="list"> <package>apache</package> <package>postfix</package> </packages> <do_online_update config:type="boolean">true</do_online_update> </software>
这些值是真实的软件包或模式名称。如果软件包名称由于升级而发生更改,则您也需要调整这些设置。
4.9.3 安装其他/自定义的软件包或产品 #
除了 DVD-ROM 中可供安装的软件包以外,您还可以添加外部软件包(包括自定义的内核)。自定义的内核软件包必须与 SUSE 软件包兼容,并且内核文件必须安装到相同的位置。
与先前版本不同,您无需在控制文件中使用特殊的资源即可安装自定义软件包和外部软件包。不过,您需要重新创建软件包数据库,并使用源储存库中的任何新软件包或新软件包版本更新该数据库。
我们提供了一个脚本用于完成此任务。该脚本会查询储存库中提供的软件包并创建软件包数据库。使用命令 /usr/bin/create_package_descr
。可以在 openSUSE Build Service 的 inst-source-utils
软件包中找到此命令。创建数据库时,所有语言将重设置为英语。
解压缩的 DVD 位于 /usr/local/DVDs/LATEST
中。
tux >
cp /tmp/inst-source-utils-2016.7.26-1.2.noarch.rpm /usr/local/DVDs/LATEST/suse/noarchtux >
cd /usr/local/DVDs/LATEST/susetux >
create_package_descr -d /usr/local/CDs/LATEST/suse
在以上示例中,目录 /usr/local/CDs/LATEST/suse
包含与体系结构相关的(例如 x86_64
)以及与体系结构不相关的软件包 (noarch
)。在其他体系结构上,可能并不相同。
此方法的优势是可以保留包含固定软件包和已更新软件包的最新储存库。此外,此方法可以简化自定义 CD-ROM 的创建。
要添加您自己的模块,例如 SDK (SUSE Software Development Kit),请将文件 add_on_products.xml
添加到安装源的根目录中。
以下示例演示如何将 SDK 模块添加到基础产品储存库。完整的 SDK 储存库将储存在目录 /sdk
中。
add_on_products.xml
#此文件描述基础产品中包含的 SDK 模块。
<?xml version="1.0"?> <add_on_products xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <product_items config:type="list"> <product_item> <name>SUSE Linux Enterprise Software Development Kit</name> <url>relurl:////sdk?alias=SLE_SDK</url> <path>/</path> <-- Users are asked whether to add such a product --> <ask_user config:type="boolean">false</ask_user> <-- Defines the default state of pre-selected state in case of ask_user used. --> <selected config:type="boolean">true</selected> </product_item> </product_items> </add_on_products>
除这种特殊情况外,在安装 AutoYaST 期间,还几乎可以从其他每个位置添加所有其他模块、扩展和附加产品。
在安装期间甚至可以添加没有任何产品或模块信息的储存库。这些储存库称为其他附加项
。
<add-on> <add_on_products config:type="list"> <listentry> <media_url>cd:///sdk</media_url> <product>sle-sdk</product> <alias>SLE SDK</alias> <product_dir>/</product_dir> <priority config:type="integer">20</priority> <ask_on_error config:type="boolean">false</ask_on_error> <confirm_license config:type="boolean">false</confirm_license> <name>SUSE Linux Enterprise Software Development Kit</name> </listentry> </add_on_products> <add_on_others config:type="list"> <listentry> <media_url>https://download.opensuse.org/repositories/YaST:/Head/openSUSE_Leap_15.2/</media_url> <alias>yast2_head</alias> <priority config:type="integer">30</priority> <name>Latest YaST2 packages from OBS</name> </listentry> </add_on_others> </add-on>
add_on_others
和 add_on_products
部分支持相同的值:
属性 |
值 |
---|---|
|
产品 URL。可以包含前缀
如果您使用 SUSE Linux Enterprise Packages DVD 等多产品媒体,则 URL 路径应指向多产品媒体的根目录。使用 |
|
内部产品名(如果附加项是产品)。命令 |
|
储存库别名。由用户定义。 |
|
可选的子路径。此项只可用于 SUSE Linux Enterprise Packages DVD 等多产品媒体。 |
|
设置储存库 libzypp 优先级。1 是最高优先级。数字越大,优先级越低。默认值为 99。 |
|
在给定的位置找不到储存库时,AutoYaST 可以要求用户提供附加产品、模块或扩展,而不是报告超时错误。请将 ask_on_error 设置为 |
|
用户需要确认许可。默认为 |
|
储存库名称。命令 |
要在 AutoYaST 中使用未签名的安装源,请在 AutoYaST 控制文件中使用以下配置关闭检查。
只能在自动安装过程的第一个阶段禁用签名检查。在第二个阶段,已安装系统的配置将优先于 AutoYaST 配置。
下面列出的元素必须放在以下 XML 结构中:
<general> <signature-handling> ... </signature-handling> </general>
所有选项的默认值均为 false
。如果某个选项设置为 false
,而某个软件包或储存库未通过相关测试,则会以静默方式忽略而不予安装。请注意,将其中的任何选项设置为 true
都有可能带来安全风险。使用源自第三方的软件包或储存库时请勿这样做。
属性 |
值 |
---|---|
|
如果设置为 <accept_unsigned_file config:type="boolean" >true</accept_unsigned_file> |
|
如果设置为 <accept_file_without_checksum config:type="boolean" >true</accept_file_without_checksum> |
|
如果设置为 <accept_verification_failed config:type="boolean" >true</accept_verification_failed> |
|
如果设置为 <accept_unknown_gpg_key config:type="boolean" >true</accept_unknown_gpg_key> |
|
将此选项设置为 <accept_non_trusted_gpg_key config:type="boolean" >true</accept_non_trusted_gpg_key> |
|
如果设置为 <import_gpg_key config:type="boolean" >true</import_gpg_key> |
可以单独配置每个附加产品、模块或扩展的签名处理。以下元素必须位于各个附加产品、模块或扩展的 signature-handling
部分之间。所有设置都是可选的。如果未配置,将使用 general
部分中的全局签名处理方式。
属性 |
值 |
---|---|
|
如果设置为 <accept_unsigned_file config:type="boolean" >true</accept_unsigned_file> |
|
如果设置为 <accept_file_without_checksum config:type="boolean" >true</accept_file_without_checksum> |
|
如果设置为 <accept_verification_failed config:type="boolean" >true</accept_verification_failed> |
|
如果 <accept_unknown_gpg_key> <all config:type="boolean">true</all> </accept_unknown_gpg_key> 否则,您也可以定义单个密钥。 <accept_unknown_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> </keys> </accept_unknown_gpg_key> |
|
这表示密钥已知,但不受您的信任。 可以通过添加以下命令来信任所有密钥: <accept_non_trusted_gpg_key> <all config:type="boolean">true</all> </accept_non_trusted_gpg_key> 或者,您可以信任特定的密钥: <accept_non_trusted_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> </keys> </accept_non_trusted_gpg_key> |
|
如果 <import_gpg_key> <all config:type="boolean">true</all> </import_gpg_key> 只能对特定的密钥执行此操作: <import_gpg_key> <all config:type="boolean">false</all> <keys config:type="list"> <keyid>3B3011B76B9D6523</keyid> </keys> </import_gpg_key> |
4.9.4 内核软件包 #
内核软件包不在任何选项内。所需内核是在安装期间确定的。如果将内核软件包添加到任何选项或单个软件包选项,安装基本上都会由于冲突而失败。
要强制安装特定的内核,请使用 kernel
属性。下面是强制安装默认内核的示例。即使需要 SMP 或其他内核,也会安装此内核。
<software> <kernel>kernel-default</kernel> ... </software>
4.9.5 去除自动选择的软件包 #
某些软件包是由于存在依赖关系或者可供选择而被自动选择的。
去除这些软件包可能会破坏系统一致性,除非已获得可提供相同服务的替代软件包,否则不建议去除基本软件包。邮件传输代理 (MTA) 软件包就是其中最典型的示例。默认会选择并安装 postfix
。要使用其他 MTA(例如 sendmail
),可以使用软件资源中的列表从选定软件包列表中去除 postfix。但请注意,SUSE Linux Enterprise Server 并未随附 sendmail。以下示例演示了如何执行此操作:
<software> <packages config:type="list"> <package>sendmail</package> </packages> <remove-packages config:type="list"> <package>postfix</package> </remove-packages> </software>
请注意,无法去除某个模式中的软件包(请参见第 4.9.2 节 “使用 Patterns 和 Packages 部分选择软件包”)。如果指定去除此类软件包,安装将会失败并出现以下错误消息:
The package resolver run failed. Check your software section in the AutoYaST profile.
4.9.6 安装建议的软件包/模式 #
默认会安装所有建议的软件包/模式。要进行最小安装(仅包括必需的软件包),可以使用标志 install_recommended
关闭此行为。请注意,此标志只会影响全新安装,在升级期间将被忽略。
<software> <install_recommended config:type="boolean">false </install_recommended> </software>
默认:如果未在配置文件中设置此标志,将安装所有建议的软件包
,但不会安装建议的模式
。
4.9.7 在第 2 个阶段安装软件包 #
要在第二个阶段重引导后安装软件包,可以使用 post-packages
元素:
<software> <post-packages config:type="list"> <package>yast2-cim</package> </post-packages> </software>
4.9.8 在第 2 个阶段安装模式 #
您还可以在第 2 个阶段安装模式。为此,请使用 post-patterns
元素:
<software> <post-patterns config:type="list"> <pattern>apparmor</pattern> </post-patterns> </software>
4.9.9 在第 2 个阶段联机更新 #
可以在安装结束时执行联机更新。请将 do_online_update
布尔值设置为 true
。当然,仅当您在 suse-register/customer-center 部分或者安装后脚本中添加了联机更新储存库时,此设置才起作用。如果已通过 add-on 部分在第一个阶段提供了联机更新储存库,则 AutoYaST 应已安装了可用的最新软件包。如果内核更新是通过联机更新完成的,则第二个阶段结束时会触发重引导。
<software> <do_online_update config:type="boolean">true</do_online_update> </software>
4.10 升级 #
AutoYaST 还可用于执行系统升级。除升级软件包以外,还支持以下部分:
scripts/pre-scripts
在所有其他操作实际发生之前的早期阶段运行用户脚本。add-on
定义其他附加产品。language
设置语言。timezone
设置时区。keyboard
设置键盘。software
安装其他软件/模式。去除已安装的软件包。suse_register
运行注册过程。
要控制升级过程,可定义以下部分:
<upgrade> <stop_on_solver_conflict config:type="boolean">true</stop_on_solver_conflict> </upgrade> <backup> <sysconfig config:type="boolean">true</sysconfig> <modified config:type="boolean">true</modified> <remove_old config:type="boolean">true</remove_old> </backup>
元素 |
说明 |
注释 |
---|---|---|
|
出现软件包依赖性问题时暂停安装。 | |
|
创建已修改文件的备份。 | |
|
创建 | |
|
从先前的更新中去除备份。 |
要启动 AutoYaST 升级模式,您需要:
将 AutoYaST 配置文件复制到其文件系统上的
/root/autoupg.xml
中。从安装媒体引导系统。
选择
安装
菜单项。在命令行上设置
autoupgrade=1
。按 Enter 启动升级过程。
从安装媒体引导系统。
选择
安装
菜单项。在命令行上设置
netsetup=dhcp autoupgrade=1 autoyast=http://192.169.3.1/autoyast.xml
。此处将通过 DHCP 设置网络。
按 Enter 启动升级过程。
4.11 服务和目标 #
使用 services-manager
资源可以设置默认的 systemd 目标,并详细指定您要启动或停用哪些系统服务及其启动方式。
default-target
属性指定系统要引导进入的默认 systemd 目标。有效选项为 graphical
(图形登录)或 multi-user
(控制台登录)。
要指定引导时应启动的一组服务,请使用 enable
和 disable
列表。要启动某个服务,请将其名称添加到 enable
列表。要确保该服务在引导时不会启动,请将其添加到 disable
列表。
如果某个服务未列为启用或禁用,将使用默认设置。默认设置可以是禁用也可以是启用。
最后,某些服务(例如 cups
)支持按需激活(套接字激活的服务)。如果您想要利用此类功能,请在 on_demand
列表而不是 enable
中列出这些服务的名称。
<services-manager> <default_target>multi-user</default_target> <services> <disable config:type="list"> <service>libvirtd</service> </disable> <enable config:type="list"> <service>sshd</service> </enable> <on_demand config:type="list"> <service>cups</service> </on_demand> </services> </services-manager>
4.12 网络配置 #
网络配置用于将单个工作站连接到基于以太网的 LAN 或配置拨号连接。它还提供更复杂的配置(多个网卡、路由等)。
如果以下设置设为 true
,YaST 将保留安装期间(通过 linuxrc
)创建的网络设置,并/或将其与 AutoYaST 控制文件中的网络设置(如果已定义)合并。
linuxrc
程序
有关 linuxrc
的工作原理及其关键字的详细说明,请参见附录 C “高级 linuxrc
选项”。
AutoYaST 设置的优先级高于现有的任何配置文件。YaST 将基于控制文件中的项写入 ifcfg-* 文件,且不去除旧项。如果存在空白或缺少 DNS 和路由部分,YaST 将保留所有现有值。否则将应用控制文件中的设置。
<keep_install_network config:type="boolean">true</keep_install_network>
在第二个阶段,会先安装附加的软件包,然后再根据配置文件中所述配置网络。keep_install_network
默认设置为 true
,以确保在需要通过某个网络安装这些软件包时该网络可供使用。如果在第一个阶段便安装了所有软件包,且在第二个阶段的早期不需要网络,则将 keep_install_network
设置为 false
可避免复制配置。
要自动配置网络设置并激活网络,可使用一个全局资源 <networking>
来储存整个网络配置。
<networking> <dns> <dhcp_hostname config:type="boolean">true</dhcp_hostname> <domain>site</domain> <hostname>linux-bqua</hostname> <nameservers config:type="list"> <nameserver>192.168.1.116</nameserver> <nameserver>192.168.1.117</nameserver> <nameserver>192.168.1.118</nameserver> </nameservers> <resolv_conf_policy>auto</resolv_conf_policy> <searchlist config:type="list"> <search>example.com</search> <search>example.net</search> </searchlist> </dns> <interfaces config:type="list"> <interface> <bootproto>dhcp</bootproto> <device>eth0</device> <startmode>auto</startmode> </interface> </interfaces> <ipv6 config:type="boolean">true</ipv6> <keep_install_network config:type="boolean">false</keep_install_network> #false means use Wicked, true means use NetworkManager <managed config:type="boolean">false</managed> <net-udev config:type="list"> <rule> <name>eth0</name> <rule>ATTR{address}</rule> <value>00:30:6E:08:EC:80</value> </rule> </net-udev> <s390-devices config:type="list"> <listentry> <chanids>0.0.0800:0.0.0801:0.0.0802</chanids> <type>qeth</type> </listentry> </s390-devices> <routing> <ipv4_forward config:type="boolean">false</ipv4_forward> <ipv6_forward config:type="boolean">false</ipv6_forward> <routes config:type="list"> <route> <destination>192.168.2.1</destination> <device>eth0</device> <extrapara>foo</extrapara> <gateway>-</gateway> <netmask>-</netmask> </route> <route> <destination>default</destination> <device>eth0</device> <gateway>192.168.1.1</gateway> <netmask>-</netmask> </route> <route> <destination>default</destination> <device>lo</device> <gateway>192.168.5.1</gateway> <netmask>-</netmask> </route> </routes> </routing> </networking>
如上述示例所示,<networking>
部分可以包含几个子部分:
interfaces
描述网络接口的配置,包括其 IP 地址、启动方式等。dns
指定 DNS 相关的设置,例如主机名、名称服务器列表等。routing
定义路由规则。s390-devices
涉及特定于 s390 的设备设置。net-udev
枚举用于设置持久名称的 udev 规则。
<interfaces config:type="list"> <interface> <device>br0</device> <bootproto>static</bootproto> <bridge>yes</bridge> <bridge_forwarddelay>0</bridge_forwarddelay> <bridge_ports>eth0 eth1</bridge_ports> <bridge_stp>off</bridge_stp> <ipaddr>192.168.122.100</ipaddr> <netmask>255.255.255.0</netmask> <network>192.168.122.0</network> <prefixlen>24</prefixlen> <startmode>auto</startmode> </interface> <interface> <device>eth0</device> <bootproto>none</bootproto> <startmode>hotplug</startmode> </interface> <interface> <device>eth1</device> <bootproto>none</bootproto> <startmode>hotplug</startmode> </interface> </interfaces>
完全支持在 AutoYaST 中使用 IPv6 地址。要禁用 IPv6 地址支持,请设置 <ipv6 config:type="boolean">false</ipv6>
4.12.1 接口 #
interfaces
部分可让用户定义接口的配置,包括接口的启动方式、其 IP 地址、网络等。以下元素必须包含在 <interfaces>...</interfaces>
标记中。
元素 |
说明 |
注释 |
---|---|---|
|
接口使用的引导协议。可能的值:
|
必要。 |
|
广播 IP 地址。 |
仅适用于 |
|
设备名称。 |
已弃用。请改用 |
|
设备名称,例如: |
必要。 |
|
指派给接口的 IP 地址。 |
仅适用于 |
|
用于点对点连接的远程 IP 地址。 |
仅适用于 |
|
网络掩码,例如: |
已弃用。请改用 |
|
网络 IP 地址。 |
已弃用。请改为结合使用 |
|
网络前缀,例如: |
仅适用于 |
|
何时启动接口。可能的值为:
| |
|
|
仅适用于 |
|
不再使用的参数。 |
已弃用。 |
|
绑定设备的名称。 |
对于绑定设备是必需的。 |
|
绑定设备的选项。 |
仅适用于 |
|
接口的最大传送单位。 |
可选。 |
|
设备激活期间的 Ethtool 选项。 |
可选。 |
|
接口指派到的防火墙区域名称。 |
可选。 |
|
此 VLAN 使用的标识符。 |
仅适用于 |
|
VLAN 挂接到的设备。 |
仅适用于 |
|
如果接口是网桥,则为 |
已弃用。从其他属性推断而来。 |
|
网桥端口的空格分隔列表,例如 |
仅适用于 |
|
生成树协议。可能的值为 |
仅适用于 |
|
网桥的转发延迟,例如: |
仅适用于 |
4.12.2 网络接口的持久名称 #
net-udev
元素允许指定一组可用于向接口指派持久名称的 udev 规则。
元素 |
说明 |
注释 |
---|---|---|
|
网络接口名称,例如 |
必要。 |
|
|
必要。 |
|
例如: |
必要。 |
创建不完整的 udev 规则集时,所选设备名称可能与现有的设备名称冲突。例如,将网络接口重命名为 eth0
时,可能会与内核自动生成的设备冲突。AutoYaST 会尽力处理这种情况并重命名有冲突的设备。
<net-udev config:type="list"> <rule> <name>eth1</name> <rule>ATTR{address}</rule> <value>52:54:00:68:54:fb</value> </rule> </net-udev>
4.12.3 域名系统 #
dns
部分用于定义名称服务相关的设置,例如主机名或名称服务器。
元素 |
说明 |
注释 |
---|---|---|
|
主机名,不包括域名部分。例如: |
如果未指定主机名且未从 DHCP 服务器获取主机名(请参见 |
|
名称服务器的列表。示例: <nameservers config:type="list"> <nameserver>192.168.1.116</nameserver> <nameserver>192.168.1.117</nameserver> </nameservers> | |
|
用于查找主机名的搜索列表。 <searchlist config:type="list"> <search>example.com</search> </searchlist> |
可选。 |
|
指定是否必须从 DHCP 获取主机名。 <dhcp_hostname config:type="boolean">true</dhcp_hostname> |
4.12.4 路由选择 #
routing
表允许指定路由列表,以及 IPv4 和 IPv6 的包转发设置。
元素 |
说明 |
注释 |
---|---|---|
|
是否必须为 IPv4 启用 IP 转发。 |
可选。 |
|
是否必须为 IPv6 启用 IP 转发。 |
可选。 |
|
路由列表。 |
可选。 |
下表介绍了如何定义路由。
元素 |
说明 |
注释 |
---|---|---|
|
路由目标。可以指定地址前缀,例如: |
必要。 |
|
与路由关联的接口。 |
必要。 |
|
网关的 IP 地址。 |
可选。 |
|
目标的网络掩码。 |
已弃用。最好是指定前缀作为 |
4.12.5 s390 选项 #
以下元素必须包含在 <s390-devices>...</s390-devices> 标记之间。
元素 |
说明 |
注释 |
---|---|---|
type |
qeth、ctc 或 iucv | |
chanids |
冒号(首选)或空格分隔的通道 ID <chanids>0.0.0700:0.0.0701:0.0.0702</chanids> | |
layer2 |
<layer2 config:type="boolean">true</layer2> |
布尔值;默认值:false |
portname |
QETH 端口名(从 SLE 12 SP2 开始已弃用) | |
protocol |
CTC/LCS 协议,一个较小的数字(字符串形式) <protocol>1</protocol> |
可选 |
router |
IUCV 路由器/用户 |
除上述选项外,AutoYaST 还支持在配置文件的其他部分中使用 IBM Z 特定的选项。具体而言,您可以定义逻辑链接地址,即 LLADDR(在以太网中为 MAC 地址)。为此,请在设备定义中使用选项 LLADDR
。
VLAN 设备从底层物理设备继承其 LLADDR。要为 VLAN 设备设置特定的地址,请为底层物理设备设置 LLADDR 选项。
4.12.6 代理 #
配置因特网代理(缓存)设置。
使用 http_proxy
、https_proxy
和 ftp_proxy
分别配置 HTTP、HTTPS 和 FTP 的代理。需使用 no_proxy
指定应可直接访问的地址或名称(空格分隔值)。如果您使用需要身份验证的代理服务器,请填写 proxy_user
和 proxy_password
。
<proxy> <enabled config:type="boolean">true</enabled> <ftp_proxy>http://192.168.1.240:3128</ftp_proxy> <http_proxy>http://192.168.1.240:3128</http_proxy> <no_proxy>www.example.com .example.org localhost</no_proxy> <proxy_password>testpw</proxy_password> <proxy_user>testuser</proxy_user> </proxy>
4.13 NIS 客户端和服务器 #
使用 nis
资源可将目标计算机配置为 NIS 客户端。以下示例演示了使用多个域的详细配置。
<nis> <nis_broadcast config:type="boolean">true</nis_broadcast> <nis_broken_server config:type="boolean">true</nis_broken_server> <nis_by_dhcp config:type="boolean">false</nis_by_dhcp> <nis_domain>test.com</nis_domain> <nis_local_only config:type="boolean">true</nis_local_only> <nis_options></nis_options> <nis_other_domains config:type="list"> <nis_other_domain> <nis_broadcast config:type="boolean">false</nis_broadcast> <nis_domain>domain.com</nis_domain> <nis_servers config:type="list"> <nis_server>10.10.0.1</nis_server> </nis_servers> </nis_other_domain> </nis_other_domains> <nis_servers config:type="list"> <nis_server>192.168.1.1</nis_server> </nis_servers> <start_autofs config:type="boolean">true</start_autofs> <start_nis config:type="boolean">true</start_nis> </nis>
4.14 NIS 服务器 #
可将目标计算机配置为 NIS 服务器。可以使用 NIS 主服务器和 NIS 从属服务器,以及两者的组合。
<nis_server> <domain>mydomain.de</domain> <maps_to_serve config:type="list"> <nis_map>auto.master</nis_map> <nis_map>ethers</nis_map> </maps_to_serve> <merge_passwd config:type="boolean">false</merge_passwd> <mingid config:type="integer">0</mingid> <minuid config:type="integer">0</minuid> <nopush config:type="boolean">false</nopush> <pwd_chfn config:type="boolean">false</pwd_chfn> <pwd_chsh config:type="boolean">false</pwd_chsh> <pwd_srcdir>/etc</pwd_srcdir> <securenets config:type="list"> <securenet> <netmask>255.0.0.0</netmask> <network>127.0.0.0</network> </securenet> </securenets> <server_type>master</server_type> <slaves config:type="list"/> <start_ypbind config:type="boolean">false</start_ypbind> <start_yppasswdd config:type="boolean">false</start_yppasswdd> <start_ypxfrd config:type="boolean">false</start_ypxfrd> </nis_server>
属性 |
值 |
说明 |
---|---|---|
|
NIS 域名。 | |
|
服务器可用的映射列表。 |
值:auto.master、ethers、group、 hosts、netgrp、networks、 passwd、protocols、rpc、 services、shadow |
|
选择是否应将您的 passwd 文件与 shadow 文件合并(仅当 shadow 文件存在时才可以这样做)。 |
值:true/false |
|
要包含在用户映射中的最小 GID。 | |
|
要包含在用户映射中的最小 UID。 | |
|
不要将更改推送到从属服务器。(未发生任何更改时非常有用)。 |
值:true/false |
|
YPPWD_CHFN - 允许更改全名 |
值:true/false |
|
YPPWD_CHSH - 允许更改登录外壳 |
值:true/false |
|
YPPWD_SRCDIR - passwd 数据的源目录 |
默认值: |
|
允许其查询 NIS 服务器的主机列表 |
当网络等于主机地址和网络掩码的按位 AND 结果时,允许使用主机地址。 包含网络掩码 255.0.0.0 和网络 127.0.0.0 的项必须存在,才允许从本地主机进行连接。 输入网络掩码 0.0.0.0 和网络 0.0.0.0 会授予对所有主机的访问权限。 |
|
选择是将 NIS 服务器配置为主服务器或从属服务器,还是不配置 NIS 服务器。 |
值:master、slave、none |
|
要配置为 NIS 从属服务器的主机名列表。 | |
|
此主机也是 NIS 客户端(仅适用于在本地配置客户端的情况)。 |
值:true/false |
|
同时启动口令守护程序。 |
值:true/false |
|
同时启动映射传送守护程序。快速映射分发;将加快向从属服务器传送映射的过程。 |
值:true/false |
4.15 主机定义 #
使用 host
资源可将更多项添加到 /etc/hosts
文件。这不会删除现有的项。有关细节,请参见以下示例。
<host> <hosts config:type="list"> <hosts_entry> <host_address>133.3.0.1</host_address> <names config:type="list"> <name>booking</name> </names> </hosts_entry> <hosts_entry> <host_address>133.3.0.5</host_address> <names config:type="list"> <name>test-machine</name> </names> </hosts_entry> </hosts> <host>
4.16 Windows 域成员资格 #
使用 samba-client
资源可以配置工作组、NT 域或 Active Directory 域的成员资格。
<samba-client> <disable_dhcp_hostname config:type="boolean">true</disable_dhcp_hostname> <global> <security>domain</security> <usershare_allow_guests>No</usershare_allow_guests> <usershare_max_shares>100</usershare_max_shares> <workgroup>WORKGROUP</workgroup> </global> <winbind config:type="boolean">false</winbind> </samba-client>
属性 |
值 |
说明 |
---|---|---|
|
不允许 DHCP 更改主机名。 |
值:true/false |
|
身份验证体系的类型(域技术或 Active Directory 服务器 (ADS))。 |
值:ADS/domain |
|
允许共享 Guest 访问权限。 |
值:No/Yes |
|
表示 |
0 表示未启用共享。 |
|
工作组名或域名。 | |
|
使用 winbind。 |
值:true/false |
4.17 Samba 服务器 #
简单 Samba 服务器的配置。
<samba-server> <accounts config:type="list"/> <backend/> <config config:type="list"> <listentry> <name>global</name> <parameters> <security>domain</security> <usershare_allow_guests>No</usershare_allow_guests> <usershare_max_shares>100</usershare_max_shares> <workgroup>WORKGROUP</workgroup> </parameters> </listentry> </config> <service>Disabled</service> <trustdom/> <version>2.11</version> </samba-server>
属性 |
值 |
说明 |
---|---|---|
|
Samba 帐户的列表。 | |
|
可用后端的列表 |
值:true/false |
|
在 |
该示例显示了 |
|
在引导期间启动 Samba 服务。 |
值:Enabled/Disabled |
|
可信域。 |
两个映射的映射(键: |
|
Samba 版本。 |
默认值:2.11 |
4.18 身份验证客户端 #
配置文件必须采用 JSON 格式。校验 autoyast2 和 autoyast2-installation 是否都已安装。使用 YaST 中的 模块生成有效的 JSON 配置文件。启动 YaST 并切换到 › 。选择 › ,单击 ,然后配置可用设置。完成后单击 。要保存生成的配置文件,请使用 › 。
要结合本机 SSL(而不是 TLS)使用 LDAP,请添加 ldaps
资源。
4.19 NFS 客户端和服务器 #
可以使用配置系统将某个系统配置为 NFS 客户端或 NFS 服务器。以下示例演示如何配置 NFS 客户端和服务器。
从 SUSE Linux Enterprise Server 15 SP2 开始,NFS 客户端配置结构已更改。引入了一些全局配置选项:enable_nfs4
用于打开/关闭 NFS4 支持,idmapd_domain
用于定义 rpc.idmapd 域名(仅当已启用 NFS4 时才有效)。注意:旧结构与新结构不兼容,因此在较旧版本中创建的包含 NFS 部分的控制文件在较新产品中无效。
有关如何在 NFS 共享上安装 SUSE Linux Enterprise Server 的详细信息,请参见第 4.5.10 节 “NFS 配置”。
<nfs> <enable_nfs4 config:type="boolean">true</enable_nfs4> <idmapd_domain>suse.cz</idmapd_domain> <nfs_entries config:type="list"> <nfs_entry> <mount_point>/home</mount_point> <nfs_options>sec=krb5i,intr,rw</nfs_options> <server_path>saurus.suse.cz:/home</server_path> <vfstype>nfs4</vfstype> </nfs_entry> <nfs_entry> <mount_point>/work</mount_point> <nfs_options>defaults</nfs_options> <server_path>bivoj.suse.cz:/work</server_path> <vfstype>nfs</vfstype> </nfs_entry> <nfs_entry> <mount_point>/mnt</mount_point> <nfs_options>defaults</nfs_options> <server_path>fallback.suse.cz:/srv/dist</server_path> <vfstype>nfs</vfstype> </nfs_entry> </nfs_entries> </nfs>
<nfs_server> <nfs_exports config:type="list"> <nfs_export> <allowed config:type="list"> <allowed_clients>*(ro,root_squash,sync)</allowed_clients> </allowed> <mountpoint>/home</mountpoint> </nfs_export> <nfs_export> <allowed config:type="list"> <allowed_clients>*(ro,root_squash,sync)</allowed_clients> </allowed> <mountpoint>/work</mountpoint> </nfs_export> </nfs_exports> <start_nfsserver config:type="boolean">true</start_nfsserver> </nfs_server>
4.20 NTP 客户端 #
从 SUSE Linux Enterprise Server 15 开始,NTP 客户端配置文件采用了新格式,因此与先前的配置文件不兼容。需要更新您在旧版 SUSE Linux Enterprise Server 中使用的 NTP 客户端配置文件,然后才能与版本 15 和更新版本兼容。
下面是 NTP 客户端配置示例:
<ntp-client> <ntp_policy>auto</ntp_policy>1 <ntp_servers config:type="list"> <ntp_server> <address>cz.pool.ntp.org</address>2 <iburst config:type="boolean">false</iburst>3 <offline config:type="boolean">false</offline>4 </ntp_server> </ntp_servers> <ntp_sync>15</ntp_sync>5 </ntp-client>
| |
时间服务器或时间服务器池的 URL。 | |
启动 | |
将 | |
对于 |
以下示例演示了一个 IPv6 配置。可以使用服务器的 IP 地址和/或主机名:
<peer> <address>2001:418:3ff::1:53</address> <comment/> <options/> <type>server</type> </peer> <peer> <address>2.pool.ntp.org</address> <comment/> <options/> <type>server</type> </peer>
4.21 邮件服务器配置 #
对于客户端的邮件配置,此模块可让您创建详细的邮件配置。该模块包含各种选项。我们建议至少应在进行初始配置时使用该模块。
<mail> <aliases config:type="list"> <alias> <alias>root</alias> <comment></comment> <destinations>foo</destinations> </alias> <alias> <alias>test</alias> <comment></comment> <destinations>foo</destinations> </alias> </aliases> <connection_type config:type="symbol">permanent</connection_type> <fetchmail config:type="list"> <fetchmail_entry> <local_user>foo</local_user> <password>bar</password> <protocol>POP3</protocol> <remote_user>foo</remote_user> <server>pop.foo.com</server> </fetchmail_entry> <fetchmail_entry> <local_user>test</local_user> <password>bar</password> <protocol>IMAP</protocol> <remote_user>test</remote_user> <server>blah.com</server> </fetchmail_entry> </fetchmail> <from_header>test.com</from_header> <listen_remote config:type="boolean">true</listen_remote> <local_domains config:type="list"> <domains>test1.com</domains> </local_domains> <masquerade_other_domains config:type="list"> <domain>blah.com</domain> </masquerade_other_domains> <masquerade_users config:type="list"> <masquerade_user> <address>joe@test.com</address> <comment></comment> <user>joeuser</user> </masquerade_user> <masquerade_user> <address>bar@test.com</address> <comment></comment> <user>foo</user> </masquerade_user> </masquerade_users> <mta config:type="symbol">postfix</mta> <outgoing_mail_server>test.com</outgoing_mail_server> <postfix_mda config:type="symbol">local</postfix_mda> <smtp_auth config:type="list"> <listentry> <password>bar</password> <server>test.com</server> <user>foo</user> </listentry> </smtp_auth> <use_amavis config:type="boolean">true</use_amavis> <virtual_users config:type="list"> <virtual_user> <alias>test.com</alias> <comment></comment> <destinations>foo.com</destinations> </virtual_user> <virtual_user> <alias>geek.com</alias> <comment></comment> <destinations>bar.com</destinations> </virtual_user> </virtual_users> </mail>
4.22 Apache HTTP 服务器配置 #
本节介绍 Apache HTTP 服务器的配置。
对于经验不足的用户,我们建议使用 HTTP 服务器
YaST 模块配置 Apache 服务器。完成该操作后,调用 AutoYaST 配置
模块,选择 HTTP 服务器
YaST 模块并克隆 Apache 设置。可以通过文件
菜单导出这些设置。
<http-server> <Listen config:type="list"> <listentry> <ADDRESS/> <PORT>80</PORT> </listentry> </Listen> <hosts config:type="list"> <hosts_entry> <KEY>main</KEY> <VALUE config:type="list"> <listentry> <KEY>DocumentRoot</KEY> <OVERHEAD> # # Global configuration that will be applicable for all # virtual hosts, unless deleted here or overriden elsewhere. # </OVERHEAD> <VALUE>"/srv/www/htdocs"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # # Configure the DocumentRoot # </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/srv/www/htdocs"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Options</KEY> <OVERHEAD> # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch # ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* # --- "Options All" # does not give it to you. # # The Options directive is both complicated and important. # Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. </OVERHEAD> <VALUE>None</VALUE> </listentry> <listentry> <KEY>AllowOverride</KEY> <OVERHEAD> # AllowOverride controls what directives may be placed in # .htaccess files. It can be "All", "None", or any combination # of the keywords: # Options FileInfo AuthConfig Limit </OVERHEAD> <VALUE>None</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # Controls who can get stuff from this server. </OVERHEAD> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>Alias</KEY> <OVERHEAD> # Aliases: aliases can be added as needed (with no limit). # The format is Alias fakename realname # # Note that if you include a trailing / on fakename then the # server will require it to be present in the URL. So "/icons" # is not aliased in this example, only "/icons/". If the fakename # is slash-terminated, then the realname must also be slash # terminated, and if the fakename omits the trailing slash, the # realname must also omit it. # We include the /icons/ alias for FancyIndexed directory listings. # If you do not use FancyIndexing, you may comment this out. # </OVERHEAD> <VALUE>/icons/ "/usr/share/apache2/icons/"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/usr/share/apache2/icons"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Options</KEY> <VALUE>Indexes MultiViews</VALUE> </listentry> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>ScriptAlias</KEY> <OVERHEAD> # ScriptAlias: This controls which directories contain server # scripts. ScriptAliases are essentially the same as Aliases, # except that documents in the realname directory are treated # as applications and run by the server when requested rather # than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # </OVERHEAD> <VALUE>/cgi-bin/ "/srv/www/cgi-bin/"</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # "/srv/www/cgi-bin" should be changed to wherever your # ScriptAliased CGI directory exists, if you have that configured. # </OVERHEAD> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>"/srv/www/cgi-bin"</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>Options</KEY> <VALUE>+ExecCGI -Includes</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>!mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_access_compat.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>Order</KEY> <VALUE>allow,deny</VALUE> </listentry> <listentry> <KEY>Allow</KEY> <VALUE>from all</VALUE> </listentry> </VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <OVERHEAD> # UserDir: The name of the directory that is appended onto a # user's home directory if a ~user request is received. # To disable it, simply remove userdir from the list of modules # in APACHE_MODULES in /etc/sysconfig/apache2. # </OVERHEAD> <SECTIONNAME>IfModule</SECTIONNAME> <SECTIONPARAM>mod_userdir.c</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>UserDir</KEY> <OVERHEAD> # Note that the name of the user directory ("public_html") # cannot simply be changed here, since it is a compile time # setting. The apache package would need to be rebuilt. # You could work around by deleting /usr/sbin/suexec, but # then all scripts from the directories would be executed # with the UID of the webserver. </OVERHEAD> <VALUE>public_html</VALUE> </listentry> <listentry> <KEY>Include</KEY> <OVERHEAD> # The actual configuration of the directory is in # /etc/apache2/mod_userdir.conf. </OVERHEAD> <VALUE>/etc/apache2/mod_userdir.conf</VALUE> </listentry> </VALUE> </listentry> <listentry> <KEY>IncludeOptional</KEY> <OVERHEAD> # Include all *.conf files from /etc/apache2/conf.d/. # # This is mostly meant as a place for other RPM packages to drop # in their configuration snippet. # # # You can comment this out here if you want those bits include # only in a certain virtual host, but not here. </OVERHEAD> <VALUE>/etc/apache2/conf.d/*.conf</VALUE> </listentry> <listentry> <KEY>IncludeOptional</KEY> <OVERHEAD> # The manual... if it is installed ('?' means it will not complain) </OVERHEAD> <VALUE>/etc/apache2/conf.d/apache2-manual?conf</VALUE> </listentry> <listentry> <KEY>ServerName</KEY> <VALUE>linux-wtyj</VALUE> </listentry> <listentry> <KEY>ServerAdmin</KEY> <OVERHEAD> </OVERHEAD> <VALUE>root@linux-wtyj</VALUE> </listentry> <listentry> <KEY>NameVirtualHost</KEY> <VALUE>192.168.43.2</VALUE> </listentry> </VALUE> </hosts_entry> <hosts_entry> <KEY>192.168.43.2/secondserver.suse.de</KEY> <VALUE config:type="list"> <listentry> <KEY>DocumentRoot</KEY> <VALUE>/srv/www/htdocs</VALUE> </listentry> <listentry> <KEY>ServerName</KEY> <VALUE>secondserver.suse.de</VALUE> </listentry> <listentry> <KEY>ServerAdmin</KEY> <VALUE>second_server@suse.de</VALUE> </listentry> <listentry> <KEY>_SECTION</KEY> <SECTIONNAME>Directory</SECTIONNAME> <SECTIONPARAM>/srv/www/htdocs</SECTIONPARAM> <VALUE config:type="list"> <listentry> <KEY>AllowOverride</KEY> <VALUE>None</VALUE> </listentry> <listentry> <KEY>Require</KEY> <VALUE>all granted</VALUE> </listentry> </VALUE> </listentry> </VALUE> </hosts_entry> </hosts> <modules config:type="list"> <module_entry> <change>enable</change> <name>socache_shmcb</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>reqtimeout</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>authn_core</name> <userdefined config:type="boolean">true</userdefined> </module_entry> <module_entry> <change>enable</change> <name>authz_core</name> <userdefined config:type="boolean">true</userdefined> </module_entry> </modules> <service config:type="boolean">true</service> <version>2.9</version> </http-server>
列表名称 |
列表元素 |
说明 |
---|---|---|
Listen |
主机 | |
PORT |
端口地址 | |
ADDRESS |
网络地址。如果此项为空,将采用所有地址。 | |
hosts |
主机配置列表 | |
KEY |
主机名; | |
VALUE |
用于描述主机的不同值的列表。 | |
modules |
模块列表。只需描述用户定义的模块。 | |
name |
模块名称 | |
userdefined |
出于历史原因,此项始终设置为 | |
change |
出于历史原因,此项始终设置为 |
元素 |
说明 |
注释 |
---|---|---|
version |
使用的 Apache 服务器版本 |
仅供参考。默认值 2.9 |
service |
启用 Apache 服务 |
可选。默认值:false |
要正常运行 Apache 服务器,请确保正确配置了防火墙。
4.23 Squid 服务器 #
Squid 是一个缓存和转发 Web 代理。
<squid> <acls config:type="list"> <listentry> <name>QUERY</name> <options config:type="list"> <option>cgi-bin \?</option> </options> <type>urlpath_regex</type> </listentry> <listentry> <name>apache</name> <options config:type="list"> <option>Server</option> <option>^Apache</option> </options> <type>rep_header</type> </listentry> <listentry> <name>all</name> <options config:type="list"> <option>0.0.0.0/0.0.0.0</option> </options> <type>src</type> </listentry> <listentry> <name>manager</name> <options config:type="list"> <option>cache_object</option> </options> <type>proto</type> </listentry> <listentry> <name>localhost</name> <options config:type="list"> <option>127.0.0.1/255.255.255.255</option> </options> <type>src</type> </listentry> <listentry> <name>to_localhost</name> <options config:type="list"> <option>127.0.0.0/8</option> </options> <type>dst</type> </listentry> <listentry> <name>SSL_ports</name> <options config:type="list"> <option>443</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>80</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>21</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>443</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>70</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>210</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>1025-65535</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>280</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>488</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>591</option> </options> <type>port</type> </listentry> <listentry> <name>Safe_ports</name> <options config:type="list"> <option>777</option> </options> <type>port</type> </listentry> <listentry> <name>CONNECT</name> <options config:type="list"> <option>CONNECT</option> </options> <type>method</type> </listentry> </acls> <http_accesses config:type="list"> <listentry> <acl config:type="list"> <listentry>manager</listentry> <listentry>localhost</listentry> </acl> <allow config:type="boolean">true</allow> </listentry> <listentry> <acl config:type="list"> <listentry>manager</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>!Safe_ports</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>CONNECT</listentry> <listentry>!SSL_ports</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> <listentry> <acl config:type="list"> <listentry>localhost</listentry> </acl> <allow config:type="boolean">true</allow> </listentry> <listentry> <acl config:type="list"> <listentry>all</listentry> </acl> <allow config:type="boolean">false</allow> </listentry> </http_accesses> <http_ports config:type="list"> <listentry> <host/> <port>3128</port> <transparent config:type="boolean">false</transparent> </listentry> </http_ports> <refresh_patterns config:type="list"> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>10080</max> <min>1440</min> <percent>20</percent> <regexp>^ftp:</regexp> </listentry> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>1440</max> <min>1440</min> <percent>0</percent> <regexp>^gopher:</regexp> </listentry> <listentry> <case_sensitive config:type="boolean">true</case_sensitive> <max>4320</max> <min>0</min> <percent>20</percent> <regexp>.</regexp> </listentry> </refresh_patterns> <service_enabled_on_startup config:type="boolean">true</service_enabled_on_startup> <settings> <access_log config:type="list"> <listentry>/var/log/squid/access.log</listentry> </access_log> <cache_dir config:type="list"> <listentry>ufs</listentry> <listentry>/var/cache/squid</listentry> <listentry>100</listentry> <listentry>16</listentry> <listentry>256</listentry> </cache_dir> <cache_log config:type="list"> <listentry>/var/log/squid/cache.log</listentry> </cache_log> <cache_mem config:type="list"> <listentry>8</listentry> <listentry>MB</listentry> </cache_mem> <cache_mgr config:type="list"> <listentry>webmaster</listentry> </cache_mgr> <cache_replacement_policy config:type="list"> <listentry>lru</listentry> </cache_replacement_policy> <cache_store_log config:type="list"> <listentry>/var/log/squid/store.log</listentry> </cache_store_log> <cache_swap_high config:type="list"> <listentry>95</listentry> </cache_swap_high> <cache_swap_low config:type="list"> <listentry>90</listentry> </cache_swap_low> <client_lifetime config:type="list"> <listentry>1</listentry> <listentry>days</listentry> </client_lifetime> <connect_timeout config:type="list"> <listentry>2</listentry> <listentry>minutes</listentry> </connect_timeout> <emulate_httpd_log config:type="list"> <listentry>off</listentry> </emulate_httpd_log> <error_directory config:type="list"> <listentry/> </error_directory> <ftp_passive config:type="list"> <listentry>on</listentry> </ftp_passive> <maximum_object_size config:type="list"> <listentry>4096</listentry> <listentry>KB</listentry> </maximum_object_size> <memory_replacement_policy config:type="list"> <listentry>lru</listentry> </memory_replacement_policy> <minimum_object_size config:type="list"> <listentry>0</listentry> <listentry>KB</listentry> </minimum_object_size> </settings> </squid>
属性 |
值 |
说明 |
---|---|---|
|
访问控制列表 (ACL) 设置。 |
每个列表项包含名称、类型和其他选项。使用 YaST Squid 配置模块可以获取可能项的概述。 |
|
在访问控制表中,可以拒绝或允许 ACL 组的访问。 |
如果一个定义中包含更多 ACL 组,则会同时允许或拒绝属于所有 ACL 组成员的访问。 将按此处的列出顺序检查访问控制表。使用第一个匹配项。 |
|
定义 Squid 将用来侦听客户端 HTTP 请求的所有端口。 |
|
|
刷新模式定义 Squid 如何处理缓存中的对象。 |
将按此处的列出顺序检查刷新模式。使用第一个匹配项。
|
|
具有默认值的所有可用常规参数的映射。 |
使用 YaST Squid 配置模块可以获取有关可能项的概述。 |
|
引导时启动 Squid 服务。 |
值:true/false |
4.24 FTP 服务器 #
配置 FTP 因特网服务器设置
<ftp-server> <AnonAuthen>2</AnonAuthen> <AnonCreatDirs>NO</AnonCreatDirs> <AnonMaxRate>0</AnonMaxRate> <AnonReadOnly>NO</AnonReadOnly> <AntiWarez>YES</AntiWarez> <Banner>Welcome message</Banner> <CertFile/> <ChrootEnable>NO</ChrootEnable> <EnableUpload>YES</EnableUpload> <FTPUser>ftp</FTPUser> <FtpDirAnon>/srv/ftp</FtpDirAnon> <FtpDirLocal/> <GuestUser/> <LocalMaxRate>0</LocalMaxRate> <MaxClientsNumber>10</MaxClientsNumber> <MaxClientsPerIP>3</MaxClientsPerIP> <MaxIdleTime>15</MaxIdleTime> <PasMaxPort>40500</PasMaxPort> <PasMinPort>40000</PasMinPort> <PassiveMode>YES</PassiveMode> <SSL>0</SSL> <SSLEnable>NO</SSLEnable> <SSLv2>NO</SSLv2> <SSLv3>NO</SSLv3> <StartDaemon>2</StartDaemon> <TLS>YES</TLS> <Umask/> <UmaskAnon/> <UmaskLocal/> <VerboseLogging>NO</VerboseLogging> <VirtualUser>NO</VirtualUser> </ftp-server>
元素 |
说明 |
注释 |
---|---|---|
|
启用/禁用匿名用户和本地用户。 |
仅经身份验证的用户:1;仅匿名:0;两者:2 |
|
匿名用户可以创建目录。 |
值:YES/NO |
|
匿名用户可以上载。 |
值:YES/NO |
|
允许匿名客户端使用的最大数据传输速率。 |
KB/秒 |
|
禁止下载已上载但未经本地管理员验证的文件。 |
值:YES/NO |
|
指定包含当某人连接到服务器时所显示文本的文件名。 | |
|
用于 SSL 加密连接的 DSA 证书 |
此选项指定用于 SSL 加密连接的 DSA 证书的位置。 |
|
如果启用,则本地用户登录后,默认会将他们放置到其主目录中的 |
警告:此选项会影响安全性。值:YES/NO |
|
如果启用,则 FTP 用户可以上载。 |
要允许匿名用户上载,请启用 |
|
定义匿名 FTP 用户。 | |
|
匿名用户的 FTP 目录。 |
指定匿名 FTP 用户使用的目录。 |
|
经身份验证的用户的 FTP 目录。 |
指定经过身份验证的 FTP 用户使用的目录。 |
|
指定允许经身份验证的本地用户使用的最大数据传输速率。 |
KB/秒 |
|
允许连接的最大客户端数。 | |
|
定义一个 IP 的最大客户端数。 |
此元素用于限制允许从单个源因特网地址连接的客户端数。 |
|
两个 FTP 命令之间远程客户端的最大等待时间(超时)。 |
分钟 |
|
用于被动连接答复的端口范围最大值。 |
|
|
用于被动连接答复的端口范围最小值。 |
|
|
启用被动模式 |
值:YES/NO |
|
安全性设置 |
禁用 SSL/TLS:0;接受 SSL 和 TLS:1;拒绝非 SSL/TLS 连接:2 |
|
如果启用,则允许 SSL 连接。 |
值:YES/NO |
|
如果启用,则允许 SSL 版本 2 连接。 |
值:YES/NO |
|
如果启用,则允许 SSL 版本 3 连接。 |
值:YES/NO |
|
如何启动 FTP 守护程序。 |
手动:0;引导时:1;通过 |
|
如果启用,则允许 TLS 连接。 |
值:YES/NO |
|
文件创建掩码,采用“(文件的 umask):(目录的 umask)”格式。 |
例如,如果您存有怀疑,请将其设置为 |
|
为匿名用户设置的文件创建 umask 的值。 |
要指定八进制值,请记得添加“0”前缀,否则会将该值视为十进制整数。 |
|
经身份验证的用户的 Umask。 |
要指定八进制值,请记得添加“0”前缀,否则会将该值视为十进制整数。 |
|
如果启用,则记录所有 FTP 请求和响应。 |
值:YES/NO |
|
使用虚拟用户可以在不影响系统帐户的情况下管理 FTP 帐户。 |
值:YES/NO |
需要指定正确的防火墙设置才能让 FTP 服务器正常运行。
4.25 TFTP 服务器 #
配置 TFTP 因特网服务器设置。
使用此选项可为服务器启用 TFTP(普通文件传送协议)。将使用 systemd
套接字启动该服务器。
注意:TFTP 和 FTP 不同。
<tftp-server> <start_tftpd config:type="boolean">true</start_tftpd> <tftp_directory>/tftpboot</tftp_directory> </tftp-server>
元素 |
说明 |
注释 |
---|---|---|
start_tftpd |
启用 TFTP 服务器服务。 |
值:true/false |
tftp_directory |
引导映像目录:指定所处理文件所在的目录。 |
值一般为 /tftpboot。如果不存在,将创建该目录。服务器使用该目录作为其根目录(使用 -s 选项)。 |
4.26 首次引导工作流程 #
在完成安装后运行的 YaST 首次引导实用程序(YaST 初始系统配置)可让您配置全新安装的系统。在安装后首次进行引导时,该实用程序会指导用户完成一系列步骤,让他们能够更轻松地配置系统。YaST 首次引导默认不会运行,需要经过配置后才会运行。
<firstboot> <firstboot_enabled config:type="boolean">true</firstboot_enabled> </firstboot>
4.27 安全性设置 #
使用此模块的功能可以更改目标系统上的本地安全性设置。本地安全性设置包括引导配置、登录设置、口令设置、用户添加设置和文件权限。
安全性设置自动配置类似于在运行中的系统上可用的安全性模块中的自定义设置
。此功能允许您创建自定义的配置。
有关以下示例中的设置的含义和可能值,请参见参考信息。
<security> <console_shutdown>ignore</console_shutdown> <displaymanager_remote_access>no</displaymanager_remote_access> <fail_delay>3</fail_delay> <faillog_enab>yes</faillog_enab> <gid_max>60000</gid_max> <gid_min>101</gid_min> <gdm_shutdown>root</gdm_shutdown> <lastlog_enab>yes</lastlog_enab> <encryption>md5</encryption> <obscure_checks_enab>no</obscure_checks_enab> <pass_max_days>99999</pass_max_days> <pass_max_len>8</pass_max_len> <pass_min_days>1</pass_min_days> <pass_min_len>6</pass_min_len> <pass_warn_age>14</pass_warn_age> <passwd_use_cracklib>yes</passwd_use_cracklib> <permission_security>secure</permission_security> <run_updatedb_as>nobody</run_updatedb_as> <uid_max>60000</uid_max> <uid_min>500</uid_min> </security>
4.27.1 口令设置选项 #
更改各项口令设置。这些设置主要储存在 /etc/login.defs
文件中。
使用此资源可激活当前支持的加密方法之一。如果未设置,将配置 DES
。
Linux 默认方法 DES
适用于所有网络环境,但是存在八个字符的口令长度限制。MD5
允许更长的口令,因此可提供更高的安全性,但某些网络协议不支持此方法,并且在 NIS 中使用时可能会出现问题。还支持 Blowfish
。
此外,还可将系统设置为检查口令合理性和长度等。
4.27.2 引导设置 #
使用安全性资源可以更改各项引导设置。
- 如何解释 Ctrl–Alt–Del?
当控制台端的某人按下 Ctrl–Alt–Del 组合键时,系统通常会重引导。有时需要忽略此事件,例如,当系统既是工作站又是服务器时。
- GDM 的关机行为
配置允许其从 GDM 关闭计算机的用户列表。
4.27.3 登录设置 #
更改各项登录设置。这些设置主要储存在 /etc/login.defs
文件中。
4.27.4 新用户设置(useradd
设置) #
设置允许的最小和最大用户和组 ID。
4.28 Linux 审计框架 (LAF) #
此模块允许配置审计守护程序以及为审计子系统添加规则。
<audit-laf> <auditd> <flush>INCREMENTAL</flush> <freq>20</freq> <log_file>/var/log/audit/audit.log</log_file> <log_format>RAW</log_format> <max_log_file>5</max_log_file> <max_log_file_action>ROTATE</max_log_file_action> <name_format>NONE</name_format> <num_logs>4</num_logs> </auditd> <rules/> </audit-laf>
属性 |
值 |
说明 |
---|---|---|
|
描述如何将数据写入磁盘。 |
如果设置为 |
|
此参数告知要在写入多少条记录后向磁盘发出显式刷新命令。 |
参数 |
|
日志文件的完整路径名。 | |
|
需要记录多少信息。 |
设置为 |
|
需要记录多少信息。 |
单位:MB |
|
日志文件数。 |
|
|
达到日志容量时所执行的操作。 |
如果操作设置为 |
|
“计算机名称格式”描述如何将计算机名称写入日志文件。 |
如果设置 |
|
auditctl 的规则 |
您可以手动编辑规则,但我们仅建议由高级用户执行这种操作。有关所有选项的详细信息,请参见 |
4.29 用户和组 #
4.29.1 用户 #
可以在 <users>
部分定义用户列表。要能成功登录,请确保已设置 root
用户,或者已将 rootpassword
指定为 linuxrc
选项。
<users config:type="list"> <user> <username>root</username> <user_password>password</user_password> <encrypted config:type="boolean">false</encrypted> </user> <user> <username>tux</username> <user_password>password</user_password> <encrypted config:type="boolean">false</encrypted> </user> </users>
以下示例演示了一种更复杂的方案。将应用 /etc/default/useradd
中的系统范围默认设置,例如外壳,或主目录的父目录。
<users config:type="list"> <user> <username>root</username> <user_password>password</user_password> <uid>1001</uid> <gid>100</gid> <encrypted config:type="boolean">false</encrypted> <fullname>Root User</fullname> <authorized_keys config:type="list"> <listentry>command="/opt/login.sh" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKLt1vnW2vTJpBp3VK91rFsBvpY97NljsVLdgUrlPbZ/L51FerQQ+djQ/ivDASQjO+567nMGqfYGFA/De1EGMMEoeShza67qjNi14L1HBGgVojaNajMR/NI2d1kDyvsgRy7D7FT5UGGUNT0dlcSD3b85zwgHeYLidgcGIoKeRi7HpVDOOTyhwUv4sq3ubrPCWARgPeOLdVFa9clC8PTZdxSeKp4jpNjIHEyREPin2Un1luCIPWrOYyym7aRJEPopCEqBA9HvfwpbuwBI5F0uIWZgSQLfpwW86599fBo/PvMDa96DpxH1VlzJlAIHQsMkMHbsCazPNC0++Kp5ZVERiH root@example.net</listentry> </authorized_keys> </user> <user> <username>tux</username> <user_password>password</user_password> <uid>1002</uid> <gid>100</gid> <encrypted config:type="boolean">false</encrypted> <fullname>Plain User</fullname> <home>/Users/plain</home> <password_settings> <max>120</max> <inact>5</inact> </password_settings> </user> </users>
authorized_keys
文件
如果配置文件在 authorized_keys
部分为用户定义了一组 SSH 授权密钥,则会重写现有的 $HOME/.ssh/authorized_keys
文件。如果该文件不存在,将使用指定的内容创建该文件。不在 AutoYaST 控制文件中指定相应的部分即可避免重写现有的 authorized_keys
文件。
rootpassword
和 Root 用户选项
可以在 linuxrc
中指定 rootpassword
,并为 root
用户设置用户部分。如果此部分缺少口令,则会使用 linuxrc
中的口令。配置文件中的口令优先于 linuxrc
口令。
uid
)
Linux 系统上的每个用户都有一个数字用户 ID。您可以在 AutoYaST 控制文件中使用
uid
手动指定此类用户 ID,或者不使用 uid
而让系统自动选择一个用户 ID。
用户 ID 应在整个系统中唯一。否则,某些应用程序(例如登录管理器 gdm
)可能不再会如预期般工作。
通过 AutoYaST 控制文件添加用户时,强烈建议不要混合使用用户定义的 ID 和自动提供的 ID。否则无法保证 ID 唯一。为通过 AutoYaST 控制文件添加的所有用户指定 ID,或者让系统为所有用户选择 ID。
属性 |
值 |
说明 |
---|---|---|
|
文本 <username>lukesw</username> |
必要。应是有效的用户名。如果您不确定,请查看 |
|
文本 <fullname>Tux Torvalds</fullname> |
可选。用户的全名。 |
|
文本 <forname>Tux</forename> |
可选。用户的名字。 |
|
文本 <surname>Skywalker</surname> |
可选。用户的姓氏。 |
|
数字 <uid>1001</uid> |
可选。用户 ID。此 ID 应唯一,且必须是非负数。如果未指定,AutoYaST 将自动选择一个用户 ID。有关更多信息,另请参见注意:指定用户 ID ( |
|
数字 <gid>100</gid> |
可选。初始组 ID。此 ID 必须唯一且为非负数。此外,它必须引用现有的组。 |
|
路径 <home>/home/luke</home> |
可选。用户主目录的绝对路径。默认将使用 |
|
布尔 <home_btrfs_subvolume config:type="boolean">true</home_btrfs_subvolume> |
可选。在 Btrfs 子卷中生成主目录。默认已禁用。 |
|
路径 <shell>/usr/bin/zsh</shell> |
可选。 |
|
文本 <user_password>some-password</user_password> |
可选。如果您输入感叹号 ( |
|
布尔 <encrypted config:type="boolean">true</encrypted> |
可选。如果未指定,则视为 |
|
密码设置 <password_settings> <expire/> <max>60</max> <warn>7</warn> </password_settings> |
可选。可以自定义某些口令设置: |
|
授权密钥的列表 <authorized_keys config:type="list"> <listentry>ssh-rsa ...</listentry> </authorized_keys> |
要写入到 |
4.29.2 用户默认值 #
配置文件可为新用户指定一组默认值,例如口令失效日期、初始组、主目录前缀等。除了将这些设置用作配置文件中定义的用户的默认值以外,AutoYaST 还会将这些设置写入到 /etc/default/useradd
以供 useradd
读取。
属性 |
值 |
说明 |
---|---|---|
|
文本 <group>100</group> |
可选。默认的初始登录组。 |
|
文本 <groups>users</groups> |
可选。其他组的列表。 |
|
路径 <home>/home</home> |
可选。用户的主目录前缀。 |
|
日期 <expire>2017-12-31</expire> |
可选。默认的口令失效日期,采用 |
|
数字 <inactive>3</inactive> |
可选。在多少天后禁用已失效的帐户。 |
|
布尔 <no_groups config:type="boolean">true</no_groups> |
可选。不使用次要组。 |
|
路径 <shell>/usr/bin/fish</shell> |
默认登录外壳。 |
|
路径 <skel>/etc/skel</skel> |
可选。添加新用户时要用作主干的文件的位置。可在 |
|
文件创建模式掩码 <umask>022</umask> |
为主目录设置文件创建模式掩码。默认情况下, |
4.29.3 组 #
可按以下示例中所示,在 <groups>
中定义组列表。
<groups config:type="list"> <group> <gid>100</gid> <groupname>users</groupname> <userlist>bob,alice</userlist> </group> </groups>
属性 |
值 |
说明 |
---|---|---|
|
文本 <groupname>users</groupname> |
必要。应是有效的组名。如果您不确定,请查看 |
|
数字 <gid>100</gid> |
可选。组 ID。此 ID 必须唯一且为非负数。 |
|
文本 <group_password>password</group_password> |
可选。可以写入纯文本(不建议)或加密形式的组口令。请检查 |
|
布尔 <encrypted config:type="boolean">true</encrypted> |
可选。指示是否加密配置文件中的组口令。 |
|
用户列表 <userlist>bob,alice</userlist> |
可选。属于该组的用户列表。必须用逗号分隔用户名。 |
4.29.4 登录设置 #
可以通过 AutoYaST 配置文件启用两项特殊登录设置:自动登录和无口令登录。默认已禁用这两种登录方式。
<login_settings> <autologin_user>vagrant</autologin_user> <password_less_login config:type="boolean">true</password_less_login> </login_settings>
属性 |
值 |
说明 |
---|---|---|
|
布尔 <password_less_login config:type="boolean">true</password_less_login> |
可选。启用无口令登录。此设置仅影响图形登录。 |
|
文本 <autologin_user>alice</autologin_user> |
可选。为给定的用户启用自动登录。 |
4.30 自定义用户脚本 #
通过将脚本添加到自动安装过程,您可以根据自己的需求自定义安装,并实现对不同安装阶段的控制。
在自动安装过程中,可以在不同的时间点执行五种类型的脚本:
所有脚本需位于 <scripts> 部分。
pre-scripts
(初期,在任何其他操作尚未真正发生之前)postpartitioning-scripts
(在分区并装入到/mnt
之后,但在 RPM 安装之前)chroot-scripts
(在安装软件包之后,首次引导之前)post-scripts
(在首次引导已安装系统期间,未运行任何服务)init-scripts
(在首次引导已安装的系统期间,所有服务已启动并正在运行)
4.30.1 安装前脚本 #
在 YaST 对系统进行任何实际更改之前执行(进行分区和软件包安装之前,但在硬件检测之后)。
您可以使用安装前脚本来修改控制文件,并让 AutoYaST 重新读取控制文件。在 /tmp/profile/autoinst.xml
中找到您的控制文件。调整该文件,并将修改后的版本储存在 /tmp/profile/modified.xml
中。完成安装前脚本后,AutoYaST 将读取修改后的文件。
还可以修改安装前脚本中的储存设备。例如,您可以创建新的分区,或更改某些技术(例如多路径)的配置。执行所有安装前脚本后,AutoYaST 始终会再次检查储存设备。
安装前脚本于早期安装阶段执行。这意味着,如果您请求确认安装,则会先执行安装前脚本,然后再显示确认屏幕 (profile/install/general/mode/confirm
)。
要在安装前脚本中调用 zypper,需要设置环境变量 ZYPP_LOCKFILE_ROOT="/var/run/autoyast",以免与运行中的 YaST 进程冲突。
必须按如下所示放置安装前脚本元素:
<scripts> <pre-scripts config:type="list"> <script> ... </script> </pre-scripts> </scripts>
4.30.2 分区后脚本 #
在 YaST 已完成分区并已写入 /etc/fstab
之后执行。空系统已装入到 /mnt
。
必须按如下所示放置分区后脚本元素:
<scripts> <postpartitioning-scripts config:type="list"> <script> ... </script> </postpartitioning-scripts> </scripts>
4.30.3 Chroot 环境脚本 #
Chroot 脚本是在首次重引导计算机之前执行的。您可以在安装 chroot 进入已安装的系统并配置引导加载程序之前执行 chroot 脚本,也可以在 chroot 进入已安装的系统之后(请查看 chrooted
参数来确定该状态)执行脚本。
必须按如下所示放置 Chroot 环境脚本元素:
<scripts> <chroot-scripts config:type="list"> <script> ... </script> </chroot-scripts> </scripts>
4.30.4 安装后脚本 #
这些脚本是在 AutoYaST 已完成系统配置并已首次引导系统之后执行的。
必须按如下所示放置安装后脚本元素:
<scripts> <post-scripts config:type="list"> <script> ... </script> </post-scripts> </scripts>
4.30.5 Init 脚本 #
当 YaST 已完成,于已初始化网络之后的初始引导过程中会执行这些脚本。这些最终脚本是使用 /usr/lib/YaST2/bin/autoyast-initscripts.sh
执行的,并且只会执行一次。Init 脚本是使用标记 init-scripts 配置的。
以下元素必须位于 <scripts><init-scripts config:type="list"><script> ... </script></init-scripts>...</scripts> 标记之间
元素 |
说明 |
注释 |
---|---|---|
|
定义从中提取脚本的位置。该位置可与配置文件的位置相同(HTTP、FTP、NFS 等)。 <location >http://10.10.0.1/myInitScript.sh</location> |
必须定义 <location> 或 <source>。 |
|
脚本本身(源代码),封装在 CDATA 标记中。如果您不想将整个外壳脚本放入 XML 配置文件,请使用位置参数。 <source> <![CDATA[ echo "Testing the init script" > /tmp/init_out.txt ]]> </source> |
必须定义 <location> 或 <source>。 |
|
脚本的文件名。此文件将储存在 <filename>mynitScript5.sh</filename> |
如果您只有一个 init 脚本,则此元素是可选的。在这种情况下,将使用默认名称 ( |
|
正常情况下,一个脚本只运行一次,即使您使用 <rerun config:type="boolean">true</rerun> |
可选。默认值为 |
手动将脚本添加到控制文件时,需将脚本包含在 CDATA 元素中,以避免与文件语法以及控制文件中定义的其他标记产生混淆。
4.30.6 脚本 XML 表示形式 #
可针对上述所有脚本类型使用下面介绍的 XML 元素(chrooted
元素除外,它只能在 chroot 脚本中使用)。
元素 |
说明 |
注释 |
---|---|---|
|
定义从中提取脚本的位置。该位置可与控制文件的位置相同(HTTP、FTP、NFS 等)。 <location >http://10.10.0.1/myPreScript.sh</location> |
必须定义 |
|
脚本本身(源代码),封装在 CDATA 标记中。如果您不想将整个外壳脚本放入 XML 控制文件,请引用位置参数。 <source> <![CDATA[ echo "Testing the pre script" > /tmp/pre-script_out.txt ]]> </source> |
必须定义 |
|
指定必须为脚本使用的解释器。支持的选项为 <interpreter>perl</interpreter> |
可选;默认值为 |
|
脚本的文件名。此文件将储存在 <filename>myPreScript5.sh</filename> |
可选;默认值为脚本的类型(在本例中为 pre-scripts)。如果您有多个脚本,应该为每个脚本定义不同的名称。 |
|
如果此布尔值为 <feedback config:type="boolean">true</feedback> |
可选;默认值为 |
|
可以是 <feedback_type>warning</feedback_type> |
可选;如果未指定,将使用始终阻止弹出窗口。 |
|
如果此元素为 <debug config:type="boolean">true</debug> |
可选;默认值为 |
|
将会根据脚本在后台运行的时间长短在弹出窗口中显示此文本。 <notification>Please wait while script is running...</notification> |
可选;如果未配置,则不显示通知弹出窗口。 |
|
可以指定提供给所要调用的脚本的参数。您可以指定多个 <param-list config:type="list"> <param>par1</param> <param>par2 par3</param> <param>"par4.1 par4.2"</param> </param-list> |
可选;如果未配置,则不会将任何参数传递给脚本。 |
|
一个脚本只运行一次。即使您使用 <rerun config:type="boolean">true</rerun> |
可选;默认值为 |
|
在安装期间,新系统将装入到 <chrooted config:type="boolean" >true</chrooted> |
可选;默认值为 |
4.30.7 脚本示例 #
<?xml version="1.0"?> <!DOCTYPE profile> <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <scripts> <chroot-scripts config:type="list"> <script> <chrooted config:type="boolean">true</chrooted> <filename>chroot.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ #!/bin/sh echo "Testing chroot (chrooted) scripts" ls ]]> </source> </script> <script> <filename>chroot.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ #!/bin/sh echo "Testing chroot scripts" df cd /mnt ls ]]> </source> </script> </chroot-scripts> <post-scripts config:type="list"> <script> <filename>post.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ #!/bin/sh echo "Running Post-install script" systemctl start portmap mount -a 192.168.1.1:/local /mnt cp /mnt/test.sh /tmp umount /mnt ]]> </source> </script> <script> <filename>post.pl</filename> <interpreter>perl</interpreter> <source><![CDATA[ #!/usr/bin/perl print "Running Post-install script"; ]]> </source> </script> </post-scripts> <pre-scripts config:type="list"> <script> <interpreter>shell</interpreter> <location>http://192.168.1.1/profiles/scripts/prescripts.sh</location> </script> <script> <filename>pre.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ #!/bin/sh echo "Running pre-install script" ]]> </source> </script> </pre-scripts> <postpartitioning-scripts config:type="list"> <script> <filename>postpart.sh</filename> <interpreter>shell</interpreter> <debug config:type="boolean">false</debug> <feedback config:type="boolean">true</feedback> <source><![CDATA[ touch /mnt/testfile echo Hi ]]> </source> </script> </postpartitioning-scripts> </scripts> </profile>
完成安装后,可以在 /var/adm/autoinstall
目录中找到脚本和输出日志。脚本位于 scripts
子目录中,输出日志位于 log
目录中。
日志中包含使用以下命令执行外壳脚本时生成的输出:
/bin/sh -x SCRIPT_NAME 2&>/var/adm/autoinstall/logs/SCRIPT_NAME.log
4.31 系统变量 (Sysconfig) #
使用 sysconfig 资源可以直接在 sysconfig 储存库 (/etc/sysconfig
) 中定义配置变量。使用 sysconfig 变量可以完全按照您的需求微调许多系统组件和环境变量。
以下示例演示如何使用 sysconfig 资源设置变量。
<sysconfig config:type="list" > <sysconfig_entry> <sysconfig_key>XNTPD_INITIAL_NTPDATE</sysconfig_key> <sysconfig_path>/etc/sysconfig/xntp</sysconfig_path> <sysconfig_value>ntp.host.com</sysconfig_value> </sysconfig_entry> <sysconfig_entry> <sysconfig_key>HTTP_PROXY</sysconfig_key> <sysconfig_path>/etc/sysconfig/proxy</sysconfig_path> <sysconfig_value>proxy.host.com:3128</sysconfig_value> </sysconfig_entry> <sysconfig_entry> <sysconfig_key>FTP_PROXY</sysconfig_key> <sysconfig_path>/etc/sysconfig/proxy</sysconfig_path> <sysconfig_value>proxy.host.com:3128</sysconfig_value> </sysconfig_entry> </sysconfig>
可以提供相对路径和绝对路径。如果未指定绝对路径,则会将其视为 /etc/sysconfig
目录下的某个 sysconfig 文件。
4.32 添加完整配置 #
对于许多应用程序和服务,您可能都需要将配置文件复制到已安装系统上的相应位置。例如,如果您正在安装 Web 服务器,可能会有一个服务器配置文件 (httpd.conf
)。
使用此资源您可以通过指定已安装系统上的最终路径,将该文件嵌入控制文件中。YaST 会将此文件复制到指定的位置。
此功能需要安装 autoyast2 软件包。如果缺少该软件包,AutoYaST 会自动予以安装。
您可以指定要从中检索文件的 file_location
。此位置也可以是网络(例如 HTTP 服务器)上的某个位置:<file_location>http://my.server.site/issue</file_location>
。
您可以通过指定以斜线结尾的 file_path
来创建目录。
<files config:type="list"> <file> <file_path>/etc/apache2/httpd.conf</file_path> <file_contents> <![CDATA[ some content ]]> </file_contents> </file> <file> <file_path>/mydir/a/b/c/</file_path> <!-- create directory --> </file> </files>
下面演示了一个更高级的示例。此配置将使用 file_contents
中提供的内容创建一个文件,并更改该文件的权限和所有权。将文件复制到系统后,将执行一个脚本。此脚本可用于修改该文件,并使其准备好在客户端环境中使用。
<files config:type="list"> <file> <file_path>/etc/someconf.conf</file_path> <file_contents> <![CDATA[ some content ]]> </file_contents> <file_owner>tux.users</file_owner> <file_permissions>444</file_permissions> <file_script> <interpreter>shell</interpreter> <source> <![CDATA[ #!/bin/sh echo "Testing file scripts" >> /etc/someconf.conf df cd /mnt ls ]]> </source> </file_script> </file> </files>
4.33 安装期间请求用户提供值 #
在安装期间,您可以选择让用户决定控制文件特定部分的值。如果您使用此功能,则安装期间会显示一个弹出窗口请求用户输入控制文件特定部分。如果您想要进行全自动化安装,但应由用户设置本地帐户的口令,则您可以通过在控制文件中使用 ask
指令实现此目的。
下面列出的元素必须放在以下 XML 结构中:
<general> <ask-list config:type="list"> <ask> ... </ask> </ask-list> </general>
元素 |
说明 |
注释 |
---|---|---|
|
您要询问用户的问题。 <question>Enter the LDAP server</question> |
默认值是元素的路径(该路径通常看起来很奇怪,因此我们建议输入问题)。 |
|
为用户设置预先选择。将使用此值填充文本输入。将为复选框提供 true 或 false,在选项中会预先选择给定的值。 <default>dc=suse,dc=de</default> |
可选。 |
|
在问题左侧显示的可选帮助文本。 <help>Enter the LDAP server address.</help> |
可选。 |
|
在问题上方显示的可选标题。 <title>LDAP server</title> |
可选。 |
|
要更改的元素类型。可能的值为 <type>symbol</type> |
可选。默认值为 |
|
如果此布尔值设置为 <password config:type="boolean">true</password> |
可选。默认设置为 |
|
<pathlist config:type="list"> <path>networking,dns,hostname</path> <path>...</path> </pathlist> 要更改控制文件中第一个用户的口令,需将路径设置为 <users config:type="list"> <user> <username>root</username> <user_password>password to change</user_password> <encrypted config:type="boolean">false</encrypted> </user> <user> <username>tux</username> <user_password>password to change</user_password> <encrypted config:type="boolean">false</encrypted> </user> </users> |
此信息是可选的,但您至少应该提供 |
|
您可将问题的答案储存在文件中,以供稍后在某个脚本中使用。如果您在 <file>/tmp/answer_hostname</file> |
此信息是可选的,但您至少应该提供 |
stage |
Stage 用于配置弹出问题的安装阶段。您可将此值设置为 <stage>cont</stage> |
可选。默认值为 |
|
selection 元素包含 <selection config:type="list"> <entry> <value> btrfs </value> <label> Btrfs File System </label> </entry> <entry> <value> ext3 </value> <label> Extended3 File System </label> </entry> </selection> |
对于 |
|
您可以在每个对话框询问多个问题。为此,请使用整数指定 dialog-id。具有相同 dialog-id 的所有问题同属于一个对话框。对话框也按 ID 排序。 <dialog config:type="integer">3</dialog> |
可选。 |
|
您可以在每个对话框中包含多个问题。为此,需要使用整数指定 <element config:type="integer">1</element> |
可选(请参见 dialog)。 |
|
您可以增加对话框的默认宽度。如果每个对话框有多个宽度规范,则将使用最大的值。该数字大致相当于字符数。 <width config:type="integer">50</width> |
可选。 |
|
您可以增加对话框的默认高度。如果每个对话框有多个高度规范,则将使用最大的值。该数字大致相当于行数。 <height config:type="integer">15</height> |
可选。 |
|
您可以在每个对话框中包含多个问题。对话框中的每个问题都有一个框架,该框架可以具有框架标题(每个问题的小标题)。您可将多个元素放入一个框架中。这些元素需使用相同的框架标题。 <frametitle>User data</frametitle> |
可选;默认不使用框架标题。 |
|
您可以在回答问题后运行脚本。有关脚本的详细说明,请参见下表。 <script>...</script> |
可选;默认为无脚本。 |
|
您可以更改 按钮上的标签。以指定对话框标签的最后一个元素为准。<ok_label>Finish</ok_label> |
可选。 |
|
您可以更改 按钮上的标签。以指定对话框标签的最后一个元素为准。<back_label>change values</back_label> |
可选。 |
|
您可在此处指定一个用作超时(以秒为单位)的整数。如果用户在超时之前未回答问题,则会使用默认值回答。当用户触摸或更改对话框中的任一控件时,将关闭超时,并需要通过 来确认对话框中的操作。<timeout config:type="integer">30</timeout> |
可选;缺失值将被解释为 |
|
您可以运行脚本来设置问题的默认值(有关默认值脚本的详细说明,请参见第 4.33.1 节 “默认值脚本”)。如果您可以 <default_value_script>...</default_value_script> |
可选;默认为无脚本。 |
4.33.1 默认值脚本 #
您可以运行脚本来设置问题的默认值。如果您可以计算
默认值(特别是与 timeout
选项结合使用时),此功能将十分有用。
下面列出的元素必须放在以下 XML 结构中:
<general> <ask-list config:type="list"> <ask> <default_value_script> ... </default_value_script> </ask> </ask-list> </general>
元素 |
说明 |
注释 |
---|---|---|
|
脚本的源代码。 <source>...</source> |
必须指定此值,否则不会执行任何操作。 |
|
要使用的解释器。 <interpreter>perl</interpreter> |
默认值为 |
4.33.2 脚本 #
您可以在回答问题后运行脚本。
下面列出的元素必须放在以下 XML 结构中:
<general> <ask-list config:type="list"> <ask> <script> ... </script> </ask> </ask-list> </general>
元素 |
说明 |
注释 |
---|---|---|
|
脚本的文件名。 <filename>my_ask_script.sh</filename> |
默认值为 ask_script.sh |
|
脚本的源代码。与激活的 <source>...</source> |
必须指定此值,否则不会执行任何操作。 |
|
一个布尔值,用于将问题答案的值作为环境变量传递给脚本。该变量名为 <environment config:type="boolean">true</environment> |
可选。默认为 |
|
一个布尔值,用于打开脚本执行的反馈。STDOUT 将显示在弹出窗口中,执行脚本后,必须予以确认。 <feedback config:type="boolean">true</feedback> |
可选,默认值为 |
|
一个布尔值,用于打开脚本执行的调试。 <debug config:type="boolean">true</debug> |
可选,默认值为 |
|
一个布尔值,在脚本包含退出代码 0(零)之前,它会让对话框一直保持在打开状态。因此,您可以在脚本中分析并检查用户提供的答案,并使用 <rerun_on_error config:type="boolean">true</rerun_on_error> |
可选,默认值为 |
下面提供了 ask
功能的用法示例。
<general> <ask-list config:type="list"> <ask> <pathlist config:type="list"> <path>ldap,ldap_server</path> </pathlist> <stage>cont</stage> <help>Choose your server depending on your department</help> <selection config:type="list"> <entry> <value>ldap1.mydom.de</value> <label>LDAP for development</label> </entry> <entry> <value>ldap2.mydom.de</value> <label>LDAP for sales</label> </entry> </selection> <default>ldap2.mydom.de</default> <default_value_script> <source> <![CDATA[ echo -n "ldap1.mydom.de" ]]> </source> </default_value_script> </ask> <ask> <pathlist config:type="list"> <path>networking,dns,hostname</path> </pathlist> <question>Enter Hostname</question> <stage>initial</stage> <default>enter your hostname here</default> </ask> <ask> <pathlist config:type="list"> <path>partitioning,0,partitions,0,filesystem</path> </pathlist> <question>File System</question> <type>symbol</type> <selection config:type="list"> <entry> <value config:type="symbol">ext4</value> <label>default File System (recommended)</label> </entry> <entry> <value config:type="symbol">ext3</value> <label>Fallback File System</label> </entry> </selection> </ask> </ask-list> </general>
以下示例演示了如何在不同的 AutoYaST 控制文件之间进行选择。完成询问对话框后,AutoYaST 将再次读取 modified.xml
文件。这样,您便可以提取全新的控制文件。
<general> <ask-list config:type="list"> <ask> <selection config:type="list"> <entry> <value>part1.xml</value> <label>Simple partitioning</label> </entry> <entry> <value>part2.xml</value> <label>encrypted /tmp</label> </entry> <entry> <value>part3.xml</value> <label>LVM</label> </entry> </selection> <title>XML Profile</title> <question>Choose a profile</question> <stage>initial</stage> <default>part1.xml</default> <script> <filename>fetch.sh</filename> <environment config:type="boolean">true</environment> <source> <![CDATA[ wget http://10.10.0.162/$VAL -O /tmp/profile/modified.xml 2>/dev/null ]]> </source> <debug config:type="boolean">false</debug> <feedback config:type="boolean">false</feedback> </script> </ask>tion> </ask-list> </general>
您可以使用如下脚本校验问题的答案:
<general> <ask-list config:type="list"> <ask> <script> <filename>my.sh</filename> <rerun_on_error config:type="boolean">true</rerun_on_error> <environment config:type="boolean">true</environment> <source><![CDATA[ if [ "$VAL" = "myhost" ]; then echo "Illegal Hostname!"; exit 1; fi exit 0 ]]> </source> <debug config:type="boolean">false</debug> <feedback config:type="boolean">true</feedback> </script> <dialog config:type="integer">0</dialog> <element config:type="integer">0</element> <pathlist config:type="list"> <path>networking,dns,hostname</path> </pathlist> <question>Enter Hostname</question> <default>enter your hostname here</default> </ask> </ask-list> </general>
4.34 内核转储 #
此功能不适用于 IBM Z (s390x) 体系结构。
使用 Kdump 时,如果整个内核崩溃,系统可以创建崩溃转储文件。崩溃转储文件包含系统崩溃时的内存内容。日后,支持人员或(内核)开发人员可以分析此类核心文件,以找出系统崩溃的原因。Kdump 最适合用于您无法在其中轻松再现这种崩溃情况,但必须解决相应问题的服务器。
但是,Kdump 也有一个弊端。启用 Kdump 时需要为 Kdump 额外预留 64 MB 到 128 MB 的系统 RAM,以备在发生系统崩溃以及需要生成转储时使用。
本节仅介绍如何使用 AutoYaST 设置 Kdump,而涉及 Kdump 的工作原理。有关细节,请参见 kdump(7) 手册页。
以下示例演示了 Kdump 一般配置。
<kdump> <!-- memory reservation --> <add_crash_kernel config:type="boolean">true</add_crash_kernel> <crash_kernel>256M-:64M</crash_kernel> <general> <!-- dump target settings --> <KDUMP_SAVEDIR>ftp://stravinsky.suse.de/incoming/dumps</KDUMP_SAVEDIR> <KDUMP_COPY_KERNEL>true</KDUMP_COPY_KERNEL> <KDUMP_FREE_DISK_SIZE>64</KDUMP_FREE_DISK_SIZE> <KDUMP_KEEP_OLD_DUMPS>5</KDUMP_KEEP_OLD_DUMPS> <!-- filtering and compression --> <KDUMP_DUMPFORMAT>compressed</KDUMP_DUMPFORMAT> <KDUMP_DUMPLEVEL>1</KDUMP_DUMPLEVEL> <!-- notification --> <KDUMP_NOTIFICATION_TO>tux@example.com</KDUMP_NOTIFICATION_TO> <KDUMP_NOTIFICATION_CC>spam@example.com devnull@example.com</KDUMP_NOTIFICATION_CC> <KDUMP_SMTP_SERVER>mail.example.com</KDUMP_SMTP_SERVER> <KDUMP_SMTP_USER></KDUMP_SMTP_USER> <KDUMP_SMTP_PASSWORD></KDUMP_SMTP_PASSWORD> <!-- kdump kernel --> <KDUMP_KERNELVER></KDUMP_KERNELVER> <KDUMP_COMMANDLINE></KDUMP_COMMANDLINE> <KDUMP_COMMANDLINE_APPEND></KDUMP_COMMANDLINE_APPEND> <!-- expert settings --> <KDUMP_IMMEDIATE_REBOOT>yes</KDUMP_IMMEDIATE_REBOOT> <KDUMP_VERBOSE>15</KDUMP_VERBOSE> <KEXEC_OPTIONS></KEXEC_OPTIONS> </general> </kdump>
4.34.1 内存预留 #
第一步是在引导时为 Kdump 预留内存。由于必须在引导过程的早期预留内存,因此,配置是通过名为 crashkernel
的内核命令行参数完成的。预留的内存将用于装载第二个内核,如此当第一个内核崩溃时,不需要重引导便可执行第二个内核。这第二个内核具有特殊的 initrd,其中包含通过网络保存转储或将转储保存到磁盘、发送通知电子邮件以及最终重引导所需的全部程序。
要为 Kdump 预留内存,请指定 amount
(例如 64M
表示预留 RAM 中的 64 MB 内存)和 offset
。语法为 crashkernel=AMOUNT@OFFSET
。内核可以自动检测正确的偏移量(Xen 超级管理程序除外,在其中需要指定 16M
作为偏移量)。需要预留的内存量取决于体系结构和主内存。有关为 Kdump 预留的内存量的建议,请参见第 17.7.1 节 “Kdump 手动配置”。
您还可以使用扩展的命令行语法来根据系统 RAM 指定预留的内存量。如果您为多个安装共享一个 AutoYaST 控制文件,或者您经常在一台计算机上去除或安装内存,则这种做法很有用。语法是:
BEGIN_RANGE_1-END_RANGE_1:AMOUNT_1,BEGIN_RANGE_2-END_RANGE_2:AMOUNT_2@OFFSET
BEGIN_RANGE_1
是第一个内存范围的起始(例如:0M
),END_RANGE_1
是第一个内存范围的结束(应假定为 infinity
时可为空),依此类推。例如,256M-2G:64M,2G-:128M
会在系统具有 256 MB 到 2 GB RAM 时预留 64 MB crashkernel 内存,并在系统具有 2 GB 以上的 RAM 时预留 128 MB crashkernel 内存。
另一方面,可为 crashkernel
参数指定多个值。例如,如果您需要预留不同的低内存段和高内存段,可使用诸如 72M,low
和 256M,high
的值:
<kdump> <!-- memory reservation (high and low) --> <add_crash_kernel config:type="boolean">true</add_crash_kernel> <crash_kernel config:type="list"> <listentry>72M,low</listentry> <listentry>256M,high</listentry> </crash_kernel> </kdump>
下表说明了预留内存所需的设置:
元素 |
说明 |
注释 |
---|---|---|
|
如果应预留内存并已启用 Kdump,请设置为 <add_crash_kernel config:type="boolean">true</add_crash_kernel> |
必要 |
|
使用上述 crashkernel 命令行语法。 <crash_kernel>256M:64M</crash_kernel> 还支持值列表。 <crash_kernel config:type="list"> <listentry>72M,low</listentry> <listentry>256M,high</listentry> </crash_kernel> |
必要 |
4.34.2 转储保存 #
本节介绍崩溃转储的储存位置及储存方式。
4.34.2.1 目标 #
元素 KDUMP_SAVEDIR
指定要将转储保存到的 URL。可能的方法如下:
使用
file
可保存到本地磁盘;使用
ftp
可保存到 FTP 服务器(不加密);使用
sftp
可保存到 SSH2 SFTP 服务器;使用
nfs
可保存到 NFS 位置;使用
cifs
可将转储保存到 Samba 或 Microsoft Windows 中的 CIFS/SMP 导出。
有关细节,请参见 kdump(5) 手册页。两个示例:file:///var/crash
(符合 FHS 的默认位置)和 ftp://user:password@host:port/incoming/dumps
。将创建一个名称中包含时戳的子目录,并将转储保存到该子目录。
将转储保存到本地磁盘时,可以使用 KDUMP_KEEP_OLD_DUMPS
自动删除旧转储。请将此参数设置为应保留的旧转储数。如果目标分区最终的可用磁盘空间少于 KDUMP_FREE_DISK_SIZE
中指定的值,则不会保存转储。
要将整个内核和调试信息(如果已安装)保存到同一个目录,请将 KDUMP_COPY_KERNEL
设置为 true
。您将在一个目录中获得分析转储所需的全部信息(内核模块及其调试信息除外)。
4.34.2.2 过滤和压缩 #
内核转储未压缩且未过滤。其大小可能与您的系统 RAM 相当。要缩小文件,请在事后压缩转储文件。在打开转储之前需将其解压缩。
要使用页压缩(压缩每个页并允许使用 crash(8) 调试工具进行动态解压缩),请将 KDUMP_DUMPFORMAT
设置为 compressed
(默认值)。
您可能不想要保存所有内存页,例如,那些以零填充的页。要过滤转储,请设置 KDUMP_DUMPLEVEL
。0 会生成完整转储,31 为最小转储。手册页 kdump(5) 和 makedumpfile(8) 列出了每个值会保存哪些页。
4.34.2.3 摘要 #
元素 |
说明 |
注释 |
---|---|---|
|
一个 URL,指定要将转储和相关文件保存到的目标。 <KDUMP_SAVEDIR>file:///var/crash/</KDUMP_SAVEDIR> |
必要 |
|
如果不仅要将转储保存到 <KDUMP_COPY_KERNEL>false</KDUMP_COPY_KERNEL> |
可选 |
|
保存转储后必须保留的可用磁盘空间,以 MB 为单位。如果可用空间不足,将不保存转储。 <KDUMP_FREE_DISK_SIZE>64</KDUMP_FREE_DISK_SIZE> |
可选 |
|
当 <KDUMP_KEEP_OLD_DUMPS>4</KDUMP_KEEP_OLD_DUMPS> |
可选 |
4.34.3 电子邮件通知 #
配置发生计算机崩溃以及保存转储时要发出的电子邮件通知。
由于 Kdump 在 initrd 中运行,本地邮件服务器无法发送通知电子邮件。需要指定一台 SMTP 服务器(参见下文)。
您需要在 KDUMP_NOTIFICATION_TO
中提供一个确切地址。可以在 KDUMP_NOTIFICATION_CC
中指定更多地址。在这两种情况下只能使用电子邮件地址,而不能使用实名。
指定 KDUMP_SMTP_SERVER
以及(如果服务器需要身份验证)KDUMP_SMTP_USER
和 KDUMP_SMTP_PASSWORD
。我们不提供对 TLS/SSL 的支持,但将来可能会添加此项支持。
元素 |
说明 |
注释 |
---|---|---|
|
应将电子邮件发送到的一个确切电子邮件地址。可以在 <KDUMP_NOTIFICATION_TO >tux@example.com</KDUMP_NOTIFICATION_TO> |
可选(如果为空,则禁用通知) |
|
在通知电子邮件的抄送行中指定的零个、一个或多个收件人。 <KDUMP_NOTIFICATION_CC >wilber@example.com geeko@example.com</KDUMP_NOTIFICATION_CC> |
可选 |
|
用于递送邮件的 SMTP 服务器的主机名。支持 SMTP 身份验证(请参见 <KDUMP_SMTP_SERVER>email.suse.de</KDUMP_SMTP_SERVER> |
可选(如果为空,则禁用通知) |
|
与 <KDUMP_SMTP_USER>bwalle</KDUMP_SMTP_USER> |
可选 |
|
与 <KDUMP_SMTP_PASSWORD>geheim</KDUMP_SMTP_PASSWORD> |
可选 |
4.34.4 Kdump 内核设置 #
如前所述,会引导一个特殊内核来保存转储。如果您不想使用自动检测机制来找出使用的内核(请参见 kdump(5) 手册页,其中介绍了用于查找内核的算法),可以在 KDUMP_KERNELVER
中指定自定义内核的版本。如果您将它设置为 foo
,则会使用 /boot/vmlinuz-foo
或 /boot/vmlinux-foo
(在包含 vmlinuz
文件的平台上会遵循此顺序)中的内核。
您可以指定用于引导 Kdump 内核的命令行。通常会使用引导命令行,减少与 Kdump 不相关的设置(例如 crashkernel
参数),添加 Kdump 所需的一些设置(请参见手册页 kdump(5))。要指定其他参数,请使用 KDUMP_COMMANDLINE_APPEND
。如果您完全清除自己所执行的操作并想要指定整个命令行,请设置 KDUMP_COMMANDLINE
。
元素 |
说明 |
注释 |
---|---|---|
|
用于 Kdump 的内核的版本字符串。将其留空会使用自动检测机制(强烈建议)。 <KDUMP_KERNELVER >2.6.27-default</KDUMP_KERNELVER> |
可选(如果为空则使用自动检测) |
|
Kdump 内核的其他命令行参数。 <KDUMP_COMMANDLINE_APPEND >console=ttyS0,57600</KDUMP_COMMANDLINE_APPEND> |
可选 |
|
重写自动生成的 Kdump 命令行。须谨慎使用该功能。通常 <KDUMP_COMMANDLINE_APPEND >root=/dev/sda5 maxcpus=1 irqpoll</KDUMP_COMMANDLINE> |
可选 |
4.34.5 专家设置 #
元素 |
说明 |
注释 |
---|---|---|
|
如果在保存转储后应自动重引导系统,则为 <KDUMP_IMMEDIATE_REBOOT >true</KDUMP_IMMEDIATE_REBOOT> |
可选 |
|
用于指定 Kdump 过程详细程度的位掩码。有关细节,请阅读 kdump(5)。 <KDUMP_VERBOSE>3</KDUMP_VERBOSE> |
可选 |
|
装载 Kdump 内核时要传递给 kexec 的其他选项。通常为空。 <KEXEC_OPTIONS>--noio</KEXEC_OPTIONS> |
可选 |
4.35 DNS 服务器 #
可以通过添加 dns-server
资源来配置 Bind DNS 服务器。该资源的三个较直接属性可以使用值 1(启用属性)或 0(禁用属性)。
属性 |
值 |
说明 |
---|---|---|
|
0/1 |
必须将 DNS 服务器监禁在 chroot 中。 |
|
0/1 |
启用 Bind(系统启动时执行)。 |
|
0/1 |
在 LDAP 而不是本机配置文件中储存设置。 |
<dns-server> <chroot>0</chroot> <start_service>1</start_service> <use_ldap>0</use_ldap> </dns-server>
除了这些基本设置外,还可以使用三个类型列表属性来微调服务配置。
列表 |
说明 |
---|---|
|
DNS 服务器日志记录选项。 |
|
Bind 选项,例如要使用的文件和目录、转发器列表,以及其他配置设置。 |
|
服务器已知的 DNS 区域列表,包括所有设置、记录和 SOA 记录。 |
<dns-server> <logging config:type="list"> <listentry> <key>channel</key> <value>log_syslog { syslog; }</value> </listentry> </logging> <options config:type="list"> <option> <key>forwarders</key> <value>{ 10.10.0.1; }</value> </option> </options> <zones config:type="list"> <listentry> <is_new>1</is_new> <modified>1</modified> <options config:type="list"/> <records config:type="list"> <listentry> <key>mydom.uwe.</key> <type>MX</type> <value>0 mail.mydom.uwe.</value> </listentry> <listentry> <key>mydom.uwe.</key> <type>NS</type> <value>ns.mydom.uwe.</value> </listentry> </records> <soa> <expiry>1w</expiry> <mail>root.aaa.aaa.cc.</mail> <minimum>1d</minimum> <refresh>3h</refresh> <retry>1h</retry> <serial>2005082300</serial> <server>aaa.aaa.cc.</server> <zone>@</zone> </soa> <soa_modified>1</soa_modified> <ttl>2d</ttl> <type>master</type> <update_actions config:type="list"> <listentry> <key>mydom.uwe.</key> <operation>add</operation> <type>NS</type> <value>ns.mydom.uwe.</value> </listentry> </update_actions> <zone>mydom.uwe</zone> </listentry> </zones> </dns-server>
4.36 DHCP 服务器 #
使用 dhcp-server
资源可以通过以下六个属性来配置 DHCP 服务器的所有设置。
元素 |
值 |
说明 |
---|---|---|
|
0/1 |
值 1 表示必须将 DHCP 服务器监禁在 chroot 中。 |
|
0/1 |
将此元素设置为 1 会启用 DHCP 服务器(即,在系统启动时运行 DHCP 服务器)。 |
|
0/1 |
如果设置为 1,则会在 LDAP 而不是本机配置文件中储存设置。 |
|
文本 |
包含启动时要传递给 DHCP 服务器可执行文件的参数的字符串。例如,使用“-p 1234”可监听非标准 1234 端口。有关所有可能选项,请查阅 dhcpd 手册页。如果保留空白,将使用默认值。 |
|
列表 |
DHCP 服务器将在其中操作的网卡的列表。有关确切的格式,请参见以下示例。 |
|
列表 |
用于配置 DHCP 服务器行为的设置的列表。配置是在一个树形结构中定义的,根表示全局选项,其中嵌套子网和主机。 |
<dhcp-server> <allowed_interfaces config:type="list"> <allowed_interface>eth0</allowed_interface> </allowed_interfaces> <chroot>0</chroot> <other_options>-p 9000</other_options> <start_service>1</start_service> <use_ldap>0</use_ldap> <settings config:type="list"> <settings_entry> <children config:type="list"/> <directives config:type="list"> <listentry> <key>fixed-address</key> <type>directive</type> <value>192.168.0.10</value> </listentry> <listentry> <key>hardware</key> <type>directive</type> <value>ethernet d4:00:00:bf:00:00</value> </listentry> </directives> <id>static10</id> <options config:type="list"/> <parent_id>192.168.0.0 netmask 255.255.255.0</parent_id> <parent_type>subnet</parent_type> <type>host</type> </settings_entry> <settings_entry> <children config:type="list"> <child> <id>static10</id> <type>host</type> </child> </children> <directives config:type="list"> <listentry> <key>range</key> <type>directive</type> <value>dynamic-bootp 192.168.0.100 192.168.0.150</value> </listentry> <listentry> <key>default-lease-time</key> <type>directive</type> <value>14400</value> </listentry> <listentry> <key>max-lease-time</key> <type>directive</type> <value>86400</value> </listentry> </directives> <id>192.168.0.0 netmask 255.255.255.0</id> <options config:type="list"/> <parent_id/> <parent_type/> <type>subnet</type> </settings_entry> <settings_entry> <children config:type="list"> <child> <id>192.168.0.0 netmask 255.255.255.0</id> <type>subnet</type> </child> </children> <directives config:type="list"> <listentry> <key>ddns-update-style</key> <type>directive</type> <value>none</value> </listentry> <listentry> <key>default-lease-time</key> <type>directive</type> <value>14400</value> </listentry> </directives> <id/> <options config:type="list"/> <parent_id/> <parent_type/> <type/> </settings_entry> </settings> </dhcp-server>
4.37 防火墙配置 #
从 SUSE Linux Enterprise Server 15 GA 开始,SuSEfirewall2 已被 firewalld
取代。使用 SuSEfirewall2 属性的配置文件将被转换为 firewalld
配置文件。但是,并非所有配置文件属性都可转换。有关 firewalld
的细节,请参见第 19.4 节 “firewalld
”。
仅部分支持使用基于 SuSEFirewall2 的配置文件,因为许多选项在 firewalld
中无效,并且某些缺失的配置可能会影响网络安全性。
4.37.1 一般防火墙配置 #
在 firewalld
中,一般配置只会公开少量的属性,大部分配置都是按区域完成的。
属性 |
值 |
说明 |
---|---|---|
|
布尔 |
是否在应用配置后立即启动 |
|
布尔 |
是否在每次启动系统时启动 |
|
区域名 |
默认区域适用于未显式指派的任何设置。 |
|
要记录的丢包类型 |
启用记录所选类型的丢包。值: |
|
区域标识符 |
用于标识区域。如果区域未知,将创建一个新区域。 |
|
区域的简短摘要 |
简要概述区域的用途。对于已存在的区域,将忽略此属性。如果未指定,则使用名称。 |
|
区域的说明 |
描述区域的用途。对于已存在的区域,将忽略此属性。如果未指定,则使用名称。 |
|
默认操作 |
定义当没有匹配的规则时要在区域中执行的默认操作。可能的值为 |
4.37.2 防火墙区域配置 #
firewalld
的配置基于用于定义连接信任级别、接口或源地址的多个区域的存在性。可通过多种方式优化每个区域的行为,不过,并非所有属性都已公开。
属性 |
值 |
说明 |
---|---|---|
|
接口名称列表 |
指派到此区域的接口名称列表。接口或源只能属于一个区域。 |
|
服务列表 |
可在此区域中访问的服务列表。 |
|
端口列表 |
要在指派区域中打开的单个端口或端口范围的列表。 |
|
协议列表 |
要在指派区域中打开的或者可在其中访问的协议列表。 |
|
启用掩蔽 |
将在指派区域中启用或禁用网络地址转换 (NAT)。 |
4.37.3 完整示例 #
下面是 firewall 部分的完整示例,其中包括一般属性和区域特定属性。
<firewall> <enable_firewall>true</enable_firewall> <log_denied_packets>all</log_denied_packets> <default_zone>external</default_zone> <zones config:type="list"> <zone> <name>public</name> <interfaces config:type="list"> <interface>eth0</interface> </interfaces> <services config:type="list"> <service>ssh</service> <service>dhcp</service> <service>dhcpv6</service> <service>samba</service> <service>vnc-server</service> </services> <ports config:type="list"> <port>21/udp</port> <port>22/udp</port> <port>80/tcp</port> <port>443/tcp</port> <port>8080/tcp</port> </ports> </zone> <zone> <name>dmz</name> <interfaces config:type="list"> <interface>eth1</interface> </interfaces> </zone> </zones> </firewall>
4.38 其他硬件和系统组件 #
除了网络身份验证和安全性等核心组件配置外,AutoYaST 还提供多种硬件和系统配置选项,就如同手动安装以及交互式安装的任何系统上默认提供的选项一样。例如,您可以配置打印机、声音设备、电视卡,以及在 YaST 中具有相应模块的任何其他硬件组件。
添加到 YaST 的任何新配置选项将在 AutoYaST 中自动提供。
4.38.1 打印机 #
AutoYaST 对打印的支持仅限于用于定义如何在客户端上使用 CUPS 进行网络打印的基本设置。
AutoYaST 不支持设置本地打印队列。新式打印机通常是通过 USB 连接的。CUPS 通过类似于 usb://ACME/FunPrinter?serial=1a2b3c
的型号特定设备 URI 访问 USB 打印机。通常无法提前预测正确的 USB 设备 URI,因为此 URI 是在运行时由 CUPS 后端 usb
确定的。因此,无法使用 AutoYaST 设置本地打印队列。
有关如何在客户端工作站上使用 CUPS 通过网络进行打印的基础知识:
在客户端工作站应用程序中,将打印作业提交到 CUPS 守护程序进程 (cupsd
)。cupsd
会将打印作业转发到网络中的 CUPS 打印服务器,打印作业将在该服务器中进行处理。该服务器会将打印机特定的数据发送到打印机设备。
如果网络中只有一台 CPUS 打印服务器,则无需在每个客户端工作站上运行 CUPS 守护程序。更简单的做法是在 /etc/cups/client.conf
中指定 CUPS 服务器并直接访问该服务器(只能设置一个 CUPS 服务器项)。在这种情况下,客户端工作站上运行的应用程序会直接将打印作业提交到指定的 CUPS 打印服务器。
例 4.70 “打印机配置”演示了 printer
配置部分。cupsd_conf_content
项一字不差地包含了 cupsd
配置文件 /etc/cups/cupsd.conf
的整个内容。client_conf_content
项一字不差地包含了 /etc/cups/client.conf
的整个内容。printer
部分包含 cupsd
配置,但未指定是否应运行 cupsd。
<printer> <client_conf_content> <file_contents><![CDATA[ ... verbatim content of /etc/cups/client.conf ... ]]></file_contents> </client_conf_content> <cupsd_conf_content> <file_contents><![CDATA[ ... verbatim content of /etc/cups/cupsd.conf ... ]]></file_contents> </cupsd_conf_content> </printer>
/etc/cups/cups-files.conf
在版本 1.6 中,CUPS 配置文件已分为两个文件:cupsd.conf
和 cups-files.conf
。从 SUSE Linux Enterprise Server 15 SP2 开始,AutoYaST 仅支持修改 cupsd.conf
,因为 cups-files.conf
中的默认设置便足以满足一般的打印设置。
4.38.2 声音设备 #
下面演示了使用配置系统创建的声音配置示例。
<sound> <autoinstall config:type="boolean">true</autoinstall> <modules_conf config:type="list"> <module_conf> <alias>snd-card-0</alias> <model>M5451, ALI</model> <module>snd-ali5451</module> <options> <snd_enable>1</snd_enable> <snd_index>0</snd_index> <snd_pcm_channels>32</snd_pcm_channels> </options> </module_conf> </modules_conf> <volume_settings config:type="list"> <listentry> <Master config:type="integer">75</Master> </listentry> </volume_settings> </sound>
4.39 导入 SSH 密钥和配置 #
YaST 允许从先前的安装导入 SSH 密钥和服务器配置。还可以通过 AutoYaST 配置文件控制此功能的行为。
<ssh_import> <import config:type="boolean">true</import> <copy_config config:type="boolean">true</copy_config> <device>/dev/sda2</device> </ssh_import>
属性 |
值 |
说明 |
---|---|---|
|
true/false |
将导入 SSH 密钥。如果设置为 |
|
true/false |
同时还会导入 SSH 服务器配置。如果 |
|
分区 |
要从中导入密钥和配置的分区。如果未设置,则使用包含最近访问的密钥的分区。 |
4.40 配置管理 #
AutoYaST 允许将一部分配置委派给某个配置管理工具(例如 Salt)。AutoYaST 负责处理基本系统安装(分区、网络设置等),剩余的配置任务可委派给其他工具。
虽然本文档中提及了 Puppet,但只有 Salt 才受官方支持。不过,我们欢迎您报告在使用 Puppet 过程中发现的任何问题。
AutoYaST 支持两种不同的方法:
使用配置管理服务器。在这种情况下,AutoYaST 将设置一个配置管理工具。此工具会连接到主服务器以获取配置系统的指令。
从其他位置(例如 HTTP 服务器,或 USB 记忆棒等闪存盘)获取配置,并以独立模式运行配置管理工具。
4.40.1 连接到配置管理服务器 #
当配置管理服务器(Salt 中的主服务器,以及 Puppet jargon)已准备就绪时,此方法特别有用。在这种情况下,最困难的环节可能是设置适当的身份验证机制。
Salt 和 Puppet 都支持以下身份验证方法:
即时手动身份验证。当 AutoYaST 启动客户端时,会生成一个新的身份验证请求。管理员可在服务器上手动接受此请求。AutoYaST 将重试连接。如果同时已接受密钥,则 AutoYaST 会继续安装。
使用预置种子密钥。请参见所选配置管理系统的文档来了解如何生成此类密钥。使用
keys_url
选项告知 AutoYaST 要在何处查找密钥。
在以下配置示例中,AutoYaST 将启动客户端来生成身份验证请求。它最多尝试连接三次,两次尝试之间等待 15 秒。
<configuration_management> <type>salt</type> <master>my-salt-server.example.net</master> <auth_attempts config:type="integer">3</auth_attempts> <auth_time_out config:type="integer">15</auth_time_out> </configuration_management>
但是,在以下示例中,AutoYaST 将从闪存盘(例如 USB 记忆棒)检索密钥,并使用这些密钥连接到主服务器。
<configuration_management> <type>salt</type> <master>my-salt-server.example.net</master> <keys_url>usb:/</keys_url> </configuration_management>
下表汇总了这些方案支持的选项。
属性 |
值 |
说明 |
---|---|---|
|
字符串 |
配置管理名称。目前只有 |
|
字符串 |
配置管理服务器的主机名或 IP 地址。 |
|
整数 |
尝试连接服务器的最大次数。默认值为三次尝试。 |
|
整数 |
尝试连接服务器的间隔时间(以秒为单位)。默认值为 15 秒。 |
|
所用密钥的 URL |
包含文件 |
|
True/False |
安装后在客户端启用配置管理服务。默认值为 |
4.40.2 以独立模式运行 #
对于简单的方案,不必要部署配置管理服务器。可以改用独立(或无主服务器)模式的 Salt 或 Puppet。
由于没有服务器,AutoYaST 需要知道从何处获取配置。请将配置放入 TAR 存档并将其储存在任何位置(例如闪存盘、HTTP/HTTPS 服务器或 NFS/SMB 共享上)。
该 TAR 存档的布局必须与预期相同,即放在 Salt 服务器中的 /srv
下。这意味着,您需要将 Salt 状态放入 salt
目录,并将公式放入单独的 formulas
目录。
此外,还可以创建一个 pillar
目录用于包含 pillar 数据。或者,可以使用 pillar_url
选项在单独的 TAR 存档中提供这些数据。
<configuration_management> <type>salt</type> <states_url>my-salt-server.example.net</states_url> <pillar_url>my-salt-server.example.net</pillar_url> </configuration_management>
属性 |
值 |
说明 |
---|---|---|
|
字符串 |
配置管理名称。目前只有 |
|
URL |
Salt 状态 TAR 存档的位置。此存档可以包含公式和 pillar。文件必须位于 |
|
URL |
包含 pillar 的 TAR 存档的位置。 |
|
URL |
Puppet 模块的位置。 |
4.40.3 SUSE Manager Salt 公式支持 #
AutoYaST 在以独立模式运行时可以提供对 SUSE Manager Salt 公式的支持。如果在状态 TAR 存档中找到了公式,AutoYaST 会显示一个屏幕,让用户选择和配置所要应用的公式。
请记住,此功能会导致 AutoYaST 无法执行无人照管的安装,因为 AutoYaST 在此情况下会等待用户的输入。