Bagaimana cara meningkatkan RAM dan mengatur jaringan khusus host di Vagrant?

95

Saya ingin meningkatkan RAM menjadi minimal 1 GB dan saya ingin mengkonfigurasi jaringan "Host-Only" untuk menggunakan "199.188.44.20".

Ini milik saya 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

Namun, ketika saya menjalankan vagrant upsaya mendapatkan:

VM gagal untuk tetap dalam status "berjalan" saat mencoba melakukan booting. Hal ini biasanya disebabkan oleh kesalahan konfigurasi atau sistem host yang tidak kompatibel. Silakan buka GUI VirtualBox dan coba boot mesin virtual secara manual untuk mendapatkan pesan kesalahan yang lebih informatif

Dan, saya mendapatkan connection refusekesalahan saat mencoba masuk ke VM.

Dc Redwing
sumber
Meningkatkan RAM mungkin membantu saat Anda mendapatkan pesan "Killed".
wieczorek1990

Jawaban:

64

Anda dapat mengubah berbagai properti VM dengan menambahkan konfigurasi berikut ( lihat dokumen Vagrant untuk info selengkapnya ):

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

Anda bisa mendapatkan properti yang ingin Anda ubah dari dokumen untuk opsi baris perintah VirtualBox:

The dokumentasi gelandangan memiliki bagian tentang bagaimana untuk mengubah alamat IP:

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

Anda juga dapat merestrukturisasi konfigurasi seperti ini, diakhiri dengan end tanpa menumpuknya. Ini lebih sederhana.

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
sumber
143

Untuk meningkatkan memori atau jumlah CPU saat menggunakan Vagrant 2, tambahkan ini ke Vagrantfile Anda

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

    config.vm.provider "virtualbox" do |v|
        v.memory = 1024
        v.cpus = 2
    end
end
Matt Frear
sumber
14
Terima kasih! Anda harus ingat untuk melakukan vagrant haltdan vagrant upmenghidupkan ulang mesin dengan pengaturan baru. Itu tidak cukup untuk dilakukan vagrant suspend. Bisa berguna untuk (* batuk *) seseorang tahu ...
larsr
41
Anda juga dapat melakukannyavagrant reload
Matt Frear
1
Untuk tujuan referensi: docs.vagrantup.com/v2/virtualbox/configuration.html
Adam Michalik
Anda dapat menulis dengan cara ini juga config.vm.provider: virtualbox
Thushan
96

Karena Vagrant 1.1 customizeopsi mendapatkan khusus VirtualBox.

Cara modern untuk melakukannya adalah:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "256"]
end
Paul Brit
sumber
1
Anda juga dapat menggunakan vagrant up --provider=virtualboxper docs.vagrantup.com/v2/providers/basic_usage.html
user456584
2
Dengan cara modern yang Anda maksud VAGRANTFILE_API_VERSION = "2", seperti yang dijelaskan dalam dokumen Vagrant
AlexT
7

Saya tidak bisa mendapatkan jawaban-jawaban ini untuk bekerja. Inilah yang akhirnya saya letakkan di bagian paling atas Vagrantfile saya, sebelum Vagrant::Config.run doblok:

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

Saya perhatikan bahwa gaya pengakses pintasan, "vb.memory = 1024", tampaknya tidak berfungsi.

esharp
sumber
3

Anda dapat dengan mudah meningkatkan RAM VM Anda dengan memodifikasi properti memori bagian config.vm.provider di file gelandangan Anda.

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

Ini mengalokasikan sekitar 4GB RAM ke VM Anda. Anda dapat mengubah ini sesuai dengan kebutuhan Anda. Misalnya, setelan berikut akan mengalokasikan RAM 2 GB ke VM Anda.

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

Coba hapus config.vm.customize ["modifyvm", :id, "--memory", 1024]di file Anda, dan tambahkan kode di atas.

Untuk konfigurasi jaringan, coba ubah config.vm.network :hostonly, "199.188.44.20"dalam file Anda menjadiconfig.vm.network "private_network", ip: "199.188.44.20"

codeness93
sumber