在 IBM Z DASD 磁盘上使用原始磁盘映像部署 SLE Micro
- 解释
SLE Micro 提供可直接部署到设备存储区的原始映像(也称为预构建映像)。
- 原因
本文为您提供了在 IBM Z 计算机上部署 SLE Micro 的分步说明。
- 工作量
读完本文大约需要 20 分钟。
- 目标
在系统上成功部署 SLE Micro。
- 要求
运行 Linux 的磁盘。
将部署原始映像并运行 SLE Micro 的磁盘。
充当配置媒体的磁盘。
1 关于预构建映像 #
预构建映像代表正在运行的操作系统,随时可供使用。它们不是通过安装程序以传统方式安装的,而是会复制到目标主机的硬盘中。本主题将介绍有关这些预构建映像的基本信息。
在首次引导时,需使用预构建映像中提供的工具对其进行配置。引导加载程序会按照第 1.2 节 “首次引导检测”中所述检测首次引导。每个映像附带默认挂载的子卷,在首次引导配置期间,这些子卷可能会发生更改。有关子卷的细节,请参见第 1.1 节 “默认分区”。
1.1 默认分区 #
提供的预构建映像会使用默认的分区方案,在首次引导期间,可以使用 Ignition 或 Combustion 更改该方案。
如果您要对默认分区方案进行任何更改,根文件系统必须是 Btrfs。
每个映像都具有以下子卷:
/home /root /opt /srv /usr/local /var
/etc
目录会挂载为 OverlayFS,其中上一级目录挂载到 /var/lib/overlay/1/etc/
。
您可以通过 /etc/fstab
中的 x-initrd.mount
选项来识别默认挂载的子卷。其他子卷或分区必须通过 Ignition 或 Combustion 进行配置。
1.2 首次引导检测 #
部署配置只在首次引导时运行。为了区分首次引导和后续引导,完成首次引导后,系统会创建标志文件 /boot/writable/firstboot_happened
。如果文件系统中没有该文件,则会将 ignition.firstboot
属性传递给内核命令行,因而触发 Ignition 和 Combustion 的运行(在 initrd 中)。完成首次引导后,系统便会创建 /boot/writable/firstboot_happened
标志文件。
即使由于配置文件错误或缺失导致配置失败,系统也会创建 /boot/writable/firstboot_happened
标志文件。
1.2.1 在后续引导时强制重配置系统 #
如果您需要在发生首次引导后重配置系统,可以在后续引导时强制重配置。此处可以采取两种做法。
可以将
ignition.firstboot=1
属性传递给内核命令行。可以删除标志文件
/boot/writable/firstboot_happened
。
2 SLE Micro 部署 #
SLE Micro 的部署过程分为三个阶段。请勿跳过任何阶段,并按照以下顺序操作。
DASD 磁盘激活 - 在开始部署之前,需要确保要使用的所有磁盘都可用且已启用。有关细节,请参见第 3 节 “准备计算机”。
准备配置设备 - 要配置网络、添加用户和注册系统,请根据第 4 节 “准备配置磁盘”中提供的说明准备配置。
下载 SLE Micro 映像并将其部署到磁盘上。有关细节,请参见第 5 节 “在 DASD 磁盘上部署原始磁盘映像”。
3 准备计算机 #
在开始部署 SLE Micro 之前,您需要检查所需的三个 DASD 磁盘是否都已启用。要检查磁盘的状态,请运行以下命令:
#
lsdasd
Bus-ID Status Name Device Type BlkSz Size Blocks
================================================================================
0.0.0100 active dasda 94:0 ECKD 4096 30720MB 7864380
0.0.0101 active dasdc 94:8 ECKD 4096 20480MB 5243040
0.0.0102 active dasdb 94:4 ECKD 4096 5120MB 1310760
5 GB 磁盘将用作配置设备,20 GB 磁盘是将部署 SLE Micro 的磁盘。
如果在命令输出中看不到磁盘,则需要激活磁盘。为此,请执行如下操作:
运行
lszdev dasd
以显示完整的设备列表:#
lszdev dasd TYPE ID ON PERS NAMES dasd-eckd 0.0.0100 yes no dasda dasd-eckd 0.0.0101 no no dasd-eckd 0.0.0102 no no dasd-eckd 0.0.0190 no no dasd-eckd 0.0.019d no no dasd-eckd 0.0.019e no no dasd-eckd 0.0.0592 no no使用以下命令激活磁盘:
#
chzdev -eDISK_ID例如,要激活磁盘
0.0.0101
,请使用以下命令:#
chzdev -e 0.0.0101在
lsdasd
命令的输出中校验磁盘是否已启用。
4 准备配置磁盘 #
虚拟磁盘可能更适合生产部署,而物理磁盘更适合开发环境。
在安装过程中,可以传递复杂的配置来定义用户、目录或提供 SSH 密钥。为此,请创建用于存储完整配置的配置设备。以下示例过程介绍了如何创建此类设备:
识别 5 GB 磁盘:
#
lsdasd Bus-ID Status Name Device Type BlkSz Size Blocks ================================================================================ 0.0.0100 active dasda 94:0 ECKD 4096 30720MB 7864380 0.0.0101 active dasdc 94:8 ECKD 4096 20480MB 5243040 0.0.0102 active dasdb 94:4 ECKD 4096 5120MB 1310760在上面的输出中,要用作配置设备的磁盘的
Bus-ID
值为 0.0.0102。请使用Bus-ID
的值或磁盘大小来识别磁盘,因为设备名称 (/dev/dasdX
) 在系统每次重引导后都可能会发生变化。格式化磁盘。请记住,格式化操作会去除该磁盘上的所有数据。
#
dasdfmt -b 4096 -y -p /dev/dasdb创建分区:
#
parted /dev/dasdb mkpart ext2 0% 100%格式化分区:
#
mkfs.ext4 /dev/dasdb1将分区标记为
ignition
:#
e2label /dev/dasdb1 ignition校验文件系统:
#
blkid挂载分区:
#
mount /dev/dasdb1 /mnt准备 Ignition 和/或 Combustion 的目录结构。对于 Ignition,请使用以下命令:
#
mkdir -p /mnt/ignition对于 Combustion,请使用以下命令:
#
mkdir -p /mnt/combustion将您的公用 SSH 密钥复制到
/mnt/combustion
并重命名为ssh_key.pub
。按照后续说明准备配置。
4.1 使用 Combustion 配置 SLE Micro 部署 #
Combustion 是一种 dracut 模块,可用于在首次引导时配置系统。您可以使用 Combustion 来更改默认分区、设置用户口令、创建文件、安装软件包等。
4.1.1 Combustion 的工作原理 #
系统将在 ignition.firstboot
参数传递给内核命令行后调用 Combustion。Combustion 会读取提供的文件(名为 script
)并执行其中的命令,以对文件系统进行更改。如果 script
中包含网络标志,Combustion 会尝试配置网络。挂载 /sysroot
后,Combustion 会尝试激活 /etc/fstab
中的所有挂载点,然后调用 transactional-update
来应用其他更改,例如设置 root
口令或安装软件包。
配置文件 script
必须位于标记为 combustion
的配置媒体的 combustion
子目录中。目录结构必须如下所示:
<root directory> └── combustion └── script └── other files
Combustion 可与 Ignition 搭配使用。如果您要将它们搭配使用,请将配置媒体标记为 ignition
,并在目录结构中添加包含 config.ign
的 ignition
目录,如下所示:
<root directory> └── combustion └── script └── other files └── ignition └── config.ign
在此情况下,Ignition 会先于 Combustion 运行。
4.1.2 Combustion 配置示例 #
4.1.2.1 script
配置文件 #
script
配置文件是一组由 Combustion 在 transactional-update
外壳中分析并执行的命令。本文提供了 Combustion 执行的配置任务的一些示例。
script
文件由外壳解释,所以请务必在文件的第一行以解释器声明开头。例如,对于 Bash:
#!/bin/bash
为了登录系统,请至少包含 root
口令,但建议使用 SSH 密钥建立身份验证。如果您需要使用 root
口令,请务必配置安全口令。对于随机生成的口令,请至少包含 10 个字符。如果您要手动创建口令,请包含 10 个以上的字符,并结合使用大写与小写字母和数字。
4.1.2.1.1 网络配置 #
要在首次引导期间配置并使用网络连接,请在 script
中添加以下语句:
# combustion: network
使用此语句会将 rd.neednet=1
参数传递给 dracut。网络配置默认设为使用 DHCP。如果需要使用不同的网络配置,请按照第 4.1.2.1.2 节 “在 initramfs 中进行修改”中所述操作。
如果不使用该语句,将不会为系统配置任何网络连接。
4.1.2.1.2 在 initramfs 中进行修改 #
您可能需要对 initramfs 环境进行更改,例如,将 NetworkManager 的自定义网络配置写入 /etc/NetworkManager/system-connections/
中。要执行此操作,请使用 prepare
语句。
例如,要使用静态 IP 地址创建连接并配置 DNS,请执行以下操作:
#!/bin/bash # combustion: network prepare set -euxo pipefail nm_config() { umask 077 # Required for NM config mkdir -p /etc/NetworkManager/system-connections/ cat >/etc/NetworkManager/system-connections/static.nmconnection <<-EOF [connection] id=static type=ethernet autoconnect=true [ipv4] method=manual dns=192.168.100.1 address1=192.168.100.42/24,192.168.100.1 EOF } if [ "${1-}" = "--prepare" ]; then nm_config # Configure NM in the initrd exit 0 fi # Redirect output to the console exec > >(exec tee -a /dev/tty0) 2>&1 nm_config # Configure NM in the system curl example.com # Leave a marker echo "Configured with combustion" > /etc/issue.d/combustion
4.1.2.1.3 分区 #
提供的 SLE Micro 原始映像会使用第 1.1 节 “默认分区”中所述的默认分区方案。您可能希望使用不同的分区方式。下面一组示例代码段会将 /home
移至另一个分区。
以下脚本会执行快照中未包含的更改。如果脚本失败且快照被丢弃,那么某些更改将仍然可见且无法还原,例如对 /dev/vdb
设备的更改。
以下代码段会在 /dev/vdb
设备上创建仅含一个分区的 GPT 分区方案:
sfdisk /dev/vdb <<EOF label: gpt type=linux EOF partition=/dev/vdb1
该分区为 Btrfs 格式:
wipefs --all ${partition} mkfs.btrfs ${partition}
以下代码段会将 /home
中可能包含的内容移到新的 /home
文件夹位置:
mount /home mount ${partition} /mnt rsync -aAXP /home/ /mnt/ umount /home /mnt
下面的代码段会去除 /etc/fstab
中的旧项并创建新项:
awk -i inplace '$2 != "/home"' /etc/fstab echo "$(blkid -o export ${partition} | grep ^UUID=) /home btrfs defaults 0 0" >>/etc/fstab
4.1.2.1.4 创建新用户 #
由于某些服务(例如 Cockpit)要求使用非 root 用户身份登录,因此请在此处至少定义一个非特权用户。或者,您可以按第 6.2 节 “添加用户”中所述在正在运行的系统中创建此类用户。
要添加新用户帐户,请先创建一个代表用户口令的哈希字符串。使用 openssl passwd -6
命令。
获取口令哈希后,在 script
中添加以下几行内容:
mount /home useradd -m EXAMPLE_USER echo 'EXAMPLE_USER:PASSWORD_HASH' | chpasswd -e
4.1.2.1.5 设置 root
的口令 #
在设置 root
口令前,请先生成口令的哈希,例如,使用 openssl passwd
-6
来生成。要设置口令,请在 script
中添加以下几行内容:
echo 'root:PASSWORD_HASH' | chpasswd -e
4.1.2.1.6 添加 SSH 密钥 #
以下代码段会创建用于存储 root
的 SSH 密钥的目录,然后将位于配置设备上的公共 SSH 密钥复制到 authorized_keys
文件中。
mkdir -pm700 /root/.ssh/ cat id_rsa_new.pub >> /root/.ssh/authorized_keys
如果您需要通过 SSH 进行远程登录,则必须启用 SSH 服务。有关细节,请参见第 4.1.2.1.7 节 “启用服务”。
4.1.2.1.7 启用服务 #
要启用系统服务(例如 SSH 服务),请将下面一行添加到 script
中:
systemctl enable sshd.service
4.1.2.1.8 安装软件包 #
由于您可能需要额外订阅特定的软件包,因此可能需事先注册系统。此外,安装额外的软件包可能还需要有网络连接。
在首次引导配置期间,可以在系统上安装额外的软件包。例如,可以通过添加以下命令安装 vim
编辑器:
zypper --non-interactive install vim-small
请注意,在配置完毕并引导到配置的系统前,您将无法使用 zypper
。如果想要在稍后进行更改,则必须使用 transactional-update
命令创建已更改快照。
4.1.2.2 script
文件的完整示例 #
下面的 script
提供了完整的设置,可以作为如何编写自己的 Combustion 配置的指南。该示例不需要进一步配置 Ignition。
#!/bin/bash # combustion: network prepare set -euxo pipefail ## The OSA subchannels to enable ZNET_SUBCHANNELS=0.0.1000,0.0.1001,0.0.1002 ## Network information to configure IPADDRESS="10.144.64.155/24" ## Formet is ipaddress/cidr GATEWAY="10.144.64.254" NAMESERVERS="10.144.53.53;10.144.53.54" ## A semicolon-separated list of name servers ## Hostname information NODE_HOSTNAME="micro6" ## Add password for root user ## Use either 'openssl passwd -6' or 'mkpasswd --method=sha-512' to encrypt the password. ROOT_USER_PASSWORD='PASSWORD_HASH' SSH_ROOT_PUBLIC_KEY=ssh_key.pub ## Add a regular user, because root login may be disallowed in some services. CREATE_NORMAL_USER=user ## Replace the "user" with a desired username here. NORMAL_USER_PASSWORD='PASSWORD_HASH' SSH_USER_PUBLIC_KEY=ssh_key.pub ## Register to SUSE Customer Center and install additional packages REG_EMAIL='tux@suse.com' ## Email address for product registration SLMICRO_REGCODE='REGISTRATIONCODE' ## A registration code required to install additional packages ADDITIONAL_PACKAGES='' ## A space separated list of additional packages to install nm_config() { umask 077 # Required for Network Manager configuration mkdir -p /etc/NetworkManager/system-connections/ cat >'/etc/NetworkManager/system-connections/Wired connection 1.nmconnection' <<EOF [connection] id=static type=ethernet autoconnect=true [ipv4] method=manual address1=$IPADDRESS gateway=$GATEWAY dns=$NAMESERVERS EOF } if [ "${1-}" = "--prepare" ]; then # Configure Network Manager in the initrd nm_config # Enable OSA network devices chzdev qeth $ZNET_SUBCHANNELS -ep chzdev qeth $ZNET_SUBCHANNELS -e exit 0 fi ## Post output on stdout exec > >(exec tee -a /dev/ttyS0) 2>&1 ## Set hostname echo $NODE_HOSTNAME > /etc/hostname ## Set root password echo root:$ROOT_USER_PASSWORD | chpasswd -e ## Add ssh public key as authorized key for the root user mkdir -pm700 /root/.ssh/ cat $SSH_ROOT_PUBLIC_KEY >> /root/.ssh/authorized_keys ## Mount /var and /home so user can be created smoothly if [ "$CREATE_NORMAL_USER" ] then mount /var && mount /home fi ## User creation if [ "$CREATE_NORMAL_USER" ] then echo "User creation is requested, creating user." useradd -m $CREATE_NORMAL_USER -s /bin/bash -g users echo $CREATE_NORMAL_USER:$NORMAL_USER_PASSWORD | chpasswd -e echo $CREATE_NORMAL_USER "ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/adminusers mkdir -pm700 /home/$CREATE_NORMAL_USER/.ssh/ chown -R $CREATE_NORMAL_USER:users /home/$CREATE_NORMAL_USER/.ssh/ cat $SSH_USER_PUBLIC_KEY >> /home/$CREATE_NORMAL_USER/.ssh/authorized_keys echo "Requested user has been created, requested password has been set." else echo "No user will be created" fi # Configure NM in the system nm_config # Enable OSA network device chzdev qeth $ZNET_SUBCHANNELS -ep chzdev qeth $ZNET_SUBCHANNELS -e ## Enable services echo "Enabling services." systemctl enable cockpit.socket systemctl enable sshd ## Unmount var and home if [ "$CREATE_NORMAL_USER" ] then umount /var && umount /home fi echo "Configured with Combustion at $(date)" > /etc/issue.d/combustion
4.2.1 Ignition 的工作原理 #
首次引导系统时,Ignition 将作为 initramfs
的一部分加载,并在特定的目录中(在 USB 闪存盘上,或者您可以提供 URL)搜索配置文件。所有更改都是在内核从临时文件系统切换到实际根文件系统前(即在 switch_root
命令发出前)进行的。
Ignition 使用名为 config.ign
的 JSON 格式配置文件。您可以手动编写配置,也可以使用 https://ignite.opensuse.org 上的 Fuel Ignition Web 应用程序生成配置。
Fuel Ignition 尚未涵盖完整的 Ignition 词汇,生成的 JSON 文件可能需要进行额外的手动调整。
4.2.1.1
config.ign
#
配置文件 config.ign
必须位于配置媒体(例如,标签为 ignition
的 USB 记忆棒)的 ignition
子目录中。目录结构必须如下所示:
<root directory> └── ignition └── config.ign
要通过 Ignition 配置创建磁盘映像,可以使用 https://ignite.opensuse.org 上的 Fuel Ignition Web 应用程序。
config.ign
包含多种数据类型:对象、字符串、整数、布尔值和对象列表。如需完整规范,请参见 Ignition
specification v3.3.0。
version
属性是必需的,在 SLE Micro 中,其值必须设置为 3.3.0
或任何更低版本。否则,Ignition 将会失败。
要以 root
身份登录到系统,必须至少包含 root
的口令。但建议通过 SSH 密钥建立访问权限。要配置口令,请务必使用安全口令。如果您使用随机生成的口令,请至少包含 10 个字符。如果您要手动创建口令,请包含 10 个以上的字符,并结合使用大写与小写字母和数字。
4.2.2 Ignition 配置示例 #
4.2.2.1 配置示例 #
本部分提供内置 JSON 格式的 Ignition 配置的几个示例。
第 1.1 节 “默认分区”列出了在运行预构建的映像时默认挂载的子卷。如果您要在默认未挂载的子卷上添加新用户或修改任何文件,则需要先声明此类子卷,以便将其挂载。有关挂载文件系统的详细信息,请参见第 4.2.2.1.1.3 节 “filesystems
属性”。
version
属性为必要属性
每个 config.fcc
都必须包含版本 1.4.0 或更低版本,该版本随后会转换为相应的 Ignition 规范。
4.2.2.1.1 储存配置 #
storage
属性用于配置分区、RAID,定义文件系统,创建文件等。要定义分区,请使用 disks
属性。filesystems
属性用于格式化分区和定义特定分区的挂载点。files
属性可用于在文件系统中创建文件。后续章节中将介绍上述每个属性。
4.2.2.1.1.1 disks
属性 #
disks
属性是设备列表,可用于定义这些设备上的分区。disks
属性必须至少包含一个 device
,其他属性为可选属性。以下示例使用单个虚拟设备,并将磁盘划分为四个分区:
{ "ignition": { "version": "3.0.0" }, "storage": { "disks": [ { "device": "/dev/vda", "partitions": [ { "label": "root", "number": 1, "typeGuid": "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709" }, { "label": "boot", "number": 2, "typeGuid": "BC13C2FF-59E6-4262-A352-B275FD6F7172" }, { "label": "swap", "number": 3, "typeGuid": "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F" }, { "label": "home", "number": 4, "typeGuid": "933AC7E1-2EB4-4F13-B844-0E14E2AEF915" } ], "wipeTable": true } ] } }
4.2.2.1.1.2 raid
属性 #
raid
是 RAID 阵列列表。raid
的下列属性为必要属性:
- level
特定 RAID 阵列的级别(线性、raid0、raid1、raid2、raid3、raid4、raid5、raid6)
- devices
阵列中设备的列表,通过绝对路径引用这些设备
- name
将用于 md 设备的名称
例如:
{ "ignition": { "version": "3.0.0" }, "storage": { "raid": [ { "devices": [ "/dev/sda", "/dev/sdb" ], "level": "raid1", "name": "system" } ] } }
4.2.2.1.1.3 filesystems
属性 #
filesystems
必须包含以下属性:
- device
设备的绝对路径,如果是物理磁盘,通常为
/dev/sda
- format
文件系统格式(Btrfs、Ext4、xfs、vfat 或 swap)
注意对于 SLE Micro,
root
文件系统必须为 Btrfs 格式。
下面的示例演示如何使用 filesystems
属性。/opt
目录将挂载到 /dev/sda1
分区,该分区为 Btrfs 格式。系统将不会擦除该设备。
例如:
{ "ignition": { "version": "3.0.0" }, "storage": { "filesystems": [ { "device": "/dev/sda1", "format": "btrfs", "path": "/opt", "wipeFilesystem": false } ] } }
普通用户的主目录通常位于 /home/USER_NAME
目录中。由于 /home
默认不会挂载到 initrd 中,因此必须明确定义挂载,才能成功创建用户:
{ "ignition": { "version": "3.1.0" }, "passwd": { "users": [ { "name": "root", "passwordHash": "PASSWORD_HASH", "sshAuthorizedKeys": [ "ssh-rsa SSH_KEY_HASH" ] } ] }, "storage": { "filesystems": [ { "device": "/dev/sda3", "format": "btrfs", "mountOptions": [ "subvol=/@/home" ], "path": "/home", "wipeFilesystem": false } ] } }
4.2.2.1.1.4 files
属性 #
您可以使用 files
属性在计算机上创建任何文件。请注意,要在默认的分区方案之外创建文件,需使用 filesystems
属性定义目录。
在下面的示例中,将使用 files
属性创建一个主机名。将创建文件 /etc/hostname
,其中包含 sl-micro1 主机名:
请记住,JSON 接受十进制数格式的文件模式,例如 420
。
JSON:
{ "ignition": { "version": "3.0.0" }, "storage": { "files": [ { "overwrite": true, "path": "/etc/hostname", "contents": { "source": "data:,sl-micro1" }, "mode": 420 } ] } }
4.2.2.1.1.5 directories
属性 #
directories
属性是将在文件系统中创建的目录列表。directories
属性必须至少包含一个 path
属性。
例如:
{ "ignition": { "version": "3.0.0" }, "storage": { "directories": [ { "path": "/home/tux", "user": { "name": "tux" } } ] } }
4.2.2.1.2 用户管理 #
passwd
属性用于添加用户。由于某些服务(例如 Cockpit)要求使用非 root 用户身份登录,因此请在此处至少定义一个非特权用户。或者,您可以按第 6.2 节 “添加用户”中所述在正在运行的系统中创建此类用户。
要登录系统,请创建 root
和一个普通用户,并设置他们的口令。您需要对口令进行哈希处理,例如使用 openssl
命令来处理:
openssl passwd -6
该命令会为您选择的口令创建哈希。使用此哈希作为 password_hash
属性的值。
例如:
{ "ignition": { "version": "3.0.0" }, "passwd": { "users": [ { "name": "root", "passwordHash": "PASSWORD_HASH", "sshAuthorizedKeys": [ "ssh-rsa SSH_KEY_HASH USER@HOST" ] } ] } }
users
属性必须至少包含一个 name
属性。ssh_authorized_keys
是用户的 SSH 密钥列表。
4.2.2.1.3 启用 systemd
服务 #
您可以通过在 systemd
属性中指定 systemd
服务来启用相应服务。
例如:
{ "ignition": { "version": "3.0.0" }, "systemd": { "units": [ { "enabled": true, "name": "sshd.service" } ] } }
4.2.2.2 将 YAML 格式的文件转换为 JSON 格式 #
JSON 是一种用于存储结构化数据的通用文件格式,Ignition 等应用程序使用这种文件存储和检索其配置。由于 JSON 的语法复杂难懂,因此您可以使用更加直观易懂的 YAML 格式编写配置,然后将其转换为 JSON 格式。
4.2.2.2.1 将 YAML 文件转换为 JSON 格式 #
butane
工具可将 YAML 文件中特定于 Ignition 的词汇转换为 JSON 格式。它还会校验 YAML 文件的语法,捕获结构中可能存在的错误。若要使用最新版 butane
,请添加以下储存库:
>
sudo
zypper ar -f \ https://download.opensuse.org/repositories/devel:/kubic:/ignition/openSUSE_Tumbleweed/ \ devel_kubic_ignition
将 openSUSE_Tumbleweed
替换为以下其中一项(具体取决于您的发行套件):
'openSUSE_Leap_$releasever'
15.5
现在,您可以安装 butane
工具:
>
sudo
zypper ref && zypper in butane
安装完成后,可通过运行以下命令调用 butane
:
>
butane -p -o config.ign config.fcc
config.fcc
是 YAML 配置文件的路径。config.ign
是输出 JSON 配置文件的路径。-p
命令选项会在输出文件中添加换行符,使其更易于阅读。
5 在 DASD 磁盘上部署原始磁盘映像 #
要将 SLE Micro 部署到 20 GB DASD 磁盘,请按以下步骤操作:
使用
wget
或curl
下载原始磁盘映像。例如:>
curl -L0kO解压缩映像:
>
unpack xz -dBUILD_IDENTIFICATION.raw.xz导出一个用于查找并存储 20 GB 设备名称的变量。
#
export SMDASD=$(lsdasd -s | grep 20480MB | tr -s [:blank:] | cut -d' ' -f3)格式化磁盘:
如果磁盘是第一次格式化:
#
dasdfmt -b 4096 -y -p /dev/$SMDASD如果磁盘以前已格式化:
#
dasdfmt -b 4096 -M quick -y -p /dev/$SMDASD
将原始磁盘映像复制到磁盘(在本例中,设备名称为 /dev/dasdc):
dd if=IMAGE_NAME.raw status=progress of=/dev/dasdc bs=4k
关闭正在运行的 Linux:
#
init 0在 x3270 终端中引导第二个 DASD 迷你磁盘,以启动 SLE Micro:
#
ipl 101
6 部署后步骤 #
6.1 从 CLI 注册 SLE Micro #
如果在部署过程中未使用 Combustion script
注册您的系统,您可以从正在运行的系统注册。
要在 SUSE Customer Center 中注册 SLE Micro,请执行以下操作:
按如下方式运行
transactional-update register
:#
transactional-update register -rREGISTRATION_CODE -e EMAIL_ADDRESS要在本地注册服务器中注册,另请提供该服务器的 URL:
#
transactional-update register -rREGISTRATION_CODE -e EMAIL_ADDRESS \ --url "https://suse_register.example.com/"将 REGISTRATION_CODE 替换为随您的 SLE Micro 一起收到的注册码。将 EMAIL_ADDRESS 替换为与您或贵组织管理订阅时所用 SUSE 帐户关联的电子邮件地址。
重引导您的系统以切换到最新的快照。
SLE Micro 现已注册完毕。
如果所需的信息超出了本节的范畴,请使用 SUSEConnect --help
查看内嵌文档。
6.2 添加用户 #
由于 SLE Micro 要求使用非特权用户身份通过 SSH 登录系统或访问 Cockpit,因此您需要创建这样的帐户。
如果已在 Combustion 中定义了非特权用户,则可以不执行此步骤。
如下所示运行
useradd
命令:#
useradd -m USER_NAME
为该帐户设置口令:
#
passwdUSER_NAME根据需要将用户添加到
wheel
组:#
usermod -aG wheelUSER_NAME
7 法律声明 #
版权所有 © 2006–2024 SUSE LLC 和贡献者。保留所有权利。
根据 GNU 自由文档许可证 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可证附带不可变部分。许可版本 1.2 的副本包含在题为“GNU Free Documentation License”的部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。