虚拟化是最常用的技术之一。Fedora Linux 使用 云基础镜像 来创建通用虚拟机 (VM),但是有很多方法可以设置云基础镜像。最近,用于配置 VM 的 virt-install 命令行工具增加了对 cloud-init 的支持,因此现在可以用于在本地配置和运行云镜像。
本文逐步介绍了如何在裸机上设置基本的 Fedora 云实例。相同的步骤可以用于任何 raw 或 Qcow2 云基础镜像。
什么是 --cloud-init?
virt-install 命令使用 libvirt 创建 KVM、Xen 或 LXC 客户机。--cloud-init
选项使用本地文件(称为 nocloud 数据源),因此您无需网络连接即可创建镜像。nocloud 方法在首次启动期间从 iso9660 文件系统(.iso
文件)派生客户机的用户数据和元数据。当您使用此选项时,virt-install 会为 root 用户帐户生成一个随机(和临时)密码,提供一个串行控制台,以便您可以登录并更改密码,然后为后续启动禁用 --cloud-init
选项。
设置 Fedora 云基础镜像
首先,下载 Fedora 云基础 (用于 OpenStack) 镜像。

(Sumantro Mukherjee, CC BY-SA 4.0)
然后安装 virt-install 命令
$ sudo dnf install virt-install
一旦安装了 virt-install 并且下载了 Fedora 云基础镜像,创建一个名为 cloudinit-user-data.yaml
的小型 YAML 文件,以包含 virt-install 将使用的一些配置行。
#cloud-config
password: 'r00t'
chpasswd: { expire: false }
这个简单的 cloud-config 设置了默认 fedora 用户的密码。如果您想使用过期的密码,您可以将其设置为在登录后过期。
创建并启动 VM
$ virt-install --name local-cloud18012709 \
--memory 2000 --noreboot \
--os-variant detect=on,name=fedora-unknown \
--cloud-init user-data="/home/r3zr/cloudinit-user-data.yaml" \
--disk=size=10,backing_store="/home/r3zr/Downloads/Fedora-Cloud-Base-33-1.2.x86_64.qcow2"
在本示例中,local-cloud18012709
是虚拟机的名称,RAM 设置为 2000MiB,磁盘大小(虚拟硬盘驱动器)设置为 10GB,--cloud-init
和 backing_store
包含您创建的 YAML 配置文件和您下载的 Qcow2 镜像的绝对路径。
登录
镜像创建完成后,您可以使用用户名 fedora 和 YAML 文件中设置的密码登录(在我的示例中,这是 r00t,但您可能使用了其他密码)。首次登录后请更改您的密码。
要关闭您的虚拟机,请执行 sudo poweroff
命令,或按键盘上的 Ctrl+]。
启动、停止和终止 VM
virsh
命令用于启动、停止和终止 VM。
要启动任何正在运行的 VM
$ virsh start <vm-name>
要停止任何正在运行的 VM
$ virsh shutdown <vm-name>
要列出所有处于运行状态的 VM
$ virsh list
要销毁 VM
$ virsh destroy <vm-name>

(Sumantro Mukherjee, CC BY-SA 4.0)
快速且简单
virt-install 命令与 --cloud-init
选项结合使用,可以快速轻松地创建云就绪镜像,而无需担心是否已经拥有云来运行它们。无论您是为大型部署做准备还是只是学习容器,都可以尝试 virt-install --cloud-init
。
您是否有最喜欢的云工作工具?请在评论中告诉我们。
评论已关闭。