使用 SUSE Manager VM 映像在虚拟机环境中安装 SUSE Manager

1. 虚拟机管理器设置

本章提供 SUSE Manager 所需的内核虚拟机 (KVM) 设置。将使用结合了虚拟机管理器 (virt-manager) 的 KVM 作为此安装的沙箱。

SUSE Manager 4.3 VM 映像有多种格式。这些映像包含作为底层操作系统的 SUSE Linux Enterprise Server 15 SP4 以及构建时最新的 SUSE Manager 软件。您可以从 https://download.suse.com/ 下载适合您的环境的 SUSE Manager 映像。

下表指定了最低要求。这些要求适用于快速测试安装,例如包含一个客户端的服务器。如果您想要使用生产环境,请查看 硬件要求 中所列的要求。

虚拟机设置概览

安装方法

导入现有磁盘映像

OS:

SUSE Linux Enterprise 15 SP4

内存:

16 GB

CPU 数量:

4

虚拟磁盘:

VirtIO 磁盘 1

SUSE-Manager-Server.x86_64-4.3.10-KVM.qcow2

VirtIO 磁盘 2

/var/spacewalk 提供 101 GB

VirtIO 磁盘 3

/var/lib/pgsql 提供 50 GB

VirtIO 磁盘 4

4 GB 交换空间

CDROM

Ignition 或 Cloud Init 配置磁盘

名称:

suse-manager-test-setup

网络

网桥 br0

有关 SUSE Linux Enterprise 虚拟化的详细信息,请访问 https://documentation.suse.com/sles/15-SP4/html/SLES-all/book-virtualization.html

SUSE Manager VM 映像不会设置 root 或任何其他用户帐户。用户或 root 身份验证需要在首次引导期间设置。可以使用 IgnitionCloud-Init 来完成此过程。

2. 使用 Ignition 进行 SUSE Manager 基本配置

Ignition 是可用于在首次引导时根据您指定的设置配置系统的置备工具。系统首次引导时,Ignition 会作为 initramfs 的一部分加载,并会在特定目录内(USB 闪存盘上,或者您可以提供 URL)搜索配置文件。

Ignition 会使用 JSON 格式的配置文件。该文件名为 config.ign

config.ign 是 JSON 配置文件,提供针对 Ignition 的指令。您可以手动创建 JSON 格式的文件,也可以使用 Fuel Ignition 工具生成一组基本的指令。Fuel Ignition 工具不提供完整的选项集,因此您可能需要手动修改该文件。有关详细信息,请参见 https://ignite.opensuse.org/

安装时,配置文件 config.ign 必须位于名为 ignition 的配置媒体上的 ignition 子目录中。目录结构必须如下所示:

<根目录>
└── ignition
    └── config.ign

如果您打算配置 QEMU/KVM 虚拟机,请以 qemu 命令的属性的形式提供 config.ign文件的路径。例如:

-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign

config.ign 文件包含各种数据类型:对象、字符串、整数、布尔值以及对象列表。有关完整规范,请参见 https://coreos.github.io/ignition/configuration-v3_3/

2.1. 使用 Ignition 设置 root 口令

SUSE Manager VM 映像不会设置 root 或任何其他用户帐户。用户或 root 身份验证需要在首次引导期间设置。可以使用 passwd 属性来添加用户。如果您打算登录系统,请创建 root 并设置其口令,并且/或者在 Ignition 配置中添加 SSH 密钥。您需要对 root 口令进行哈希处理,例如,使用以下 openssl 命令来处理:

openssl passwd -6

该命令会创建您所选口令的哈希。请使用此哈希作为 passwordHash 属性的值。

users 属性必须至少包含一个 name 属性。ssh_authorized_keys 是该用户的一系列 SSH 密钥。

创建包含以下内容的 root/ignition/config.ign 文件:

{
  "ignition": {
    "version": "3.2.0"
  },
  "passwd": {
    "users": [
      {
        "name": "root",
        "passwordHash": "$2a$10$qV298UV11u9lCFDjpHpCUe1cErBiVR.G3shukxs3.2PAO1xhJWs0K"
      }
    ]
  }
}

使用以下命令准备 Ignition ISO 文件:

mkisofs -full-iso9660-filenames -o suma_ignition.iso -V ignition root

首次引导时,将创建的 suma_ignition.iso 文件作为一个卷挂接到虚拟机。此特定示例会将 root 口令设置为 linux。请以您的口令哈希替换此示例中的值。

3. 使用 Cloud Init 磁盘进行 SUSE Manager 基本配置

Cloud Init 是可用于在首次引导时根据您指定的设置配置系统的置备工具。系统首次引导时,Cloud Init 服务会加载到系统中,并会在特定目录内(USB 闪存盘上,或者您可以提供 URL)搜索配置文件。

Cloud Init 会使用几个 YAML 格式的配置文件。所用文件分别是 meta-datanetwork-configuser-data

Cloud Init 允许使用许多源来存储配置数据。在本指南中,我们使用卷 ID 为 cidata 的本地 ISO 映像作为源。目录结构必须如下所示:

<根目录>
└── meta-data
└── network-config
└── user-data

如果您打算配置 QEMU/KVM 虚拟机,请以 qemu 命令的属性的形式提供 config.ign 的路径。例如:

-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign

