Как увеличить оперативную память и настроить сеть только для хоста в Vagrant?

95

Я хотел бы увеличить оперативную память как минимум до 1 ГБ, и я хотел бы настроить сеть «Только хост» для использования «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

Однако, когда я бегу, vagrant upя получаю:

Виртуальной машине не удалось остаться в "рабочем" состоянии при попытке загрузки. Обычно это вызвано неправильной конфигурацией или несовместимостью хост-системы. Откройте графический интерфейс VirtualBox и попытайтесь загрузить виртуальную машину вручную, чтобы получить более информативное сообщение об ошибке.

И я получаю сообщение connection refuseоб ошибке, когда пытаюсь войти в виртуальную машину.

DC Redwing
источник
Увеличение ОЗУ может помочь при появлении сообщения «Убита».
wieczorek1990

Ответы:

64

Вы можете изменить различные свойства виртуальной машины, добавив следующую конфигурацию (дополнительную информацию см. В документации Vagrant ):

  # Configure VM Ram usage
  config.vm.customize [
                        "modifyvm", :id,
                        "--name", "Test_Environment",
                        "--memory", "1024"
                      ]

Вы можете получить свойства, которые хотите изменить, из документов для параметров командной строки VirtualBox:

В бродячей документации есть раздел о том, как изменить IP-адрес:

Vagrant::Config.run do |config|
  config.vm.network :hostonly, "192.168.50.4"
end

Также вы можете реструктурировать конфигурацию таким образом, чтобы окончание было сделано с концом без вложения. Это проще.

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
pyfunc
источник
143

Чтобы увеличить количество памяти или ЦП при использовании Vagrant 2, добавьте это в свой Vagrantfile

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

    config.vm.provider "virtualbox" do |v|
        v.memory = 1024
        v.cpus = 2
    end
end
Мэтт Фрир
источник
14
Спасибо! Необходимо не забыть сделать vagrant haltи vagrant upперезагрузить машину с новыми настройками. Недостаточно делать vagrant suspend. Может быть полезно (* кашляет *) кому-нибудь узнать ...
larsr
41
Вы также можете сделатьvagrant reload
Мэтт Фрир
1
Для справки: docs.vagrantup.com/v2/virtualbox/configuration.html
Адам Михалик,
Можно и так написать config.vm.provider: virtualbox
Sohan
96

Поскольку Vagrant 1.1 customizeопция становится специфичной для VirtualBox.

Современный способ сделать это:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "256"]
end
Пол Брит
источник
1
Вы также можете использовать vagrant up --provider=virtualboxper docs.vagrantup.com/v2/providers/basic_usage.html
user456584 09
2
По современному способу вы имеете в виду VAGRANTFILE_API_VERSION = "2", как описаны в документации Vagrant
Alext
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

Я заметил, что стиль ярлыка "vb.memory = 1024", похоже, не работает.

резкий
источник
3

Вы можете легко увеличить оперативную память вашей виртуальной машины, изменив свойство memory раздела config.vm.provider в вашем бродячем файле.

config.vm.provider "virtualbox" do |vb|
 vb.memory = "4096"
end

Это выделяет вашей виртуальной машине около 4 ГБ ОЗУ. Вы можете изменить это по своему усмотрению. Например, при следующей настройке вашей виртуальной машине будет выделено 2 ГБ ОЗУ.

config.vm.provider "virtualbox" do |vb|
 vb.memory = "2048"
end

Попробуйте удалить 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"

кодировка93
источник