标签 虚拟机 下的文章

Vagrant 可以帮助你在你的电脑上运行其他操作系统,这意味着你可以构建、测试、疯狂折腾而不毁坏你的系统。

 title=

我使用 Vagrant 已经很长时间了。我使用几种 DevOps 工具,把它们全安装在一个系统上会搞得很乱。Vagrant 可以让你在不破坏系统的情况下随意折腾,因为你根本不需要在生产系统上做实验。

如果你熟悉 VirtualBoxGNOME Boxes,那么学习 Vagrant 很容易。Vagrant 有一个简单而干净的界面用于管理虚拟机。一个名为 Vagrantfile 的配置文件,允许你定制你的虚拟机(称为 “Vagrant 盒子 box ”)。一个简单的命令行界面让你启动、停止、暂停或销毁你的“盒子”。

考虑一下这个简单的例子。

假设你想写 Ansible 或 shell 脚本,在一个新的服务器上安装 Nginx。你不能在你自己的系统上这样做,因为你运行的可能不是你想测试的操作系统,或者没有所有的依赖项。启动新的云服务器进行测试可能会很费时和昂贵。这就是 Vagrant 派上用处的地方。你可以用它来启动一个虚拟机,用你的脚本来 配备 provision 它,并证明一切按预期工作。然后,你可以删除这个“盒子”,重新配备它,并重新运行你的脚本来验证它。你可以多次重复这个过程,直到你确信你的脚本在所有条件下都能工作。你可以将你的 Vagrantfile 提交给 Git,以确保你的团队正在测试完全相同的环境(因为他们将使用完全相同的测试机)。不会再有“但它在我的机器上运行良好!”这事了。

开始使用

首先,在你的系统上安装 Vagrant,然后创建一个新的文件夹进行实验。在这个新文件夹中,创建一个名为 Vagrantfile 的新文件,内容如下:

Vagrant.configure("2") do |config|

 config.vm.box = "ubuntu/hirsute64"

end

你也可以运行 vagrant init ubuntu/hirsute64,它将为你生成一个新的 Vagrant 文件。现在运行 vagrant up。这个命令将从 Vagrant 仓库中下载 ubuntu/hirsuite64 镜像。

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/hirsute64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/hirsute64' version '20210820.0.0' is up to date...
==> default: Setting the name of the VM: a_default_1630204214778_76885
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!

此时,如果你打开你的 Vagrant 后端(如 VirtualBox 或 virt-manager),你会看到你的“盒子”已经有了。接下来,运行 vagrant ssh 登录到“盒子”。如果你能看到 Vagrant 的提示符,那么你就进入了!

~ vagrant ssh
Welcome to Ubuntu 21.04 (GNU/Linux 5.11.0-31-generic x86_64)

* Documentation: <https://help.ubuntu.com>
* Management:   <https://landscape.canonical.com>
* Support:    <https://ubuntu.com/advantage>

 System information as of Sun Aug 29 02:33:51 UTC 2021

 System load: 0.01       Processes:        110
 Usage of /:  4.1% of 38.71GB  Users logged in:     0
 Memory usage: 17%        IPv4 address for enp0s3: 10.0.2.15
 Swap usage:  0%        IPv4 address for enp0s8: 192.168.1.20

0 updates can be applied immediately.

vagrant@ubuntu-hirsute:~$

Vagrant 使用“基础盒子”来建立你的本地机器。在我们的例子中,Vagrant 从 Hashicorp 的 Vagrant 目录下载 ubuntu/hirsuite64 镜像,并插入 VirtualBox 来创建实际的“盒子”。

共享文件夹

Vagrant 将你的当前文件夹映射到 Vagrant “盒子”中的 /vagrant。这允许你在你的系统和“盒子”里保持文件同步。这很适合测试 Nginx 网站,通过将你的文件根目录指向 /vagrant。你可以使用 IDE 进行修改,“盒子”里的 Nginx 会提供这些修改。

Vagrant 命令

有几个 Vagrant 命令,你可以用它们来控制你的“盒子”。

其中一些重要的命令是:

  • vagrant up:启动一个“盒子”。
  • vagrant status:显示当前“盒子”的状态。
  • vagrant suspend:暂停当前的“盒子”。
  • vagrant resume:恢复当前的“盒子”。
  • vagrant halt:关闭当前的“盒子”。
  • vagrant destroy:销毁当前的“盒子”。通过运行此命令,你将失去存储在“盒子”上的任何数据。
  • vagrant snapshot:对当前的“盒子”进行快照。

