在裸机上建立 Linux 云实例
创始人
2024-03-02 06:56:13
0

在 Fedora 上用 virt-install 创建云镜像。

虚拟化是使用最多的技术之一。Fedora Linux 使用 Cloud Base 镜像 来创建通用虚拟机(VM),但设置 Cloud Base 镜像的方法有很多。最近,用于调配虚拟机的 virt-install 命令行工具增加了对 cloud-init 的支持,因此现在可以使用它在本地配置和运行云镜像。

本文介绍了如何在裸机上设置一个基本的 Fedora 云实例。同样的步骤可以用于任何 raw 或Qcow2 Cloud Base 镜像。

什么是 –cloud-init?

virt-install 命令使用 libvirt 创建一个 KVM、Xen 或 LXC 客户机。--cloud-init 选项使用一个本地文件(称为 “nocloud 数据源”),所以你不需要网络连接来创建镜像。在第一次启动时,nocloud 方法会从 iso9660 文件系统(.iso 文件)中获取访客机的用户数据和元数据。当你使用这个选项时,virt-install 会为 root 用户账户生成一个随机的(临时)密码,提供一个串行控制台,以便你可以登录并更改密码,然后在随后的启动中禁用 --cloud-init 选项。

设置 Fedora Cloud Base 镜像

首先,下载一个 Fedora Cloud Base(for OpenStack)镜像

Fedora Cloud 网站截图

然后安装 virt-install 命令:

$ sudo dnf install virt-install

一旦 virt-install 安装完毕并下载了 Fedora Cloud Base 镜像,请创建一个名为cloudinit-user-data.yaml 的小型 YAML 文件,其中包含 virt-install 将使用的一些配置行:

#cloud-config
password: 'r00t'
chpasswd: { expire: false }

这个简单的云配置可以设置默认的 fedora 用户的密码。如果你想使用会过期的密码,可以将其设置为登录后过期。

创建并启动虚拟机:

$ 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 是虚拟机的名称,内存设置为 2000MiB,磁盘大小(虚拟硬盘)设置为 10GB,--cloud-initbacking_store 分别带有你创建的 YAML 配置文件和你下载的 Qcow2 镜像的绝对路径。

登录

在创建镜像后,你可以用用户名 fedora 和 YAML 文件中设置的密码登录(在我的例子中,密码是 r00t,但你可能用了别的密码)。一旦你第一次登录,请更改你的密码。

要关闭虚拟机的电源,执行 sudo poweroff 命令,或者按键盘上的 Ctrl+]

启动、停止和销毁虚拟机

virsh 命令用于启动、停止和销毁虚拟机。

要启动任何停止的虚拟机:

$ virsh start 

要停止任何运行的虚拟机:

$ virsh shutdown 

要列出所有处于运行状态的虚拟机:

$ virsh list

要销毁虚拟机:

$ virsh destroy 

销毁虚拟机

快速而简单

virt-install 命令与 --cloud-init 选项相结合,可以快速轻松地创建云就绪镜像,而无需担心是否有云来运行它们。无论你是在为重大部署做准备,还是在学习容器,都可以试试virt-install --cloud-init

在云计算工作中,你有喜欢的工具吗?请在评论中告诉我们。


via: https://opensource.com/article/21/1/cloud-image-virt-install

作者:Sumantro Mukherjee 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Docker的安装 与 环...
目录 一、Docker简介 Docker的应用场景 Docker ...
2024-03-25 12:32:13
【Docker学习系列】D...
在上一篇中,我们学会了在centos中安装docer...
2024-03-11 23:52:46
在裸机上建立 Linux ...
在 Fedora 上用 virt-install 创建云镜像。虚拟...
2024-03-02 06:56:13
如何在 Ubuntu Li...
如何下载并使用运行在 Ubuntu Linux 服务器上的 KVM...
2024-03-01 22:35:27

热门资讯

《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何理解Apache 2.0许... 提要:Apache 2.0许可证中的专利许可条款使得开源代码可以安全使用,但它经常被误解。Apach...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...