如何在 Vagrant 中增加 RAM 并设置仅限主机的网络?
Posted
技术标签:
【中文标题】如何在 Vagrant 中增加 RAM 并设置仅限主机的网络?【英文标题】:How do I increase the RAM and set up host-only networking in Vagrant? 【发布时间】:2012-08-31 17:59:28 【问题描述】:我想将 RAM 增加到至少 1 GB,并且我想将“仅主机”网络配置为使用“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
时,我得到:
VM 在尝试启动时未能保持在“运行”状态。这通常是由错误配置或主机系统不兼容引起的。请打开 VirtualBox GUI 并尝试手动启动虚拟机以获取更多信息的错误消息
当我尝试登录 VM 时,我收到了 connection refuse
错误。
【问题讨论】:
当您收到“Killed”消息时增加 RAM 可能会有所帮助。 【参考方案1】:要在使用 Vagrant 2 时增加内存或 CPU 数量,请将其添加到 Vagrantfile 中
Vagrant.configure("2") do |config|
# usual vagrant config here
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end
end
【讨论】:
谢谢!必须记住执行vagrant halt
和vagrant up
以使用新设置重新启动机器。仅做vagrant suspend
是不够的。可能对 (* 咳嗽 *) 认识的人有用...
你也可以vagrant reload
供参考:docs.vagrantup.com/v2/virtualbox/configuration.html
你也可以这样写 config.vm.provider :virtualbox【参考方案2】:
由于 Vagrant 1.1
customize
选项正在变得特定于 VirtualBox。
现代的做法是:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "256"]
end
【讨论】:
你也可以使用vagrant up --provider=virtualbox
docs.vagrantup.com/v2/providers/basic_usage.html
通过现代方式您的意思是VAGRANTFILE_API_VERSION = "2"
,如Vagrant docs中所述【参考方案3】:
您可以通过添加以下配置(see the Vagrant docs for a bit more info)来修改各种 VM 属性:
# Configure VM Ram usage
config.vm.customize [
"modifyvm", :id,
"--name", "Test_Environment",
"--memory", "1024"
]
您可以从 VirtualBox 命令行选项的文档中获取要更改的属性:
http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvmvagrant documentation 有关于如何更改 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
【讨论】:
【参考方案4】:我无法得到这些答案中的任何一个。这是我最后放在我的 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”似乎不起作用。
【讨论】:
【参考方案5】:您可以通过修改 vagrant 文件中 config.vm.provider 部分的 memory 属性轻松增加 VM 的 RAM。
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
这会为您的虚拟机分配大约 4GB 的 RAM。您可以根据您的要求更改此设置。例如,以下设置将为您的 VM 分配 2GB 的 RAM。
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"
【讨论】:
以上是关于如何在 Vagrant 中增加 RAM 并设置仅限主机的网络?的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 PyCharm 在 Vagrant/VirtualBox 远程解释器配置中使用 virtualenv?