Vagrant 说 'not created'。如何添加新的 box 文件?
Vagrant says 'not created'. How do I add a new box file?
我正在我的 Windows 10 上创建一个带有 vagrant 的虚拟开发环境。我已经安装了名称为 'dev1'(它是 CentOS7.0)的盒子。
我想添加一个名为'dev2'的新盒子(CentOS6.7)。
所以我尝试通过下面的命令添加一个框
$ vagrant box add dev2 [box path]
之后,添加成功。
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
然后我 $ vagrant init'
编辑 vagrantfile 如下
Vagrant.configure("2") do |config|
config.vm.define "dev1" do |dev1|
dev1.vm.hostname = "dev1"
dev1.vm.box = "bento/centos-7.2"
dev1.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "dev2" do |dev2|
dev2.vm.hostname = "dev2"
dev2.vm.box = "bento/centos-6.7"
dev2.vm.network "private_network", ip:"172.16.1.2"
end
end
完成编辑,我输入命令 $ vagrant status
但它显示:
Current machine states:
dev1 poweroff (virtualbox)
dev2 not created (virtualbox)
正在启动 virtualbox 管理器,它没有显示 'dev2' 的信息。
当我尝试 $ vagrant up dev2
时,它开始下载 CentOS6.7 box 文件而不是启动我之前添加的 'dev2'...
如何在现有环境之外添加新盒子?
提前谢谢你。
您在 vagrant 配置中添加的框与您在 Vagrantfile 中使用的名称不匹配。
如果您添加了框并在输出中为它们命名
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
此名称必须与 Vagrantfile 中 config.vm.box
的值匹配,因此您需要在 Vagrantfile
中使用这些 dev1
和 dev2
名称
Vagrant.configure("2") do |config|
config.vm.define "dev1" do |dev1|
dev1.vm.hostname = "dev1"
dev1.vm.box = "dev1"
dev1.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "dev2" do |dev2|
dev2.vm.hostname = "dev2"
dev2.vm.box = "dev2"
dev2.vm.network "private_network", ip:"172.16.1.2"
end
end
在你的情况下,我不确定你为什么将盒子添加为 dev1 和 dev2。您似乎对 vagrant box 和虚拟机有些混淆。
我建议保留 Vagrantfile,就像你参考便当盒一样,删除 dev1/2 框,只保留 运行 vagrant up
。 Vagrant 将下载便当盒,将它们添加到您的配置中,并将启动 dev1 和 dev2 虚拟机。
我也收到了同样的消息,在尝试了每个 Vagrant's guide.
的 vagrant package --base 命令之后
$ vagrant package --base my-virtual-machine
`VM not created. Moving on...`
具体来说,要使其正常工作,您必须检查并使用您可能通过 Vagrantfile 预设的确切名称,并且 config.vm.name =“您选择的名称”。您还将看到它显示在 VirtualBox 中(除非您更改了它)。
这是我测试得出的默认名称的示例屏幕截图。
我正在使用 Powershell,所以这是我的输出:
PS C:\Users\USER\OneDrive\Documents\Projects\Vagrant2> vagrant package --base Vagrant2_default_1598799939605_1106
==> Vagrant2_default_1598799939605_1106: Exporting VM...
==> Vagrant2_default_1598799939605_1106: Compressing package to: C:/Users/USER/OneDrive/Documents/Projects/Vagrant2/package.box
我正在我的 Windows 10 上创建一个带有 vagrant 的虚拟开发环境。我已经安装了名称为 'dev1'(它是 CentOS7.0)的盒子。
我想添加一个名为'dev2'的新盒子(CentOS6.7)。
所以我尝试通过下面的命令添加一个框
$ vagrant box add dev2 [box path]
之后,添加成功。
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
然后我 $ vagrant init'
编辑 vagrantfile 如下
Vagrant.configure("2") do |config|
config.vm.define "dev1" do |dev1|
dev1.vm.hostname = "dev1"
dev1.vm.box = "bento/centos-7.2"
dev1.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "dev2" do |dev2|
dev2.vm.hostname = "dev2"
dev2.vm.box = "bento/centos-6.7"
dev2.vm.network "private_network", ip:"172.16.1.2"
end
end
完成编辑,我输入命令 $ vagrant status
但它显示:
Current machine states:
dev1 poweroff (virtualbox)
dev2 not created (virtualbox)
正在启动 virtualbox 管理器,它没有显示 'dev2' 的信息。
当我尝试 $ vagrant up dev2
时,它开始下载 CentOS6.7 box 文件而不是启动我之前添加的 'dev2'...
如何在现有环境之外添加新盒子?
提前谢谢你。
您在 vagrant 配置中添加的框与您在 Vagrantfile 中使用的名称不匹配。
如果您添加了框并在输出中为它们命名
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
此名称必须与 Vagrantfile 中 config.vm.box
的值匹配,因此您需要在 Vagrantfile
dev1
和 dev2
名称
Vagrant.configure("2") do |config|
config.vm.define "dev1" do |dev1|
dev1.vm.hostname = "dev1"
dev1.vm.box = "dev1"
dev1.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "dev2" do |dev2|
dev2.vm.hostname = "dev2"
dev2.vm.box = "dev2"
dev2.vm.network "private_network", ip:"172.16.1.2"
end
end
在你的情况下,我不确定你为什么将盒子添加为 dev1 和 dev2。您似乎对 vagrant box 和虚拟机有些混淆。
我建议保留 Vagrantfile,就像你参考便当盒一样,删除 dev1/2 框,只保留 运行 vagrant up
。 Vagrant 将下载便当盒,将它们添加到您的配置中,并将启动 dev1 和 dev2 虚拟机。
我也收到了同样的消息,在尝试了每个 Vagrant's guide.
的 vagrant package --base 命令之后$ vagrant package --base my-virtual-machine
`VM not created. Moving on...`
具体来说,要使其正常工作,您必须检查并使用您可能通过 Vagrantfile 预设的确切名称,并且 config.vm.name =“您选择的名称”。您还将看到它显示在 VirtualBox 中(除非您更改了它)。
这是我测试得出的默认名称的示例屏幕截图。
我正在使用 Powershell,所以这是我的输出:
PS C:\Users\USER\OneDrive\Documents\Projects\Vagrant2> vagrant package --base Vagrant2_default_1598799939605_1106
==> Vagrant2_default_1598799939605_1106: Exporting VM...
==> Vagrant2_default_1598799939605_1106: Compressing package to: C:/Users/USER/OneDrive/Documents/Projects/Vagrant2/package.box