跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / 在虚拟机上使用原始磁盘映像部署 SLE Micro

在虚拟机上使用原始磁盘映像部署 SLE Micro

出版日期:2024-11-12
解释

SLE Micro 提供可直接部署到虚拟机的原始映像(也称为预构建映像)。

原因

虚拟化部署可节省硬件资源。

工作量

读完本文大约需要 20 分钟。

目标

SLE Micro 已成功部署到虚拟机。

要求
  • 已安装且正在运行 libvirt 和 KVM 虚拟化环境的 VM 主机服务器。

  • 至少 32 GB 的磁盘空间,用于部署映像。

  • (可选)一个配置媒体,例如 USB 闪存盘。

1 关于预构建映像

预构建映像代表正在运行的操作系统,随时可供使用。它们不是通过安装程序以传统方式安装的,而是会复制到目标主机的硬盘中。本主题将介绍有关这些预构建映像的基本信息。

在首次引导时,需使用预构建映像中提供的工具对其进行配置。引导加载程序会按照第 1.2 节 “首次引导检测”中所述检测首次引导。每个映像附带默认挂载的子卷,在首次引导配置期间,这些子卷可能会发生更改。有关子卷的细节,请参见第 1.1 节 “默认分区”

1.1 默认分区

提供的预构建映像会使用默认的分区方案,在首次引导期间,可以使用 IgnitionCombustion 更改该方案。

重要
重要:根文件系统必须使用 Btrfs

如果您要对默认分区方案进行任何更改,根文件系统必须是 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 准备配置设备

重要
重要:SSH 登录

默认情况下,SLE Micro 中仅允许使用 SSH 密钥进行 root SSH 登录。我们建议在部署过程中创建一个非特权用户用于访问已安装的系统。可以在首次引导时使用 Combustion 或 Ignition 工具创建非特权用户帐户。在系统部署期间创建的非特权用户还可用于访问 Cockpit Web 界面。

要准备配置设备,请执行以下步骤:

过程 1︰ 准备配置设备
  1. 将磁盘格式化为 SLE Micro 支持的任何文件系统:Ext3、Ext4 等:

    > sudo mkfs.ext4 /dev/sdY
  2. 将设备标签设置为 ignition(使用 Ignition 或 时)或 combustioncombustion(仅使用 Combustion 时)。如果需要(例如在 Windows 主机上),请为标签使用大写字母。要为设备设置标签,请运行:

    > sudo e2label /dev/sdY ignition

    可以使用您的虚拟化系统或硬件支持的任何类型的配置存储媒体:ISO 映像、USB 闪存盘等

  3. 挂载设备:

    > sudo mount /dev/sdY /mnt
  4. 创建第 2.1.1.1 节 “ config.ign第 2.2 节 “使用 Combustion 配置 SLE Micro 部署”中所述的目录结构,具体取决于使用的配置工具:

    > sudo mkdir  /mnt/ignition/

    或:

    > sudo mkdir -p /mnt/combustion/
  5. 准备 IgnitionCombustion 所用配置的所有元素

2.1 使用 Ignition 配置 SLE Micro 部署

Ignition 是一种预配工具,可让您在首次引导时根据您的具体要求配置系统。

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

配置文件 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 个以上的字符,并结合使用大写与小写字母和数字。

2.1.2 Ignition 配置示例

2.1.2.1 配置示例

本部分提供内置 JSON 格式的 Ignition 配置的几个示例。

重要
重要

第 1.1 节 “默认分区”列出了在运行预构建的映像时默认挂载的子卷。如果您要在默认未挂载的子卷上添加新用户或修改任何文件,则需要先声明此类子卷,以便将其挂载。有关挂载文件系统的详细信息,请参见第 2.1.2.1.1.3 节 “filesystems 属性”

注意
注意:version 属性为必要属性

每个 config.fcc 都必须包含版本 1.4.0 或更低版本,该版本随后会转换为相应的 Ignition 规范。