试试 Vagrant

Vagrant 是一个使用 DevOps 原则进行虚拟机管理的工具,久经时间考验。配置你的测试机,与你的团队分享配置,并在一个可预测和可重复的环境中测试你的项目。如果你正在开发软件,那么通过使用 Vagrant 进行测试,你将为你的用户提供良好的服务。如果你不开发软件,但你喜欢尝试新版本的操作系统,那么没有比这更简单的方法了。今天就试试 Vagrant 吧!

这篇文章最初发表在 作者的个人博客 上,经许可后被改编。


via: https://opensource.com/article/21/9/test-vagrant

作者:Ayush Sharma 选题:lujun9972 译者:geekpi 校对:wxy

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

用 Forklift 将你的虚拟化工作负载过渡到 Kubernetes。

 title=

2017 年,KubeVirt 团队 发起 了一个在 Kubernetes 中管理容器及相关的虚拟机(VM)的项目。这个开源项目的意图是让虚拟机成为这个环境中的一等公民。

自从在 2018 年开源峰会 上推出以来,KubeVirt 一直在不断成熟和发展。它在 GitHub 上已经达到了 200 多颗星,甚至在 2021 年 2 月推出了自己的活动:KubeVirt 峰会

 title=

KubeVirt 架构(© 2020,Red Hat OpenShift

KubeVirt 是 OpenShift 虚拟化 的基础,它帮助开发者将虚拟机带入容器化工作流程。

在 Kubernetes 中使用虚拟机

KubeVirt 使你能够在虚拟机上原生使用 Kubernetes。这意味着它们可以连接到使用标准 Kubernetes 方法(如服务、路由、管道等)访问的 吊舱 Pod 网络。应用于虚拟机吊舱的网络策略与应用于应用吊舱的方式相同,它提供一个一致的模型来管理虚拟机到吊舱(或反之)的通信。

这方面的一个真实例子是一家航空公司利用旧的模拟器软件的方式。它注入了人工智能和机器学习 (AI/ML) 的模型,然后在基于虚拟机的模拟器上自动部署和测试它们。这使得它能够使用 Kubernetes 和 Kubeflow 完全自动化地获得测试结果和新的遥测训练数据。

 title=

(Konveyor, CC BY-SA 4.0

Konveyor.io 是一个开源项目,帮助现有工作负载(开发、测试和生产)过渡到 Kubernetes。其工具包括将容器从一个 Kubernetes 平台转移到另一个平台的 Crane;将工作负载从 Cloud Foundry 带到 Kubernetes的 Move2Kube;以及分析 Java 应用,使其对 Kubernetes 等容器化平台中的运行时更加标准和可移植,从而使其现代化的 Tackle

这些工具在转化模式中很有用,但许多项目希望在早期阶段利用 Kubernetes,以变得更加敏捷和富有成效。在基础设施方面,这些好处可能包括蓝/绿负载均衡、路由管理、声明式部署,或(取决于你的部署方式)由于不可变的基础设施而更容易升级。在开发方面,它们可能包括将持续集成/持续开发 (CI/CD) 管道与平台整合,使应用更快地投入生产,自我提供资源,或整合健康检查和监控。

KubeVirt 可以通过在 Kubernetes 环境中以虚拟机来运行工作负载帮助你。它能让你的工作负载迅速使用 Kubernetes,享受它的好处,并随着时间的推移稳步实现工作负载的现代化。但是,仍然有一个问题,就是把你的虚拟机从传统的虚拟化平台带到现代的 Kubernetes 平台。这就是 Konveyor 的 Forklift 项目的意义所在。

关于 Forklift

Forklift 使用 KubeVirt 将不同来源的虚拟化工作负载迁移到 Kubernetes。它的设计目标是使任务变得简单,以便你可以从一两台机器到数百台机器迁移任何东西。

迁移是一个简单的、三阶段的过程:

  1. 连接到一个现有的虚拟化平台(称为“源提供者”)和一个 Kubernetes 环境(“目标提供者”)。
  2. 将网络和存储资源从源提供者映射到目标提供者,在两者中寻找等价的资源。
  3. 选择要迁移的虚拟机,分配网络和存储映射,制定迁移计划。然后运行它。

如何开始

要开始使用 Forklift,首先,你需要一个兼容的源提供商。你还需要一个带有 KubeVirt 0.40 或更新版本的 Kubernetes 环境和裸机节点(尽管为了测试,你可以使用嵌套虚拟化)。用读-写-执行 (RWX) 功能配置你的存储类,并使用 Multus 配置你的网络,以匹配你的虚拟机在源提供者中使用的网络。(如果你不能这样做,也不用担心。你也可以选择重新分配 IP 地址。)

最后,使用提供的操作器在你的 Kubernetes 上安装 Forklift,并进入用户界面,开始运行你的第一次测试迁移。

Forklift 是 Red Hat 的 虚拟化迁移工具套件 的上游版本。因此,如果你想在生产环境中使用它,你可以考虑使用该工具的支持版本。

迁移愉快!


via: https://opensource.com/article/21/6/migrate-vms-kubernetes-forklift

作者:Miguel Perez Colino 选题:lujun9972 译者:geekpi 校对:wxy

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

下面是你迟早会遇到的情况。

你在 VirtualBox 中安装了一个或多个操作系统。在创建这些虚拟操作系统的同时,你还在 VirtualBox 中为它们创建了虚拟硬盘。

你指定了虚拟磁盘的最大大小,比如说 15 或 20GB,但现在使用了一段时间后,你发现你的虚拟机已经没有空间了。

虽然在 Ubuntu 和其他操作系统上有释放磁盘空间的方法,但更稳健的处理方式是增加 VirtualBox 中创建的虚拟机的磁盘大小。

是的,你可以在 VirtualBox 中扩大虚拟硬盘,即使在创建之后也可以。虽然这是一个安全且经过测试的过程,但我们强烈建议你在执行这样的操作之前,先创建一个虚拟机的备份。

如何扩大 VirtualBox 磁盘大小

我将向你展示如何在 VirtualBox 中以图形和命令行(对于 Linux 极客)方式调整磁盘大小。这两种方法都很简单直接。

方法 1:在 VirtualBox 中使用虚拟媒体管理器

VirtualBox 6 增加了一个调整虚拟磁盘大小的图形化选项。你可以在 VirtualBox 主页的文件选项卡中找到它。

进入 “File -> Virtual Media Manager”:

在列表中选择一个虚拟机,然后使用 “Size” 滑块或输入你需要的大小值。完成后点击 “Apply”。

请记住,虽然你增加了虚拟磁盘的大小,但如果你的空间是动态分配的,那么实际的分区大小仍然不变

方法 2:使用 Linux 命令行增加 VirtualBox 磁盘空间

如果你使用 Linux 操作系统作为宿主机,在宿主机中打开终端并输入以下命令来调整 VDI 的大小:

VBoxManage modifymedium "/path_to_vdi_file" --resize <megabytes>

在你按下回车执行命令后,调整大小的过程应该马上结束。

注意事项

VirtualBox 早期版本命令中的 *modifyvdimodifyhd 命令也支持,并在内部映射到 modifymedium 命令。

如果你不确定虚拟机的保存位置,可以在 VirtualBox 主页面点击 “Files -> Preferences” 或使用键盘快捷键 Ctrl+G 找到默认位置。

总结

就我个人而言,我更喜欢在每个 Linux 发行版上使用终端来扩展磁盘,图形化选项是最新的 VirtualBox 版本的一个非常方便的补充。

这是一个简单快捷的小技巧,但对 VirtualBox 基础知识是一个很好的补充。如果你觉得这个小技巧很有用,可以看看 VirtualBox 客户端增强包的几个功能。


via: https://itsfoss.com/increase-disk-size-virtualbox/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:geekpi 校对:wxy

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

本文向你展示如何在 Fedora 31 上使用安装 Cockpit 所需软件来创建和管理虚拟机。Cockpit 是一个交互式管理界面,可让你在任何受支持的 Web 浏览器上访问和管理系统。随着 virt-manager 逐渐被废弃,鼓励用户使用 Cockpit 来替换它。

Cockpit 是一个正在活跃开发的项目,它有许多扩展其工作的插件。例如,其中一个是 “Machines”,它与 libvirtd 交互并允许用户创建和管理虚拟机。

安装软件

先决所需软件是 libvirtcockpitcockpit-machines。要将它们安装在 Fedora 31 上,请在终端使用 sudo 运行以下命令:

$ sudo dnf install libvirt cockpit cockpit-machines

Cockpit 也在 “Headless Management” 软件包组中。该软件组对于仅通过网络访问的基于 Fedora 的服务器很有用。在这里,请使用以下命令进行安装:

$ sudo dnf groupinstall "Headless Management"

设置 Cockpit 服务

安装了必要的软件包后,就该启用服务了。libvirtd 服务运行虚拟机,而 Cockpit 有一个激活的套接字服务,可让你访问 Web GUI:

$ sudo systemctl enable libvirtd --now
$ sudo systemctl enable cockpit.socket --now

这应该足以运行虚拟机并通过 Cockpit 对其进行管理。(可选)如果要从网络上的另一台设备访问并管理计算机,那么需要将该服务开放给网络。为此,请在防火墙配置中添加新规则:

$ sudo firewall-cmd --zone=public --add-service=cockpit --permanent
$ sudo firewall-cmd --reload

要确认服务正在运行并且没有发生任何问题,请检查服务的状态:

$ sudo systemctl status libvirtd
$ sudo systemctl status cockpit.socket

此时一切都应该正常工作。Cockpit Web GUI 应该可通过 https://localhost:9090或https://127.0.0.1:9090 访问。或者,在连接到同一网络的任何其他设备上的 Web 浏览器中输入本地网络 IP。(如果未设置 SSL 证书,那么可能需要允许来自浏览器的连接。)

创建和安装机器

使用系统的用户名和密码登录界面。你还可以选择是否允许在此会话中将密码用于管理任务。

选择 “Virtual Machines”,然后选择 “Create VM” 来创建一台新的虚拟机。控制台为你提供几个选项:

  • 使用 Cockpit 的内置库下载操作系统
  • 使用系统上已下载的安装媒体
  • 指向系统安装树的 URL
  • 通过 PXE 协议通过网络引导媒体

输入所有必要的参数。然后选择 “Create” 启动新虚拟机。

此时,将出现一个图形控制台。大多数现代 Web 浏览器都允许你使用键盘和鼠标与 VM 控制台进行交互。现在,你可以完成安装并使用新的 VM,就像过去通过 virt-manager 一样。

照片由 Miguel Teixeira 发布于 Flickr(CC BY-SA 2.0)


via: https://fedoramagazine.org/create-virtual-machines-with-cockpit-in-fedora/

作者:Karlis Kavacis 选题:lujun9972 译者:geekpi 校对:wxy

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

virt-manager 为 Linux 虚拟化提供了全方位的选择。

在我关于 GNOME Boxes系列文章中,我已经解释了 Linux 用户如何能够在他们的桌面上快速启动虚拟机。当你只需要简单的配置时,Box 可以轻而易举地创建虚拟机。

但是,如果你需要在虚拟机中配置更多详细信息,那么你就需要一个工具,为磁盘、网卡(NIC)和其他硬件提供全面的选项。这时就需要 虚拟机管理器(Virtual Machine Manager)(virt-manager)了。如果在应用菜单中没有看到它,你可以从包管理器或命令行安装它:

  • 在 Fedora 上:sudo dnf install virt-manager
  • 在 Ubuntu 上:sudo apt install virt-manager

安装完成后,你可以从应用菜单或在命令行中输入 virt-manager 启动。

 title=

为了演示如何使用 virt-manager 创建虚拟机,我将设置一个 Red Hat Enterprise Linux 8 虚拟机。

首先,单击 “ 文件 File ” 然后点击 “ 新建虚拟机 New Virtual Machine ”。Virt-manager 的开发者已经标记好了每一步(例如,“ 第 1 步,共 5 步 Step 1 of 5 ”)来使其变得简单。单击 “ 本地安装介质 Local install media ” 和 “ 下一步 Forward ”。

 title=

在下个页面中,选择要安装的操作系统的 ISO 文件。(RHEL 8 镜像位于我的下载目录中。)Virt-manager 自动检测操作系统。

 title=

在步骤 3 中,你可以指定虚拟机的内存和 CPU。默认值为内存 1,024MB 和一个 CPU。

 title=

我想给 RHEL 充足的配置来运行,我使用的硬件配置也充足,所以我将它们(分别)增加到 4,096MB 和两个 CPU。

下一步为虚拟机配置存储。默认设置是 10GB 硬盘。(我保留此设置,但你可以根据需要进行调整。)你还可以选择现有磁盘镜像或在自定义位置创建一个磁盘镜像。

 title=

步骤 5 是命名虚拟机并单击“ 完成 Finish ”。这相当于创建了一台虚拟机,也就是 GNOME Boxes 中的一个 Box。虽然技术上讲是最后一步,但你有几个选择(如下面的截图所示)。由于 virt-manager 的优点是能够自定义虚拟机,因此在单击“ 完成 Finish ”之前,我将选中“ 在安装前定制配置 Customize configuration before install ”的复选框。

因为我选择了自定义配置,virt-manager 打开了一个有一组设备和设置的页面。这里是重点!

这里你也可以命名该虚拟机。在左侧列表中,你可以查看各个方面的详细信息,例如 CPU、内存、磁盘、控制器和许多其他项目。例如,我可以单击 “CPU” 来验证我在步骤 3 中所做的更改。

 title=

我也可以确认我设置的内存量。

当虚拟机作为服务器运行时,我通常会禁用或删除声卡。为此,请选择 “ 声卡 Sound ” 并单击 “ 移除 Remove ” 或右键单击 “ 声卡 Sound ” 并选择 “ 移除硬件 Remove Hardware ”。

你还可以使用底部的 “ 添加硬件 Add Hardware ” 按钮添加硬件。这会打开 “ 添加新的虚拟硬件 Add New Virtual Hardware ” 页面,你可以在其中添加其他存储设备、内存、声卡等。这就像可以访问一个库存充足的(虚拟)计算机硬件仓库。

 title=

对 VM 配置感到满意后,单击 “ 开始安装 Begin Installation ”,系统将启动并开始从 ISO 安装指定的操作系统。

Begin installing the OS

完成后,它会重新启动,你的新虚拟机就可以使用了。

 title=

Virtual Machine Manager 是桌面 Linux 用户的强大工具。它是开源的,是专有和封闭虚拟化产品的绝佳替代品。


via: https://opensource.com/article/19/9/introduction-virtual-machine-manager

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

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

Boxes 是 GNOME 上的虚拟机应用。最近 Boxes 添加了一个新的特性,使得它在运行不同的 Linux 发行版时更加容易。你现在可以在 Boxes 中自动安装那些发行版以及像 FreeBSD 和 FreeDOS 这样的操作系统,甚至还包括红帽企业 Linux。红帽开发者计划包括了一个红帽企业版 Linux 的免费订阅。 使用红帽开发者帐户,Boxes 可以自动设置一个名为 Developer Suite 订阅的 RHEL 虚拟机。 下面是它的工作原理。

红帽企业版 Linux

要创建一个红帽企业版 Linux 的虚拟机,启动 Boxes,点击“新建”。从源选择列表中选择“下载一个镜像”。在顶部,点击“红帽企业版 Linux”。这将会打开网址为 developers.redhat.com 的一个 Web 表单。使用已有的红帽开发者账号登录,或是新建一个。

如果这是一个新帐号,Boxes 在继续之前需要一些额外的信息。这一步需要在账户中开启开发者订阅。还要确保 接受条款和条件,这样可以在之后的注册中节省一步。

点击“提交”,然后就会开始下载安装磁盘镜像。下载需要的时间取决于你的网络状况。在这期间你可以去喝杯茶或者咖啡歇息一下。

等介质下载完成(一般位于 ~/Downloads ),Boxes 会有一个“快速安装”的显示。填入账号和密码然后点击“继续”,当你确认了虚拟机的信息之后点击“创建”。“快速安装”会自动完成接下来的整个安装!(现在你可以去享受你的第二杯茶或者咖啡了)

等到安装结束,虚拟机会直接重启并登录到桌面。在虚拟机里,在应用菜单的“系统工具”一栏启动“红帽订阅管理”。这一步需要输入 root 密码。

单击“注册”按钮,然后按照注册助手中的步骤操作。 出现提示时,使用你的红帽开发者帐户登录。

现在你可以通过任何一种更新方法,像是 yum 或是 GNOME Software 进行下载和更新了。

FreeDOS 或是其他

Boxes 可以安装很多操作系统,而不仅仅只是红帽企业版。 作为 KVM 和 qemu 的前端,Boxes 支持各种操作系统。使用 libosinfo,Boxes 可以自动下载(在某些情况下安装)相当多不同操作系统。

要从列表中安装一个操作系统,只需选择并完成创建一个新的虚拟机。一些操作系统,比如 FreeDOS,并不支持快速安装。这些操作系统需要虚拟机从安装介质中引导。之后你可以手动安装。

Boxes 上流行的操作系统

这里仅仅是一些目前在它上面比较受欢迎的选择。

Fedora 会定期更新它的操作系统信息数据库(osinfo-db)。确保你会经常检查是否有新的操作系统选项。


via: https://fedoramagazine.org/download-os-gnome-boxes/

作者:Link Dupont 选题:lujun9972 译者:dianbanjiu 校对:wxy

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