Comment augmenter la RAM et configurer la mise en réseau de l'hôte uniquement dans Vagrant?

95

Je voudrais augmenter la RAM à au moins 1 Go et je voudrais configurer le réseau «Host-Only» pour utiliser «199.188.44.20».

C'est mon 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

Cependant, lorsque je cours, vagrant upje reçois:

La machine virtuelle n'a pas réussi à rester à l'état «en cours d'exécution» lors de la tentative de démarrage. Cela est normalement dû à une mauvaise configuration ou à des incompatibles avec le système hôte. Veuillez ouvrir l'interface graphique de VirtualBox et tenter de démarrer la machine virtuelle manuellement pour obtenir un message d'erreur plus informatif

Et, j'obtiens une connection refuseerreur lorsque j'essaye de me connecter à la VM.

Dc Redwing
la source
L'augmentation de la RAM peut aider lorsque vous recevez le message "Killed".
wieczorek1990

Réponses:

63

Vous pouvez modifier diverses propriétés de VM en ajoutant la configuration suivante ( voir la documentation Vagrant pour un peu plus d'informations ):

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

Vous pouvez obtenir les propriétés que vous souhaitez modifier à partir des documents pour les options de ligne de commande VirtualBox:

La documentation du vagabond contient la section sur la façon de changer l'adresse IP:

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

Vous pouvez également restructurer la configuration comme ceci, la fin se fait par la fin sans l'imbriquer. C'est plus simple.

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
la source
143

Pour augmenter la mémoire ou le nombre de processeurs lors de l'utilisation de Vagrant 2, ajoutez ceci à votre Vagrantfile

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
la source
14
Merci! Il faut se rappeler de faire vagrant haltet vagrant upde redémarrer la machine avec les nouveaux paramètres. Il ne suffit pas de le faire vagrant suspend. Pourrait être utile pour (* toux *) quelqu'un à connaître ...
larsr
41
Vous pouvez aussi fairevagrant reload
Matt Frear
1
À titre de référence: docs.vagrantup.com/v2/virtualbox/configuration.html
Adam Michalik
Vous pouvez également écrire de cette manière config.vm.provider: virtualbox
Thushan
96

Puisque l' Vagrant 1.1 customizeoption devient spécifique à VirtualBox.

La façon moderne de le faire est:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "256"]
end
Paul Brit
la source
1
Vous pouvez également utiliser vagrant up --provider=virtualboxpar docs.vagrantup.com/v2/providers/basic_usage.html
user456584
2
Par voie moderne, vous voulez dire VAGRANTFILE_API_VERSION = "2", comme décrit dans la documentation Vagrant
AlexT
7

Je n'ai pu obtenir aucune de ces réponses. Voici ce que j'ai fini par mettre tout en haut de mon Vagrantfile, avant le Vagrant::Config.run dobloc:

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

J'ai remarqué que le style d'accesseur de raccourci, "vb.memory = 1024", ne semblait pas fonctionner.

esharp
la source
3

Vous pouvez facilement augmenter la RAM de votre VM en modifiant la propriété de mémoire de la section config.vm.provider dans votre fichier vagrant.

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

Cela alloue environ 4 Go de RAM à votre VM. Vous pouvez modifier cela selon vos besoins. Par exemple, le paramètre suivant allouerait 2 Go de RAM à votre machine virtuelle.

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

Essayez de supprimer le config.vm.customize ["modifyvm", :id, "--memory", 1024]dans votre fichier et d'ajouter le code ci-dessus.

Pour la configuration du réseau, essayez de modifier le config.vm.network :hostonly, "199.188.44.20"dans votre fichier pourconfig.vm.network "private_network", ip: "199.188.44.20"

codeness93
la source