在 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 13107605 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/combustion4.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/fstab4.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
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/combustion4.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,请添加以下储存库:
>sudozypper ar -f \ https://download.opensuse.org/repositories/devel:/kubic:/ignition/openSUSE_Tumbleweed/ \ devel_kubic_ignition
将 openSUSE_Tumbleweed 替换为以下其中一项(具体取决于您的发行套件):
'openSUSE_Leap_$releasever'15.5
现在,您可以安装 butane 工具:
>sudozypper ref && zypper in butane
安装完成后,可通过运行以下命令调用 butane:
> butane -p -o config.ign config.fccconfig.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–2025 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 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。