2.1.2.1.1 储存配置

storage 属性用于配置分区、RAID,定义文件系统,创建文件等。要定义分区,请使用 disks 属性。filesystems 属性用于格式化分区和定义特定分区的挂载点。files 属性可用于在文件系统中创建文件。后续章节中将介绍上述每个属性。

2.1.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
      }
    ]
  }
}
2.1.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"
      }
    ]
  }
}
2.1.2.1.1.3 filesystems 属性

filesystems 必须包含以下属性:

device

设备的绝对路径,如果是物理磁盘,通常为 /dev/sda

format

文件系统格式(Btrfs、Ext4、xfs、vfat 或 swap)

注意
注意

对于 SLE Microroot 文件系统必须为 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.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
      }
    ]
  }
}
2.1.2.1.1.5 directories 属性

directories 属性是将在文件系统中创建的目录列表。directories 属性必须至少包含一个 path 属性。

例如:

{
  "ignition": {
    "version": "3.0.0"
  },
  "storage": {
    "directories": [
      {
        "path": "/home/tux",
        "user": {
          "name": "tux"
        }
      }
    ]
  }
}
2.1.2.1.2 用户管理

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.1.3 启用 systemd 服务

您可以通过在 systemd 属性中指定 systemd 服务来启用相应服务。

例如:

{
  "ignition": {
    "version": "3.0.0"
  },
  "systemd": {
    "units": [
      {
        "enabled": true,
        "name": "sshd.service"
      }
    ]
  }
}

2.2 使用 Combustion 配置 SLE Micro 部署

Combustion 是一种 dracut 模块,可用于在首次引导时配置系统。您可以使用 Combustion 来更改默认分区、设置用户口令、创建文件、安装软件包等。

2.2.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

Combustion 可与 Ignition 搭配使用。如果您要将它们搭配使用,请将配置媒体标记为 ignition,并在目录结构中添加包含 config.ignignition 目录,如下所示:

<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 执行的配置任务的一些示例。

重要
重要:包含解释器声明

script 文件由外壳解释,所以请务必在文件的第一行以解释器声明开头。例如,对于 Bash:

#!/bin/bash

为了登录系统,请至少包含 root 口令,但建议使用 SSH 密钥建立身份验证。如果您需要使用 root 口令,请务必配置安全口令。对于随机生成的口令,请至少包含 10 个字符。如果您要手动创建口令,请包含 10 个以上的字符,并结合使用大写与小写字母和数字。

2.2.2.1.1 网络配置

要在首次引导期间配置并使用网络连接,请在 script 中添加以下语句:

# combustion: network

使用此语句会将 rd.neednet=1 参数传递给 dracut。网络配置默认设为使用 DHCP。如果需要使用不同的网络配置,请按照第 2.2.2.1.2 节 “在 initramfs 中进行修改”中所述操作。

如果不使用该语句,将不会为系统配置任何网络连接。

2.2.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
2.2.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
2.2.2.1.4 创建新用户

