如何在 Linux 上开始使用 Vagrant如何在 Linux 上开始使用 Vagrant如何在 Linux 上开始使用 Vagrant如何在 Linux 上开始使用 Vagrant
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上开始使用 Vagrant

专业的 DevOps 团队经常在虚拟化环境中部署他们的开发系统。虚拟化使 DevOps 团队能够轻松快速地复制必要的操作系统环境来构建、测试和部署其开发系统。这些一次性虚拟环境表明,如果正确理解和管理,虚拟化可以变得多么灵活和强大。然而,这种灵活性虽然有利,但可能会带来一些 Vagrant 旨在纠正的管理困难。因此,我们准备了本教程来帮助您了解 Vagrant 的强大功能,并指导您快速掌握 Vagrant 的实战技能。

介绍

Vagrant 是一款基于命令行的开源工具,可用于 Windows、MacOS 和 GNU/Linux,允许以自动化方式生成可复制和可共享的开发环境。为此,Vagrant 从一个简单的配置文件创建和配置虚拟机或轻量级容器,该配置文件可以轻松地与其他团队成员共享,以确保他们工作的系统的一致性。 Vagrant 本质上是一个瘦管理软件,位于虚拟化管理程序或容器运行时之上,用于虚拟环境上任何类型的自定义配置。默认情况下,Vagrant 使用 VirtualBox 作为底层虚拟机引擎,但也可以选择使用 VMware Workstation、KVM 或 Docker。

为什么使用 Vagrant?

当作为团队开发项目或在不同的计算机上工作时,不同环境中的开发设置或操作系统配置可能会有所不同。这可能是一个很容易解决的问题,也可能是一个真正令人头痛的问题,因为我们必须找出我们配置的错误,或者为什么在一台机器上它可以工作,而在另一台机器上却不能。

一遍又一遍地设置相同的工作环境是一项重复且令人疲惫的工作,没有人愿意做。因此,使用虚拟机似乎是最合乎逻辑的解决方案。然而,大规模配置和部署虚拟机也可能变得重复和繁琐,这就是 Vagrant 的用武之地。

Vagrant 可以通过简单的配置文件来安装和配置虚拟机。因此,只需共享文件并从终端运行它,就会自动为您创建一个具有正确配置的新虚拟机。在后台,Vagrant 将根据指定的配置配置用户凭据、共享文件夹、SSH 连接、创建 HTTP 隧道等。

由于虚拟机配置是一个简单的纯文本文件,因此我们可以将其与项目代码的其余部分一起包含在版本控制的存储库中。这样,加入团队的新开发人员可以简单地克隆项目存储库并运行 Vagrant,以获得与团队其他成员完全相同的开发环境。

在 Ubuntu Server 20.04 上安装 Vagrant

对于 Debian 或 Ubuntu 等发行版,安装过程非常简单,因为 Vagrant 位于官方存储库中。但是,官方网站上的版本是可用的最新版本,因此最好从官方来源下载软件包以确保您拥有最新的稳定版本。

在终端环境中,首先升级发行版:


$ sudo apt update
$ sudo apt upgrade

我们将使用 VirtualBox 作为 Vagrant 的虚拟化管理程序。因此,在安装Vagrant之前,需要先安装VirtualBox。


$ sudo apt install virtualbox

该过程完成后,您需要检查哪个是 Vagrant 的最新稳定版本。您可以从该项目的网站上执行此操作。

目前 Vagrant 的最新稳定版本是2.2.14,可以使用 wget 下载 Ubuntu 的 DEB 包。


$ cd /tmp/
$ wget -c https://releases.hashicorp.com/vagrant/2.2.14/vagrant_2.2.14_x86_64.deb

下载 Vagrant 的最新稳定版本后,您可以使用 apt 进行安装。


$ sudo apt install ./vagrant_2.2.14_x86_64.deb

这将开始安装依赖项和 Vagrant 本身的过程。之后,您就可以开始使用 Vagrant。

例如,使用以下命令检查已安装的版本:


$ vagrant --version

Vagrant 2.2.14

在 Debian 10 上安装 Vagrant

Debian 是最流行、最可靠的 Linux 发行版之一。因此了解如何在最新的 Debian 版本上安装 Vagrant 是有意义的。

首先,您必须满足 VirtualBox 依赖关系。由于该软件包不在官方存储库中,因此您必须添加 Debian 的 Oracle 存储库。因此,打开终端并运行以下命令来安装所需的包。


$ sudo apt update
$ sudo apt install software-properties-common

现在,将 GPG 密钥从存储库导入到系统中。这可以保护进程并告诉系统该存储库是可信的。

接下来,通过在 /etc/apt/sources.list 文件末尾运行以下行来添加存储库:


deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib

现在你可以通过运行以下命令来安装 Vagrant:


$ sudo apt update
$ sudo apt install vagrant

您可以通过运行以下命令来检查安装是否成功:


$ vagrant --version

vagrant 2.2.14

在 CentOS 8 上安装 Vagrant

对于 CentOS 8,该过程也很简单,甚至有些相似。首先,您必须安装 VirtualBox,它不在发行版的官方存储库中。您可以使用外部存储库安装它。

要在 CentOS 8 存储库上添加 VirtualBox,只需运行:


$ sudo dnf config-manager --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo

现在您可以安装 VirtualBox 软件包:


$ sudo dnf install VirtualBox-6.0

在此过程中,您必须接受存储库中的 GPG 密钥。接受它将开始该过程。

系统上安装了 VirtualBox 后,继续安装 Vagrant 的最新稳定版本,但与上一节不同的是,我们需要下载 CentOS 8 的 RPM 包。

为此,您可以使用以下命令:


