JeOS 快速入门指南
下面的文档提供了 SUSE Linux Enterprise Server JeOS 的概述并说明了设置过程。
1 简介 #
JeOS (Just enough Operating System) 是一种专为特定使用场景而设计的可自定义最精简操作系统,包含一个容器主机、一个虚拟机 Guest、一个设备库或小服务器映像。JeOS 是构建数据中心中使用的系统、创建所需虚拟应用程序映像或设备的基础。您可以根据特定使用情形选择要安装的软件包和组件。为此,JeOS 提供了对所有常规软件储存库的访问途径。
如果您已有 SUSE Linux Enterprise Server 证书,将自动通过 JeOS 认证,因为 JeOS 源自同一代码库。SUSE Linux Enterprise Server JeOS 可让您缩减操作系统,只针对特定使用场景提供必要的软件包。如此可最大程度减少需要管理和应用的软件包和补丁数量。通过去除不必要的软件包,您还可以减少可能的漏洞数量,从而让精简后的系统更安全。此外,缩小系统占用的空间还可降低资源消耗并提高性能。
JeOS 作为经过预配置可立即运行的虚拟机映像提供。系统附带 jeos-firstboot
向导,可在首次引导期间指引您配置系统区域设置和 root 口令。JeOS 随附了已启用且已从防火墙配置中排除的 SSH 服务器。所提供的 KIWI 模板可用于创建自定义 JeOS 映像。
JeOS 提供可在 AMD64/Intel 64 体系结构上立即部署的服务器映像,适用于以下使用场景:
具有 HVM 的 KVM/Xen
Xen 半虚拟化
Microsoft Hyper-V
VMWare
OpenStack Cloud
1.1 系统要求 #
JeOS 的最低系统要求与 SUSE Linux Enterprise Server 类似。有关详细信息,请参见Book “部署指南”, Chapter 2 “在 AMD64 和 Intel 64 上安装”, Section 2.1 “硬件要求”。
1.2 JeOS 与 SUSE Linux Enterprise Server 之间的差异 #
JeOS 与 SUSE Linux Enterprise Server 之间存在一些重大差异。
- jeos-firstboot
JeOS 随附了 jeos-firstboot 工具,可用于在首次引导期间配置基本设置。这些设置包括键盘布局和语言、时区以及 root 口令。
默认网络配置设置为使用 DHCP,系统会自动创建初始配置的 Btrfs 快照。
- kernel-default-base
由于存在大小限制,JeOS 映像使用 kernel-default-base 作为默认内核。因为该内核不包含裸机的驱动程序,所以占用的空间更小。
如果特定使用场景需要任何被省略的模块,请安装 kernel-default 软件包,以获取完整的内核模块树。常规 SUSE Linux Enterprise Server 安装使用的就是该内核。
- 默认无储存库
从安装媒体安装 SUSE Linux Enterprise Server 时,系统会自动将安装媒体设置为默认脱机通道。
而 JeOS 默认无此通道,您需要注册系统才能访问联机通道。
- Zypper 配置
JeOS 是 SUSE Linux Enterprise Server 的精简版本。有一部分大小的缩减是通过启用
/etc/zypp/zypp.conf
中的以下两个选项实现的:rpm.install.excludedocs = yes
(默认在安装过程中排除所有标记为文档的文件)和solver.onlyRequires = true
(默认禁止安装建议的软件包)。- 基本软件包
JeOS 映像通过 KIWI 工具来构建。KIWI 的配置文件(称为模板)明确列出了映像中必须包含的软件包。请注意,在映像构建过程中,这些基本软件包会拉取其依赖项。因此,映像中预安装的软件包列表包含的软件包通常会比基本软件包列表多。
用于创建官方 JeOS 映像的 KIWI 配置文件可从 https://build.opensuse.org/ 上的 openSUSE Build Service 中获取。
注意:特定主机工具软件包每种 SUSE Linux Enterprise Server JeOS 风格都包含特定的主机工具软件包。有关更多信息,请参见文档中的特定风格章节。
- 磁盘布局
与 SUSE Linux Enterprise Server 在安装期间计算磁盘布局不同,JeOS 使用如下固定的虚拟映像分区方案:
2 MB BIOS 引导
33 MB EFI 系统
24 GB Linux 文件系统
要获得额外的磁盘空间,您可以扩展虚拟主机中的现有磁盘,也可以向虚拟机添加另一个磁盘。如果您选择后一个选项,则必须手动进行分区和格式化。
- 已禁用 systemd-coredump
由于 JeOS 映像上默认可用的内存和磁盘空间有限,JeOS 映像上默认会禁用 systemd-coredump。要收集查错所需的应用程序内核转储,请执行以下步骤:
安装 systemd-coredump 软件包(其中包含
/usr/lib/sysctl.d/50-coredump.conf
)要对您的系统应用配置更改,请重引导或使用
sysctl --system
命令。
有关更多信息,请参见 https://documentation.suse.com/sles/single-html/SLES-tuning/#cha-tuning-systemd-coredump。
2 可用的映像风格 #
仅针对 x86_64 体系结构提供立即可用的 JeOS 映像。您可以下载适用于以下部署目标的 JeOS:
适用于 KVM 和 Xen 的全虚拟 JeOS (FV/HVM)
适用于 VMware 的 JeOS
适用于 Microsoft Hyper-V 的 JeOS
适用于 OpenStack 的 JeOS
适用于 Xen 的半虚拟 JeOS (PV)
JeOS 可在 SUSE Linux Enterprise Server 的虚拟化主机(超级管理程序)上作为虚拟 Guest 运行。有关受支持超级管理程序的详细信息,请参见Book “虚拟化指南”, Chapter 7 “虚拟化限制和支持”, Section 7.3 “支持的主机环境(超级管理程序)”。
2.1 适用于 OpenStack Cloud 的 JeOS 映像 #
适用于 OpenStack Cloud 的 JeOS 是专为在 OpenStack 环境中使用而设计的映像。
适用于 OpenStack Cloud 的 JeOS 不使用 jeos-firstboot 工具,而是使用 cloud-init 来配置映像。映像还使用 XFS 文件系统和以下内核配置:
"plymouth.enable=0 console=ttyS0,115200 console=tty0 net.ifnames=0"
这表示映像并未随附 jeos-firstboot 和 Btrfs 所需的软件包。
适用于 OpenStack Cloud 的 JeOS 包含若干 OpenStack 相关软件包,例如 cloud-init、 cloud-init-config-suse和 xfsprogs。
2.1.1 cloud-init
基础知识 #
cloud-init
会自动将自定义配置应用到正在运行的实例。该工具有多种配置模块,在引导阶段,它可以在映像中执行特定的命令。
cloud-init 的默认配置包含在
cloud-init-config-suse 软件包中,位于 /etc/cloud/cloud.cfg
目录下。
2.1.2 cloud-init 配置示例 #
默认情况下,cloud-init 不会设置 root 口令,而是创建名为 sles
的用户帐户,该帐户充当默认用户并拥有 sudo 权限。下面的示例会为这两个用户创建口令。
#cloud-config #cloud-config chpasswd: list: | root:$6$SalTsaLt$.cuqsgjNGxHJZSLmVqkI/j9.kWIiUQHqjlRswbHjTw9hIXdPomgey2DHzmp6Ho6wgqIKz3ufbOIKdQCnQHPSA1 sles:$6$SalTsaLt$.cuqsgjNGxHJZSLmVqkI/j9.kWIiUQHqjlRswbHjTw9hIXdPomgey2DHzmp6Ho6wgqIKz3ufbOIKdQCnQHPSA1 expire: False
要创建示例中使用的 SHA-512 哈希,请运行以下命令:openssl passwd -6 -salt SalTsaLt PASSWORD
。
为了避免潜在的安全风险,请不要在生产环境中使用口令。即使是使用经过哈希处理的口令,您也可能会遭到字典攻击。为了提高安全性,请使用 SSH 身份验证,而不要使用口令。
创建用户时,请注意系统默认会禁用口令登录,并且新建的用户没有 sudo 权限。
以下示例显示了用于创建各种用户的配置。
#cloud-config users: - default - name: USER shell: /bin/bash groups: users # lock_passwd: Disable password login. Defaults to true lock_passwd: false passwd: $6$SalTsaLt$.cuqsgjNGxHJZSLmVqkI/j9.kWIiUQHqjlRswbHjTw9hIXdPomgey2DHzmp6Ho6wgqIKz3ufbOIKdQCnQHPSA1 sudo: ALL=(ALL) NOPASSWD:ALL
#cloud-config users: - name: USER shell: /bin/bash groups: users ssh_import_id: None lock_passwd: true sudo: ALL=(ALL) NOPASSWD:ALL ssh_authorized_keys: - SSH_PUBLIC_KEY_1 - SSH_PUBLIC_KEY_2
要连接 SUMA、RMT 或 SUSEConnect 并在其中注册,请使用 runcmd
模块运行所需的命令,例如:
#cloud-config runcmd: - SUSEConnect -r REGISTRATION_CODE -e EMAIL_ADDRESS
有关更多信息,请参见https://documentation.suse.com/sles/html/SLES-all/cha-register-sle.html。
对于 RMT,配置如下所示:
#cloud-config runcmd: - curl http://RMT_SERVER/tools/rmt-client-setup \ --output rmt-client-setup - sh rmt-client-setup https://RMT_SERVER/
有关更多信息,请参见https://documentation.suse.com/sles/html/SLES-all/cha-rmt-client.html。
对于 SUMA,配置如下所示:
#cloud-config runcmd: - curl -O http://suma01/pub/bootstrap/bootstrap.sh - /bin/bash bootstrap.sh
最后,下面的示例显示了用于安装某个软件包并在首次引导期间启动某个服务的配置。
#cloud-config packages: - qemu-guest-agent runcmd: - systemctl enable qemu-guest-agent.service - systemctl start --no-block qemu-guest-agent.service
2.2 KVM/Xen 和 Xen 风格 #
适用于 KVM/Xen 和 Xen 的 JeOS 映像随附以下软件包:
xen-tools-domU
grub2-x86_64-xen
xen-libs
2.3 Microsoft Hyper-V 风格 #
适用于 Microsoft Hyper-V 的 JeOS 映像随附 hyper-v。
2.4 VMware 风格 #
适用于 VMware 的 JeOS 映像随附 open-vm-tools。
3 在 KVM 上安装并运行 JeOS #
如果您的本地计算机上已安装 KVM,您便可使用现成的 JeOS 映像来创建虚拟机。这可让您安全地试验 JeOS。
从 https://www.suse.com/products/server/jeos/ 上下载适用于 KVM 的 60 天试用版 JeOS 映像。
请参考以下过程在 KVM 中创建 JeOS 虚拟机。
系统引导后,jeos-firstboot 会指引您完成初始系统设置。
JeOS 映像仅随附 en_US
区域设置。在通过安装 glibc-locale 软件包并运行 localectl set-locale LANG=LOCALE
命令(将 LOCALE 替换为所需的语言区域设置,例如 de_DE.UTF-8
)完成设置后,您可以安装并选择所需系统区域设置。
第一步,系统会提示您使用键盘选择对话框选择合适的键盘布局。
下一步,阅读并接受许可协议。不接受许可协议将无法继续。
指定所需时区。
出现提示时,指定并确认所需的 root 口令。
最后一步,系统会引导您注册系统。如果您只想测试 JeOS,可以跳过注册步骤。
完成初始配置后,您便可以使用在设置过程中指定的口令以
root
身份登录系统。
我们强烈建议您在成功安装并注册 JeOS 后安装最新的联机更新。