由于某些服务(例如 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.5 设置 root 的口令

在设置 root 口令前,请先生成口令的哈希,例如,使用 openssl passwd -6 来生成。要设置口令,请在 script 中添加以下几行内容:

echo 'root:PASSWORD_HASH' | chpasswd -e
2.2.2.1.6 添加 SSH 密钥

以下代码段会创建用于存储 root 的 SSH 密钥的目录,然后将位于配置设备上的公共 SSH 密钥复制到 authorized_keys 文件中。

mkdir -pm700 /root/.ssh/
cat id_rsa_new.pub >> /root/.ssh/authorized_keys
注意
注意

如果您需要通过 SSH 进行远程登录,则必须启用 SSH 服务。有关细节,请参见第 2.2.2.1.7 节 “启用服务”

2.2.2.1.7 启用服务

要启用系统服务(例如 SSH 服务),请将下面一行添加到 script 中:

systemctl enable sshd.service
2.2.2.1.8 安装软件包
重要
重要:可能需要注册您的系统并连接网络

由于您可能需要额外订阅特定的软件包,因此可能需事先注册系统。此外,安装额外的软件包可能还需要有网络连接。

在首次引导配置期间,可以在系统上安装额外的软件包。例如,可以通过添加以下命令安装 vim 编辑器:

zypper --non-interactive install vim-small
注意
注意

请注意,在配置完毕并引导到配置的系统前,您将无法使用 zypper。如果想要在稍后进行更改,则必须使用 transactional-update 命令创建已更改快照。

3 准备虚拟机

本节介绍如何准备新虚拟机,以及在该虚拟机上部署 SLE Micro 时需执行哪些步骤。

  1. 在要用来运行虚拟化 SLE Micro 的 VM 主机服务器上下载 SLE Micro 磁盘映像。

  2. 启动虚拟机管理器,然后选择文件 › 新建虚拟机

  3. 选择导入现有磁盘映像。单击前进确认。

  4. 指定之前下载的 SLE Micro 磁盘映像的路径以及要部署的 Linux 操作系统类型(例如 Generic Linux 2020)。单击前进确认。

  5. 指定要分配给 SLE Micro 虚拟机的内存容量和处理器数量,然后单击前进确认。

  6. 指定虚拟机名称和要使用的网络。

  7. 如果要部署加密 SLE Micro 映像,另外还需执行以下步骤:

    1. 启用在安装前自定义配置,然后单击完成确定。

    2. 单击左侧菜单中的概览,将引导方法从 BIOS 更改为 UEFI,以实现安全引导。单击应用进行确认。

      为加密的 SLE Micro 映像设置 UEFI 固件
      图 1︰ 为加密的 SLE Micro 映像设置 UEFI 固件
    3. 添加可信平台模块 (TPM) 设备。单击添加硬件,从左侧菜单中选择 TPM,然后选择模拟类型。

      添加模拟的 TPM 设备
      图 2︰ 添加模拟的 TPM 设备

      单击完成确认,然后在顶部菜单中单击开始安装,启动 SLE Micro 部署过程。

4 使用 JeOS Firstboot 进行配置

首次引导 SLE Micro 时,如果未提供任何配置设备,JeOS Firstboot 可用于对系统执行最低限度的配置。如果需要更好地控制部署过程,请使用具有 Ignition 或 Combustion 配置的配置设备。有关详细信息,请参见第 2.1 节 “使用 Ignition 配置 SLE Micro 部署”第 2.2 节 “使用 Combustion 配置 SLE Micro 部署”

要使用 JeOS Firstboot 配置系统,请按以下步骤操作:

  1. JeOS Firstboot 会显示欢迎屏幕。单击 Enter 确认。

  2. 在接下来的屏幕中,选择键盘,确认许可协议,并选择时区。

  3. 输入 root 密码对话框窗口中,输入 root 的密码并确认。

    输入 root 密码
    图 3︰ 输入 root 密码
  4. 对于加密部署,JeOS Firstboot 会执行以下操作:

    • 提示输入新的通行口令,用来取代默认的通行口令。

    • 生成新的 LUKS 密钥,并重新加密分区。

    • 为 LUKS 报头添加次要密钥槽,并将其封装到 TPM 设备中。

    如果您要部署的是加密映像,请执行以下步骤:

    1. 选择所需的保护方法,并单击确定确认。

    2. 输入 LUKS 加密的恢复口令,然后再输入一遍。根文件系统开始重新加密。

    选择加密方法
    图 4︰ 选择加密方法
  5. 成功部署后,按第 5.4 节 “从 CLI 注册 SLE Micro中所述注册系统并创建非特权用户。

5 部署后步骤

5.1 扩展加密的磁盘映像

SLE Micro 的加密原始磁盘映像不会自动扩展到磁盘的全部容量。此过程概述了将它们扩展到所需大小的步骤。

过程 2︰ 扩展加密的磁盘映像
  1. 使用 qemu-img 命令将磁盘映像增至所需大小。

  2. 使用 parted 命令将 LUKS 设备所在的分区(例如分区 3)调整为所需大小。

  3. 运行 cryptsetup resize luks 命令:当系统要求输入通行口令时,请输入相应口令以调整加密设备的大小。

  4. 运行 transactional-update shell 命令在当前磁盘快照中打开读写外壳,然后将 Btrfs 文件系统调整为所需大小。例如:

    # btrfs fi resize max /
  5. 运行 exit 退出外壳,然后运行 reboot 重引导系统。

5.2 重新加密已加密系统

警告
警告:系统未受保护

系统目前未受保护,因此,在完成磁盘重新加密之前,不要在其中存储任何敏感数据。

注意
注意:如果您是使用 JeOS Firstboot 部署系统的,则不需要执行此步骤

JeOS Firstboot 会在部署阶段提示输入新通行口令。您输入通行口令后,系统会自动重新加密,因此您无需执行其他操作。

SLE Micro 加密映像附带默认的 LUKS 通行口令。要保护系统的安全,请务必在部署系统后更改该通行口令。为此,请执行以下操作。请在同一外壳会话中执行这些步骤。

  1. 将所需的函数导入外壳中:

    # source /usr/share/fde/luks
  2. 识别底层 LUKS 设备并定义其他所使用的变量:

    # luks_name=$(expr "`df --output=source / | grep /dev/`" :
          ".*/\(.*\)")

    # luks_dev=$(luks_get_underlying_device "$luks_name")
  3. 创建一个用来存储默认通行口令 1234 的密钥文件,以及一个包含新通行口令的密钥文件。

  4. 更改恢复口令:

    # cryptsetup luksChangeKey --key-filePATH_TO_DEFAULT --pbkdf pbkdf2 "${luks_dev}" PATH_TO_NEW

    PATH_TO_DEFAULT 是包含默认通行口令的密钥文件的路径。PATH_TO_NEW 是包含新通行口令的密钥文件的路径。

  5. 重新加密 LUKS 设备:

    # cryptsetup reencrypt --key-filePATH_TO_NEW ${luks_dev}
  6. 创建一个新的随机密钥并将其封装到 TPM 中:

    > sudo fdectl regenerate-key --passfile PATH_TO_NEW
  7. 去除您在步骤 3 中创建的两个密钥文件。

  8. 运行以下命令更新 grub.cfg 文件:

    > sudo transactional-update grub.cfg
  9. 重新启动系统。

5.3 添加用户

由于 SLE Micro 要求使用非特权用户身份通过 SSH 登录系统或访问 Cockpit,因此您需要创建这样的帐户。

如果已在 Ignition 或 Combustion 中定义了非特权用户,则可以不执行此步骤。如果您是使用 JeOS Firstboot 部署系统的,那么只需设置 root 口令,并且需要手动创建非特权帐户,如下所述:

  1. 如下所示运行 useradd 命令:

    # useradd -m USER_NAME
  2. 为该帐户设置口令:

    # passwdUSER_NAME
  3. 根据需要将用户添加到 wheel 组:

    # usermod -aG wheelUSER_NAME

5.4 从 CLI 注册 SLE Micro

部署成功后,需要注册系统以获得技术支持并接收更新。可以使用 transactional-update register 命令从命令行注册系统。

要在 SUSE Customer Center 中注册 SLE Micro,请执行以下操作:

  1. 按如下方式运行 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 帐户关联的电子邮件地址。

  2. 重引导您的系统以切换到最新的快照。

  3. SLE Micro 现已注册完毕。

注意
注意:其他注册选项

如果所需的信息超出了本节的范畴,请使用 SUSEConnect --help 查看内嵌文档。