16 使用 Vagrant 管理虚拟机 #
Vagrant 工具为创建、部署和管理虚拟开发环境提供统一的工作流程。下列章节介绍如何使用 Vagrant 管理虚拟机。
16.1 Vagrant 简介 #
Vagrant 通过一个简单的配置文件为各种虚拟化提供程序提供了一个抽象层,可让开发人员和操作人员快速启动运行 Linux 或任何其他操作系统的虚拟机 (VM)。
16.1.1 Vagrant 概念 #
Vagrant 使用提供器
、配置器
、盒子
(box) 及 Vagrantfile
作为虚拟机的组建模块。
- 提供器
用于设置和创建虚拟环境的服务。Vagrant 原生支持 VirtualBox 和 Microsoft Hyper-V 虚拟化以及 Docker 容器。通过插件来支持
libvirt
、VMware 或 AWS 等其他服务。- 配置器
用于自定义虚拟环境配置的工具。Vagrant 不仅构建了内置的提供器用于上载文件、同步目录或执行外壳命令,同时还支持 Ansible、CFEngine、Chef、Puppet 和 Salt 等配置管理系统。
- Vagrantfile
虚拟环境的配置文件和文件名 (
Vagrantfile
)。其中包含计算机和软件要求,以及创建可直接用于开发的盒子所需执行的所有步骤。- 盒子
虚拟环境的格式和扩展名 (
*.box
)。可以从 Vagrant Cloud 下载盒子,也可将盒子从一台计算机复制到另一台计算机,以复制环境。SUSE 使用 VirtualBox 和
libvirt
提供器提供适用于 SUSE Linux Enterprise 的官方 Vagrant 盒子。SUSE Linux Enterprise Server 盒子适用于 AMD64/Intel 64 和 AArch64 体系结构,而 SUSE Linux Enterprise Desktop 仅适用于 AMD64/Intel 64。
16.1.2 Vagrant 示例 #
可以使用 Vagrant 通过下面一组命令启动新 VM。此示例使用适用于 openSUSE Tumbleweed 的官方 Vagrant 盒子(可从 Vagrant Cloud 获取)。
下载适用于 openSUSE Tumbleweed 的 Vagrant 盒子:
vagrant
init opensuse/Tumbleweed.x86_64
这还会在 Vagrant 中注册该盒子并创建
Vagrantfile
。(可选) 编辑
Vagrantfile
以自定义环境。启动盒子:
vagrant
up
通过
ssh
访问盒子:vagrant
ssh
16.2 适用于 SUSE Linux Enterprise 的 Vagrant 盒子 #
从 SUSE Linux Enterprise 15 SP2 开始,SUSE 使用 VirtualBox 和 libvirt
提供器提供适用于 SUSE Linux Enterprise 的官方 Vagrant 盒子。SUSE Linux Enterprise Server 盒子适用于 AMD64/Intel 64 和 AArch64 体系结构,而 SUSE Linux Enterprise Desktop 仅适用于 AMD64/Intel 64。
为缩减大小,这些盒子打包在极其精简的软件包中,它们并未注册,因此用户在进一步配置之前需要注册盒子。
只能从 https://download.suse.com 直接下载盒子。因此,必须按如下所示将下载的盒子手动注册到 Vagrant 中:
vagrant
box add --name SLES-15-SP2 \ /path/to/SLES15-SP2-Vagrant.x86_64-15.2-libvirt-*.vagrant.libvirt.box
然后,该盒子的名称将会显示为 SLES-15-SP2
,您可以像使用其他 Vagrant 盒子一样使用它:
vagrant
init SLES-15-SP2
vagrant
up
vagrant
ssh
16.3 更多资料 #
有关 Vagrant 及其配置的详细信息,请参见 https://docs.vagrantup.com/ 上的官方文档。