如何在Vagrant中增加RAM并设置仅限主机的网络?

Dc *_*ing 89 configuration networking vagrant

我想将RAM增加到至少1 GB,我想配置"Host-Only"网络使用"199.188.44.20".

这是我的Vagrantfile:

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

Vagrant::Config.run do |config|

    config.vm.customize ["modifyvm", :id, "--memory", 1024]

    config.vm.network :hostonly, "199.188.44.20"

    config.vm.define :web do |web_config|
        web_config.vm.box = "lucid32"
        web_config.vm.forward_port 80, 8080

        web_config.vm.provision :puppet do |puppet|
            puppet.manifests_path = "manifests"
            puppet.manifest_file = "lucid32.pp"
        end
    end

    config.vm.define :web2 do |web2_config| 
        web2_config.vm.box = "lucid32"
        web2_config.vm.forward_port 80, 8081

        web2_config.vm.provision :puppet do |puppet|
            puppet.manifests_path = "manifests"
            puppet.manifest_file = "myweb.pp"
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,当我跑步时,vagrant up我得到:

尝试引导时,VM无法保持"正在运行"状态.这通常是由于配置错误或主机系统不兼容造成的.请打开VirtualBox GUI并尝试手动引导虚拟机以获取更多信息性错误消息

而且,connection refuse当我尝试登录VM时出现错误.

Mat*_*ear 134

要在使用Vagrant 2时增加内存或CPU数量,请将其添加到Vagrant文​​件中

Vagrant.configure("2") do |config|
    # usual vagrant config here

    config.vm.provider "virtualbox" do |v|
        v.memory = 1024
        v.cpus = 2
    end
end
Run Code Online (Sandbox Code Playgroud)

  • 你也可以做'vagrant reload` (38认同)
  • 谢谢!必须记住做"vagrant halt"和"vagrant up"以使用新设置重启机器.做"流浪汉暂停"是不够的.可能对(*咳嗽*)有用的人有用... (13认同)

Pau*_*rit 96

因为Vagrant 1.1 customize选项是特定于VirtualBox的.

现代化的方法是:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "256"]
end
Run Code Online (Sandbox Code Playgroud)

  • 通过_modern way_你的意思是'VAGRANTFILE_API_VERSION ="2"`,如[Vagrant docs](http://docs.vagrantup.com/v2/vagrantfile/version.html)中所述 (2认同)

pyf*_*unc 62

您可以通过添加以下配置来修改各种VM属性(有关更多信息,请参阅Vagrant文​​档):

  # Configure VM Ram usage
  config.vm.customize [
                        "modifyvm", :id,
                        "--name", "Test_Environment",
                        "--memory", "1024"
                      ]
Run Code Online (Sandbox Code Playgroud)

您可以从VirtualBox命令行选项的文档中获取要更改的属性:

流浪汉文档有关于如何更改IP地址的部分:

Vagrant::Config.run do |config|
  config.vm.network :hostonly, "192.168.50.4"
end
Run Code Online (Sandbox Code Playgroud)

您也可以像这样重构配置,结束是在没有嵌套的情况下结束.这更简单.

config.vm.define :web do |web_config|
    web_config.vm.box = "lucid32"
    web_config.vm.forward_port 80, 8080
end
web_config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "manifests"
    puppet.manifest_file = "lucid32.pp"
end
Run Code Online (Sandbox Code Playgroud)


esh*_*arp 7

我无法得到任何这些答案.这是我最终放在我的Vagrantfile的最顶层,在Vagrant::Config.run do块之前:

Vagrant.configure("2") do |config|
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
  end
end
Run Code Online (Sandbox Code Playgroud)

我注意到快捷访问器样式"vb.memory = 1024"似乎不起作用.


cod*_*s93 5

您可以通过修改 vagrant 文件中 config.vm.provider 部分的 memory 属性轻松增加 VM 的 RAM。

config.vm.provider "virtualbox" do |vb|
 vb.memory = "4096"
end
Run Code Online (Sandbox Code Playgroud)

这会为您的 VM 分配大约 4GB 的 RAM。您可以根据您的要求更改此设置。例如,以下设置将为您的 VM 分配 2GB 的 RAM。

config.vm.provider "virtualbox" do |vb|
 vb.memory = "2048"
end
Run Code Online (Sandbox Code Playgroud)

尝试删除config.vm.customize ["modifyvm", :id, "--memory", 1024]文件中的 ,并添加上面的代码。

对于网络配置,尝试config.vm.network :hostonly, "199.188.44.20"将文件中的修改为config.vm.network "private_network", ip: "199.188.44.20"