Як збільшити оперативну пам’ять та налаштувати мережу лише для хостів у 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помилку під час спроби ввійти у віртуальну машину.


Збільшення оперативної пам'яті може допомогти, коли ви отримаєте повідомлення "Вбито".
wieczorek1990

Відповіді:


63

Ви можете змінити різні властивості віртуальної машини, додавши таку конфігурацію ( трохи детальніше див. У документах 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

Також ви можете перебудувати конфігурацію таким чином, закінчення - це робити з 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

143

Щоб збільшити кількість пам'яті або процесора під час використання Vagrant 2, додайте це у свій файл Vagrant

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
Метт Фрір


Ви можете писати і цим способом config.vm.provider: virtualbox
Таким чином,

96

Оскільки Vagrant 1.1 customizeваріант отримує VirtualBox.

Сучасний спосіб це зробити:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "256"]
end

1
Ви також можете використовувати vagrant up --provider=virtualboxза docs.vagrantup.com/v2/providers/basic_usage.html
user456584

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

Ви можете легко збільшити оперативну пам’ять віртуальної машини, змінивши властивість пам’яті розділу 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"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.