Cloud Init 允许使用许多管理选项。有关完整规范,请参见 Cloud Init 规范 (https://cloudinit.readthedocs.io/en/latest/index.html)。

3.1. 使用 Cloud Init 设置 root 口令

您需要对 root 口令进行哈希处理,例如使用以下 openssl 命令来处理:

openssl passwd -6

该命令会创建您所选口令的哈希。请使用此哈希作为 password 属性的值。

使用以下命令准备所需的配置文件:

touch network-config
touch meta-data

创建包含以下内容的 user-data 文件:

#cloud-config
chpasswd:
  expire: false
  users:
    - name: root
      password: $2a$10$qV298UV11u9lCFDjpHpCUe1cErBiVR.G3shukxs3.2PAO1xhJWs0K

使用以下命令准备 Cloud Init ISO 文件:

mkisofs -rational-rock -joliet -o suma_cloudinit.iso -V cidata network-config meta-data user-data

将创建的 suma_cloudinit.iso 文件作为一个卷挂接到创建的虚拟机上。此特定示例会将 root 口令设置为 linux。请以您的口令哈希替换此示例中的值。

4. SUSE Manager 虚拟机设置

创建虚拟机并为其配置 SUSE Manager 存储分区所需的三个额外虚拟磁盘。

过程:使用 virt-manager 创建 VM 和额外的分区
  1. virt-manager 中打开文件  新建虚拟机

  2. 创建新虚拟机对话框中,选择导入现有磁盘映像,然后单击 下一步 确认。

  3. 输入下载的 SUSE Manager KVM 映像的文件名,并将 SUSE Linux Enterprise 15 SP4 设置为操作系统。然后单击 下一步 确认。

  4. 配置 RAM 和 CPU 数量(至少 16 GB RAM,4 个 CPU)。然后单击 下一步 确认。

  5. 设置 VM 的名称,并选中在安装之前自定义配置复选框。

  6. 网络选择下拉菜单中选择配置的网桥设备。

  7. 单击 完成 确认。

  8. 在概览仪表板中左侧导航栏的底部,单击 添加硬件 创建规格如下的额外虚拟磁盘。[proc.sumavm.susemgr.prep] 中将对这些磁盘进行分区并挂载。

    存储大小值是绝对最小值 — 仅适用于小规模测试或演示安装。尤其是 /var/spacewalk/ 可能很快就需要更多的空间。另外,请考虑为 Kiwi 映像所存储到的 /srv 创建一个单独的分区。

    VirtIO 存储磁盘 名称 大小

    VirtIO 磁盘 2

    spacewalk

    500 GB

    VirtIO 磁盘 3

    pgsql

    100 GB

    VirtIO 磁盘 4

    swap

    4 GB

  9. 单击 添加硬件 挂接含有准备好的 IgnitionCloud Init 磁盘的虚拟 DROM 设备。

  10. 单击 开始安装 从 SUSE Manager 映像引导新 VM。等待登录提示显示。使用配置磁盘设置的身份凭证登录。

5. SUSE Manager 虚拟机设置 - VMware

本节说明 VMware 配置,重点介绍如何在 VMware 环境中创建对 SUSE Manager 存储分区至关重要的额外虚拟磁盘。

过程:创建 VMware 虚拟机
  1. 下载 SUSE Manager Server .vmdk 文件,然后将该文件副本传输到您的 VMware 存储区。

  2. 上载您按照上文说明创建并准备的 Ignition 或 Cloud Init 磁盘文件。

  3. 创建一个新的虚拟机,并根据 Guest 操作系统系列 Linux 和 Guest 操作系统版本 SUSE Linux Enterprise 15(64 位)为其命名。

  4. 自定义设置中,使用控制器位置中的 IDE 控制器 0 存储设备浏览到上载的 .vmdk

  5. 额外添加一个 500 GB(或更多空间)的硬盘 2

  6. 配置 RAM 和 CPU 数量(至少 16 GB RAM,4 个 CPU)。

  7. 根据需要设置网络适配器。

  8. CD/DVD 驱动器 1 设置为使用上载的配置作为数据存储 ISO。勾选 连接 旁的复选框。当您最初启动该虚拟机时,此驱动器必须已存在。

  9. 启动该 VM,然后使用配置磁盘设置的身份凭证登录。

6. 为 SUSE Manager 准备虚拟机

启动之前,您需要从 SUSE Customer Center (https://scc.suse.com) 获取您的 SUSE Manager 注册代码。

过程:为运行 SUSE Manager 做准备
  1. root 身份登录。

  2. 将 SUSE Manager 注册到 SCC 中。例如,将 <productnumber> 替换为 4.3,并将 <architecture> 替换为 x86_64

    SUSEConnect -e<电子邮件地址> -r<SUSE MANAGER 代码> \
      -p SUSE-Manager-Server/<产品版本号>/<体系结构>
  3. 运行列出扩展命令来验证已获授权的扩展:

    SUSEConnect --list-extensions
  4. 添加 SUSE Manager 储存库:

    SUSEConnect -p sle-module-basesystem/15.4/x86_64
    SUSEConnect -p sle-module-server-applications/15.4/x86_64
    SUSEConnect -p sle-module-web-scripting/15.4/x86_64
    SUSEConnect -p sle-module-suse-manager-server/<productnumber>/x86_64
  5. 准备 SUSE Manager 存储空间:suma-storage 命令会自动准备并配置之前创建的外部存储空间,以便用于 SUSE Manager。在下面的命令中,第一个参数是用于存储 SUSE Manager 数据的设备,第二个参数是用于存储数据库的设备。

    suma-storage /dev/vdb /dev/vdc
  6. 虚拟机现在已准备就绪,可以设置 SUSE Manager。

要继续设置 SUSE Manager,请参见 SUSE Manager 设置