$ sudo dnf install https://releases.hashicorp.com/vagrant/2.2.14/vagrant_2.2.14_x86_64.rpm

请记住,当 Vagrant 发布新的稳定版本时,该命令将会更改,因此请密切关注。

然后,您可以通过显示已安装的版本来检查 Vagrant 是否已正确安装:


$ vagrant --version

Vagrant 2.2.14

Vagrant 的第一步

一旦 Vagrant 安装并正确配置,您需要定义新项目的位置(所谓的“项目目录”)。项目目录的位置由您决定,并通过创建将在其中托管项目的新文件夹来定义。项目目录稍后将有一个 Vagrant 创建的名为 Vargantfile 的配置文件,Vagrant 存储该项目的所有设置的位置。

继续为当前用户创建一个具有足够权限的项目目录。


$ mkdir vagrant-project

您可以将 vagrant-project 替换为您想要的任何名称和位置。

然后,进入项目目录。


$ cd vagrant-project

进入该目录后,您需要告诉 Vagrant 这是您的项目所在的位置。为此,请运行 vargrant init 子命令。


$ vagrant init

初始化后,将创建一个框架 Vagrantfile 文件。该文件将定义的内容包括:项目基目录的位置、运行项目所需的机器和资源类型、需要安装的软件以及访问方式等。您可以像编辑任何文本文件一样编辑 Vagrantfile。

下一步是添加虚拟机,或者 Vagrant 所说的“盒子”。您可以下载许多预定义的盒子,您可以从官方目录中查看可用盒子的列表。

选择要创建的虚拟机后,只需运行以下命令即可添加它:


$ vagrant box add [box-name]

这将触发下载所选框的图像。在本教程中,我添加了一个 Ubuntu 18.04 vagrant box,并使用 VirtualBox 实例化它。


$ vagrant box add hashicorp/bionic64

Box 本地存储在设置 Vagrant 的计算机上。每个 Vagrant 项目都使用已安装的 box 作为基础镜像进行克隆,并且从不实际修改基础镜像本身。如果您有两个项目都使用刚刚添加的同一框,则在一个来宾虚拟机中添加/修改文件不会影响另一台来宾计算机。

要开始使用虚拟机,请运行:


$ vagrant up

这将启动虚拟机。

访问和停止新创建的 Box

Vagrant 允许 SSH 访问已创建的虚拟机。为此,只需运行:


$ vagrant ssh 

这将允许您访问虚拟机的命令行并在 GNU/Linux 计算机上执行所有常见操作。

默认情况下,Vagrant 将当前目录(vagrant init 完成的目录,以及 Vagrantfile 所在的目录)配置为与虚拟机的共享目录。这意味着虚拟机将能够访问其中的所有文件。

如果您想停止虚拟机,您有以下三种选择:

  • vagrant suspend:暂停虚拟机,将当前状态保存在硬盘上。命令vagrant up将立即重新启动机器,并保持其停止时的确切状态。

  • vagranthalt:执行虚拟机的受控关闭(与关闭物理机相同)。

  • vagrant destroy:销毁虚拟机及其所有内容。

因此您可以运行适合您需要的那个。

使用 Vagrant 文件配置 Box

Vagrant 的强大之处在于它的 Vagrantfile,它可以像普通文件一样进行编辑,并且允许您执行许多不同的操作。

要编辑它,您可以使用您选择的文本编辑器。


$ nano Vagrantfile

您可以在 Vagrantfile 中定义的一些典型配置包括:


config.vm.hostname = "example".

它允许您定义虚拟机的主机名。

在配置部分中,您还可以更改或添加以下参数:


vb.name = [name]
vb.memory = 512
vb.cpus = 2

在本例中,我们分配 512Mb RAM 和两个处理器内核。

您还可以添加启动虚拟机时将执行的命令脚本。如果您想在虚拟机上执行一次性安装或启动配置,这会很方便。在 vb.vm.provision "shell" 部分下,添加您希望在虚拟机启动时立即执行的命令。例如:


vb.provision "shell", inline: <<-SHELL
apt-get update
apt-get upgrade
apt-get install apache2 -y
SHELL

这将在虚拟机启动后立即安装 Apache HTTP 服务器。如果虚拟机已启动并正在运行,请通过运行以下命令重新加载它:


$ vagrant reload --provisioning

这样,您将看到如何安装该软件包。

一般来说,启动脚本可能会更加复杂,安装必要的工具链并设置内部开发环境,以便运行它的每个人都将拥有与您相同的工作环境。

启用网络

虚拟机的一个重要方面是网络,因此在 Vagrantfile 中找到 config.vm.network 或类似部分。

您有三个网络选项:

  • 端口转发:进行端口映射,将主机(物理机)端口的流量重定向到虚拟机端口。

  • 专用网络:创建另一个只能从主机访问的专用网络。

  • 桥接网络:使来宾充当主机本地网络中的另一台计算机。

当您选择适合您需要的一个时,您可以取消注释该行或添加以下行:


config.vm.network : bridge_network

保存文件并应用更改,运行:


$ vagrant reload

这样您就可以从一个简单的文本文件配置整个虚拟机。

结论

Vagrant 是一款方便的 DevOps 工具,旨在通过自动提供定制虚拟机环境来简化您的开发工作流程。它提供了虚拟化管理界面,您可以在其中通过简单的文本文件配置虚拟机中所需的所有内容。最棒的是,该文件可以在 DevOps 团队成员之间共享,他们将获得根据您的需求预先配置的虚拟机。

希望本教程能够为您提供足够的知识,帮助您轻松开始使用 Vagrant。任何关于 Vagrant 缺少的有用功能的评论或反馈都是非常受欢迎的。

©2015-2025 艾丽卡 support@alaica.com