这个 Vagrantfile 配置究竟意味着什么?在这个特定的 Apache Storm 示例中,他们 vagrant up 声明了什么?

How exactly means this Vagrantfile conguration? What do thevagrant up statment in this specific Apache Storm example?

我对 Vagrant 和 Apache Storm 完全陌生。

我正在学习在线课程,其中显示以下情况。

1) Virtual Box

上安装了一个 Ubuntu 虚拟机

2) 在主机上(与安装 Virtual Box 和 运行 来宾 Ubuntu VM 的位置相同)安装了 Vagrant。

好的,所以在本教程中,首先通过以下命令从 github 下载包含一些项目的目录:

git clone https://github.com/Udacity/ud381

在我的主机 Windows 机器上创建此目录:

C:\Users\Andrea\Documents\workspaces\Real-Time\ud381

正如您在之前的 github 存储库中看到的那样,此目录包含一个 Vagrantfile,其中包含:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "udacity/ud381"
  config.vm.network :forwarded_port, guest: 5000, host: 5000
end

据我了解,Vagrantfile 代表 Vagrant 配置,我认为它代表 link 和我拥有的 Ubuntu 来宾虚拟机之前安装在VirtualBox上(我自己安装过不知道对不对)

在我的 Vagrantfile 中究竟是什么代表了之前的配置?

我认为 udacity/ud381 是 VirtualBox 上的虚拟机名称,但我完全不确定。

然后在教程中显示,使用 shell,我必须进入包含 Vagrantfile 的目录(这个:C:\Users\Andrea\Documents\workspaces\Real-Time\ud381) 并执行此语句:

vagrant up

好像开始下载东西了(很慢)。它在做什么?它在下载什么?

Tnx

udacity/ud381 是对 vagrant box located on atlas.hashicorp : https://atlas.hashicorp.com/udacity/boxes/ud381

的引用

当您使用此 Vagrantfile 执行 vagrant up 时,它会使用您指定的框创建一个新的 VM,如果该框不在您的系统中,它将尝试下载,因此它看起来很慢.此外 vagrant up 使用同一个盒子会更快,因为它将从本地盒子创建 VM。

如果你打算使用 vagrant,你应该让它管理 VM 而不要自己在 VirtualBox 中创建 VM(有一些方法可以做到这一点 link 但那不是微不足道的而且不确定它是否支持的)。理想情况下,当你用 vagrant (init, up, ssh ...) 做一个完整的循环时,尽量不要启动 VirtualBox 一次,你会看到它有多顺利