在虚拟机上使用原始磁盘映像部署 SUSE Linux Micro
- 内容
SUSE Linux Micro 提供可直接部署到虚拟机的原始映像(也称为预构建映像)。
- 原因
虚拟化部署可节省硬件资源。
- 工作量
读完本文大约需要 20 分钟。
- 目标
成功将 SUSE Linux Micro 部署到虚拟机。
- 要求
已安装且正在运行
libvirt和 KVM 虚拟化环境的 VM 主机服务器。至少 32 GB 的磁盘空间,用于部署映像。
(可选)一个配置媒体,例如 USB 闪存盘。
1 关于预构建映像 #
预构建映像代表正在运行的操作系统,随时可供使用。它们不是通过安装程序以传统方式安装的,而是会复制到目标主机的硬盘中。本主题将介绍有关这些预构建映像的基本信息。
在首次引导时,需使用预构建映像中提供的工具对其进行配置。引导加载程序会按照第 1.1 节 “首次引导检测”中所述检测首次引导。
1.1 首次引导检测 #
部署配置只在首次引导时运行。为了区分首次引导和后续引导,系统会在首次引导完成后创建文件 /etc/machine-id。如果文件系统中不存在该文件,系统会假定这是首次引导并触发配置过程。完成首次引导后,系统便会创建 /etc/machine-id 文件。
/etc/machine-id 文件
即使由于配置文件错误或缺失导致配置失败,系统也会创建 /etc/machine-id 文件。
1.1.1 在后续引导时强制重配置系统 #
如果您需要在发生首次引导后重配置系统,可以在后续引导时强制重配置。此处可以采取两种做法。
可以将
ignition.firstboot或combustion.firstboot属性传递给内核命令行。您可以删除文件
/etc/machine-id并重引导系统。
2 准备配置设备 #
默认情况下,SUSE Linux Micro 中仅允许使用 SSH 密钥进行 root SSH 登录。我们建议在部署过程中创建一个非特权用户用于访问已安装的系统。可以在首次引导时使用 Combustion 或 Ignition 工具创建非特权用户帐户。在系统部署期间创建的非特权用户还可用于访问 Cockpit Web 界面。
要准备配置设备,请执行以下步骤:
将磁盘格式化为 SUSE Linux Micro 支持的任何文件系统:Ext3、Ext4 等:
>sudo mkfs.ext4 /dev/sdY将设备标签设置为
ignition(使用 Ignition 或 时)或combustioncombustion(仅使用 Combustion 时)。如果需要(例如在 Windows 主机上),请为标签使用大写字母。要为设备设置标签,请运行:>sudo e2label /dev/sdY ignition可以使用您的虚拟化系统或硬件支持的任何类型的配置存储媒体:ISO 映像、USB 闪存盘等
挂载设备:
>sudo mount /dev/sdY /mnt创建第 2.1.1.1 节 “
config.ign”或第 2.2 节 “使用 Combustion 配置 SUSE Linux Micro 部署”中所述的目录结构,具体取决于使用的配置工具:>sudo mkdir /mnt/ignition/或:
>sudo mkdir -p /mnt/combustion/准备 Ignition 或 Combustion 所用配置的所有元素
2.1.1 Ignition 的工作原理 #
系统首次引导时,会将 Ignition 作为 initramfs 的一部分加以装载,并会在特定目录(在 USB 闪存盘上,或者您也可以提供 URL)中搜索配置文件。所有更改都是在内核从临时文件系统切换到实际根文件系统前(即在 switch_root 命令发出前)进行的。
Ignition 使用名为 config.ign 的 JSON 格式配置文件。您可以手动编写配置,也可以使用 https://ignite.opensuse.org 上的 Fuel Ignition Web 应用程序生成配置。
Fuel Ignition 尚未包含完整的 Ignition 词汇,因此可能需要手动对生成的 JSON 文件进行额外的调整。
2.1.1.1
config.ign
#
如果您要配置 QEMU/KVM 虚拟机,请以 qemu 命令的属性形式提供 config.ign 的路径。例如:
-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign
如果通过虚拟机管理器 (libvirt) 配置虚拟机,请在虚拟机 XML 定义中提供 config.ign 文件的路径,例如:
<domain ... >
<sysinfo type="fwcfg">
<entry name="opt/com.coreos/config" file="/location/to/config.ign"/>
</sysinfo>
</domain>
或者,如果使用 libvirt 配置虚拟机,可以将该路径作为 virt-install 命令的选项来提供:
--sysinfo type=fwcfg,entry0.name="opt/com.coreos/config",entry0.file="PATH_TO_config.ign>"
config.ign 包含多种数据类型:对象、字符串、整数、布尔值和对象列表。如需完整规范,请参见 Ignition
specification v3.3.0。
version 属性是必需的,在 SUSE Linux Micro 中,其值必须设置为 3.4.0 或任何更低版本。否则,Ignition 将会失败。
要以 root 身份登录到系统,必须至少包含 root 的口令。但建议通过 SSH 密钥建立访问权限。要配置口令,请务必使用安全口令。如果您使用随机生成的口令,请至少包含 10 个字符。如果您要手动创建口令,请包含 10 个以上的字符,并结合使用大写与小写字母和数字。
2.1.2 Ignition 配置示例 #
本节提供内置 JSON 格式的 Ignition 配置的几个示例。
version 属性为必要属性
每个 config.ign 都必须包含版本 3.4.0 或更低版本,该版本随后会转换为相应的 Ignition 规范。
2.1.2.1 默认分区 #
每个映像都具有以下子卷:
/home /root /opt /srv /usr/local /var
/etc 目录会挂载为 OverlayFS,其中上一级目录挂载到 /var/lib/overlay/1/etc/。
您可以通过 /etc/fstab 中的 x-initrd.mount 选项来识别默认挂载的子卷。其他子卷或分区必须通过 Ignition 或 Combustion 进行配置。
如果您要在默认未挂载的子卷上添加新用户或修改任何文件,则需要先声明此类子卷,以便将其挂载。
2.1.2.2 存储配置 #
storage 属性用于配置分区、RAID,定义文件系统,创建文件等。要定义分区,请使用 disks 属性。filesystems 属性用于格式化分区。files 属性可用于在文件系统中创建文件。后续章节中将介绍上述每个属性。
2.1.2.2.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
}
]
}
}2.1.2.2.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"
}
]
}
}2.1.2.2.3 filesystems 属性 #
filesystems 属性不会修改挂载单元。如果添加新分区或去除现有分区,必须手动调整挂载单元。
filesystems 必须包含以下属性:
- device
设备的绝对路径,如果是物理磁盘,通常为
/dev/sda- format
文件系统格式(Btrfs、Ext4、xfs、vfat 或 swap)
注意对于 SUSE Linux 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
}
]
}
}2.1.2.2.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
}
]
}
}2.1.2.2.5 directories 属性 #
directories 属性是将在文件系统中创建的目录列表。directories 属性必须至少包含一个 path 属性。
例如:
{
"ignition": {
"version": "3.0.0"
},
"storage": {
"directories": [
{
"path": "/home/tux",
"user": {
"name": "tux"
}
}
]
}
}2.1.2.3 用户管理 #
passwd 属性用于添加用户。由于某些服务(例如 Cockpit)要求使用非 root 用户身份登录,因此请在此处至少定义一个非特权用户。或者,您可以按第 5.3 节 “添加用户”中所述在正在运行的系统中创建此类用户。
要登录系统,请创建 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 密钥列表。
2.1.2.4 启用 systemd 服务 #
您可以通过在 systemd 属性中指定 systemd 服务来启用相应服务。
例如:
{
"ignition": {
"version": "3.0.0"
},
"systemd": {
"units": [
{
"enabled": true,
"name": "sshd.service"
}
]
}
}2.2 使用 Combustion 配置 SUSE Linux Micro 部署 #
Combustion 是一种 dracut 模块,可用于在首次引导时配置系统。您可以使用 Combustion 来更改默认分区、设置用户口令、创建文件、安装软件包等。
2.2.1 Combustion 的工作原理 #
系统将在 ignition.firstboot 参数传递给内核命令行后调用 Combustion。Combustion 会读取提供的文件(名为 script)并执行其中的命令,以对文件系统进行更改。如果 script 中包含网络标志,Combustion 会尝试配置网络。挂载 /sysroot 后,Combustion 会尝试激活 /etc/fstab 中的所有挂载点,然后调用 transactional-update 来应用其他更改,例如设置 root 口令或安装软件包。
如果您要配置 QEMU/KVM 虚拟机,请以 qemu 命令的属性形式提供 script 的路径。例如:
-fw_cfg name=opt/org.opensuse.combustion/script,file=PATH_TO_script
如果通过虚拟机管理器 (libvirt) 配置虚拟机,请在虚拟机 XML 定义中提供 script 文件的路径,例如:
<domain ... > <sysinfo type="fwcfg"> <entry name="opt/org.opensuse.combustion/script" file="/location/of/script"/> </sysinfo> </domain>
或者,如果使用 libvirt 配置虚拟机,可以将该路径作为 virt-install 命令的选项来提供:
--sysinfo type=fwcfg,entry0.name="opt/org.opensuse.combustion/script",entry0.file="PATH_TO_script>"
Combustion 可与 Ignition 搭配使用。如果您要将它们搭配使用,请将配置媒体标记为 ignition,并在目录结构中添加包含 config.ign 的 ignition 目录,如下所示:
<root directory>
└── combustion
└── script
└── other files
└── ignition
└── config.ign在此情况下,Ignition 会先于 Combustion 运行。
2.2.2 Combustion 配置示例 #
2.2.2.1 script 配置文件 #
script 配置文件是一组由 Combustion 在 transactional-update 外壳中分析并执行的命令。本文提供了 Combustion 执行的配置任务的一些示例。
要创建 Combustion 脚本,可以使用 Fuel Ignition Web 应用程序。您可以在其中选择适当的参数,应用程序即会生成一个可以下载的 Combustion 脚本。
script 文件由外壳解释,所以请务必在文件的第一行以解释器声明开头。例如,对于 Bash:
#!/bin/bash
为了登录系统,请至少包含 root 口令,但建议使用 SSH 密钥建立身份验证。如果您需要使用 root 口令,请务必配置安全口令。对于随机生成的口令,请至少包含 10 个字符。如果您要手动创建口令,请包含 10 个以上的字符,并结合使用大写与小写字母和数字。
2.2.2.1.1 默认分区 #
每个映像都具有以下子卷:
/home /root /opt /srv /usr/local /var
/etc 目录会挂载为 OverlayFS,其中上一级目录挂载到 /var/lib/overlay/1/etc/。
您可以通过 /etc/fstab 中的 x-initrd.mount 选项来识别默认挂载的子卷。其他子卷或分区必须通过 Ignition 或 Combustion 进行配置。
如果您要在默认未挂载的子卷上添加新用户或修改任何文件,则需要先声明此类子卷,以便将其挂载。
2.2.2.1.2 网络配置 #
要在首次引导期间配置并使用网络连接,请在 script 中添加以下语句:
# combustion: network
使用此语句会将 rd.neednet=1 参数传递给 dracut。网络配置默认设为使用 DHCP。如果需要使用不同的网络配置,请按照第 2.2.2.1.3 节 “在 initramfs 中进行修改”中所述操作。
如果不使用该语句,将不会为系统配置任何网络连接。
2.2.2.1.3 在 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
# Close outputs and wait for tee to finish
exec 1>&- 2>&-; wait;
# Leave a marker
echo "Configured with combustion" > /etc/issue.d/combustion2.2.2.1.4 等待任务完成 #
后台可能会运行一些进程,例如将输出重定向到终端的 tee 进程。要确保所有正在运行的进程在 script 执行完毕前均已完成,请添加以下一行内容:
exec 1>&- 2>&-; wait;
2.2.2.1.5 分区 #
提供的 SUSE Linux Micro 原始映像会使用默认分区方案。您可能希望使用不同的分区方式。下面一组示例代码段会将 /home 移至另一个分区。
以下脚本会执行快照中未包含的更改。如果脚本失败且快照被丢弃,那么某些更改将仍然可见且无法还原,例如对 /dev/vdb 设备的更改。
以下代码段会在 /dev/vdb 设备上创建仅含一个分区的 GPT 分区方案:
sfdisk /dev/vdb <<EOF sleep 1 label: gpt type=linux EOF partition=/dev/vdb1
由于 sfdisk 命令可能需要较长时间才能完成,因此在 sfdisk 后使用 sleep 命令推迟 label。
该分区为 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/fstab2.2.2.1.6 创建新用户 #
由于某些服务(例如 Cockpit)要求使用非 root 用户身份登录,因此请在此处至少定义一个非特权用户。或者,您可以按第 5.3 节 “添加用户”中所述在正在运行的系统中创建此类用户。
要添加新用户帐户,请先创建一个代表用户口令的哈希字符串。使用 openssl passwd -6 命令。
获取口令哈希后,在 script 中添加以下几行内容:
mount /home useradd -m EXAMPLE_USER echo 'EXAMPLE_USER:PASSWORD_HASH' | chpasswd -e
2.2.2.1.7 设置 root 的口令 #
在设置 root 口令前,请先生成口令的哈希,例如,使用 openssl passwd
-6 来生成。要设置口令,请在 script 中添加以下几行内容:
echo 'root:PASSWORD_HASH' | chpasswd -e
2.2.2.1.8 添加 SSH 密钥 #
以下代码段会创建用于存储 root 的 SSH 密钥的目录,然后将位于配置设备上的公共 SSH 密钥复制到 authorized_keys 文件中。
mkdir -pm700 /root/.ssh/ cat id_rsa_new.pub >> /root/.ssh/authorized_keys
2.2.2.1.9 启用服务 #
要启用系统服务(例如 SSH 服务),请将下面一行添加到 script 中:
systemctl enable sshd.service
2.2.2.1.10 安装软件包 #
由于您可能需要额外订阅特定的软件包,因此可能需事先注册系统。此外,安装额外的软件包可能还需要有网络连接。
在首次引导配置期间,可以在系统上安装额外的软件包。例如,可以通过添加以下命令安装 vim 编辑器:
zypper --non-interactive install vim-small
请注意,在配置完毕并引导到配置的系统前,您将无法使用 zypper。如果想要在稍后进行更改,则必须使用 transactional-update 命令创建已更改快照。
3 准备虚拟机 #
本节介绍如何准备新虚拟机,以及在该虚拟机上部署 SUSE Linux Micro 时需执行哪些步骤。
在要用来运行虚拟化 SUSE Linux Micro 的 VM 主机服务器上下载 SUSE Linux Micro 磁盘映像。
启动虚拟机管理器,然后选择 › 。
选择。单击确认。
指定之前下载的 SUSE Linux Micro 磁盘映像的路径以及要部署的 Linux 操作系统类型(例如
Generic Linux 2020)。单击确认。指定要分配给 SUSE Linux Micro 虚拟机的内存容量和处理器数量,然后单击确认。
指定虚拟机名称和要使用的网络。
如果要部署加密 SUSE Linux Micro 映像,另外还需执行以下步骤:
4 使用 JeOS Firstboot 进行配置 #
首次引导 SUSE Linux Micro 时,如果未提供任何配置设备,JeOS Firstboot 可用于对系统执行最低限度的配置。如果需要更好地控制部署过程,请使用具有 Ignition 或 Combustion 配置的配置设备。有关详细信息,请参见第 2.1 节 “使用 Ignition 配置 SUSE Linux Micro 部署”和第 2.2 节 “使用 Combustion 配置 SUSE Linux Micro 部署”。
要使用 JeOS Firstboot 配置系统,请按以下步骤操作:
会显示欢迎屏幕。单击 Enter 确认。
在接下来的屏幕中,选择键盘,确认许可协议,并选择时区。
在对话框窗口中,输入
root的口令并确认。图 3︰ 输入 root 口令 #对于加密部署,JeOS Firstboot 会执行以下操作:
提示输入新的通行口令,用来取代默认的通行口令。
生成新的 LUKS 密钥,并重新加密分区。
为 LUKS 报头添加次要密钥槽,并将其封装到 TPM 设备中。
如果您要部署的是加密映像,请执行以下步骤:
选择所需的保护方法,并单击确认。
输入 LUKS 加密的恢复口令,然后再输入一遍。根文件系统开始重新加密。
图 4︰ 选择加密方法 #(可选) 要登记 SSH 密钥以访问系统,请按是。如果按了是,请执行以下步骤:
使用 SSH 连接到显示的 IP 地址。
如果妥当收到了公共密钥,请在下一个屏幕中进行确认。
要求您导入 SSH 密钥的提示随即出现。根据个人喜好选择选项。
(可选) 如果需要,您可以在
User Creation表单中创建非特权用户。填写用户名、全名和口令(需输入两次)。单击确定进行确认。(可选) 要设置用于访问 Cockpit 的 MFA,请打开 TOTP 应用程序并扫描二维码。输入应用程序提供的 OTP 值。单击确定继续。
成功完成部署后,按照第 5.4 节 “从 CLI 注册 SUSE Linux Micro”中所述注册您的系统。
5 部署后步骤 #
5.1 扩展加密的磁盘映像 #
SUSE Linux Micro 的加密原始磁盘映像不会自动扩展到磁盘的全部容量。此过程概述了将它们扩展到所需大小的步骤。
使用
qemu-img命令将磁盘映像增至所需大小。使用
parted命令将 LUKS 设备所在的分区(例如分区 3)调整为所需大小。运行
cryptsetup resize luks命令:当系统要求输入通行口令时,请输入相应口令以调整加密设备的大小。运行
transactional-update shell命令在当前磁盘快照中打开读写外壳,然后将 Btrfs 文件系统调整为所需大小。例如:#btrfs fi resize max /运行
exit退出外壳,然后运行reboot重引导系统。
5.2 重新加密已加密系统 #
系统目前未受保护,因此,在完成磁盘重新加密之前,不要在其中存储任何敏感数据。
JeOS Firstboot 会在部署阶段提示输入新通行口令。您输入通行口令后,系统会自动重新加密,因此您无需执行其他操作。
SUSE Linux Micro 加密映像附带默认的 LUKS 通行口令。要保护系统的安全,请务必在部署系统后更改该通行口令。为此,请执行以下操作。请在同一外壳会话中执行这些步骤。
将所需的函数导入外壳中:
#source /usr/share/fde/luks识别底层 LUKS 设备并定义其他所使用的变量:
#luks_name=$(expr "`df --output=source / | grep /dev/`" : ".*/\(.*\)")和
#luks_dev=$(luks_get_underlying_device "$luks_name")创建一个用来存储默认通行口令 1234 的密钥文件,以及一个包含新通行口令的密钥文件。
更改恢复口令:
#cryptsetup luksChangeKey --key-file PATH_TO_DEFAULT --pbkdf pbkdf2 "${luks_dev}" PATH_TO_NEWPATH_TO_DEFAULT 是包含默认通行口令的密钥文件的路径。PATH_TO_NEW 是包含新通行口令的密钥文件的路径。
重新加密 LUKS 设备:
#cryptsetup reencrypt --key-file PATH_TO_NEW ${luks_dev}创建一个新的随机密钥并将其封装到 TPM 中:
>sudofdectl regenerate-key --passfile PATH_TO_NEW去除您在步骤 3 中创建的两个密钥文件。
运行以下命令更新
grub.cfg文件:>sudotransactional-update grub.cfg重新启动系统。
5.3 添加用户 #
由于 SUSE Linux Micro 默认要求以非特权用户身份通过 SSH 登录或访问 Cockpit,因此建议您创建一个这样的帐户。
如果您已在系统部署期间定义了非特权用户,则可以不执行此步骤。若未定义,则可以按如下所示操作:
如下所示运行
useradd命令:#useradd -m USER_NAME为该帐户设置口令:
#passwd USER_NAME根据需要将用户添加到
wheel组:#usermod -aG wheel USER_NAME
5.4 从 CLI 注册 SUSE Linux Micro #
部署成功后,需要注册系统以获得技术支持并接收更新。可以使用 transactional-update
register 命令从命令行注册系统。
要在 SUSE Customer Center 中注册 SUSE Linux Micro,请执行以下操作:
按如下方式运行
transactional-update register:#transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESS要在本地注册服务器中注册,另请提供该服务器的 URL:
#transactional-update register -r REGISTRATION_CODE -e EMAIL_ADDRESS \ --url "https://suse_register.example.com/"将 REGISTRATION_CODE 替换为随您的 SUSE Linux Micro 一起收到的注册码。将 EMAIL_ADDRESS 替换为与您或贵组织管理订阅时所用 SUSE 帐户关联的电子邮件地址。
重引导您的系统以切换到最新的快照。
SUSE Linux Micro 现已注册完毕。
如果所需的信息超出了本节的范畴,请使用 SUSEConnect --help 查看内嵌文档。
6 法律声明 #
版权所有 © 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 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。



