如何在多个环境中使用Vagrant proxyconf
在工作中,我在一个代理服务器后面,通过vagrant proxyconf插件将vagrant配置为使用它。它工作得很好,没有任何问题或抱怨如何在多个环境中使用Vagrant proxyconf,proxy,vagrant,vagrant-windows,Proxy,Vagrant,Vagrant Windows,在工作中,我在一个代理服务器后面,通过vagrant proxyconf插件将vagrant配置为使用它。它工作得很好,没有任何问题或抱怨 Vagrant.configure(2) do |config| if Vagrant.has_plugin?("vagrant-proxyconf") config.proxy.http = "http://proxy.server.com:8080" config.proxy.https = "http://prox
Vagrant.configure(2) do |config|
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.http = "http://proxy.server.com:8080"
config.proxy.https = "http://proxy.server.com:8080"
config.proxy.no_proxy = "localhost, 127.0.0.1"
else
raise Vagrant::Errors::VagrantError.new, "Plugin missing: vagrant-proxyconf"
end
我遇到的问题是当我把电脑带回家做一些工作时。有没有办法轻松关闭代理设置?您可以通过添加
config.proxy.enabled = false
但您需要编辑该文件以进行更改(true/false标志)。如果已经使用了外部配置文件,但仍需要进行文件编辑,则也可以使用外部配置文件
我将根据以下内容进行尝试:
vagrant true/false up
# -*- mode: ruby -*-
# vi: set ft=ruby :
proxy_val = ARGV[0]
Vagrant.configure(2) do |config|
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.enabled = proxy_val
if (proxy_val)
config.proxy.http = "http://proxy.server.com:8080"
config.proxy.https = "http://proxy.server.com:8080"
config.proxy.no_proxy = "localhost, 127.0.0.1"
else
config.proxy.http = ""
config.proxy.https = ""
config.proxy.no_proxy = ""
else
raise Vagrant::Errors::VagrantError.new, "Plugin missing: vagrant-proxyconf"
end
在你的档案里
# -*- mode: ruby -*-
# vi: set ft=ruby :
proxy_val = ARGV[0]
Vagrant.configure(2) do |config|
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.enabled = proxy_val
config.proxy.http = "http://proxy.server.com:8080"
config.proxy.https = "http://proxy.server.com:8080"
config.proxy.no_proxy = "localhost, 127.0.0.1"
else
raise Vagrant::Errors::VagrantError.new, "Plugin missing: vagrant-proxyconf"
end
如果你有一些ruby技能,你甚至可以想出更好的东西,但这给了你一个想法
注意:即使禁用了代理,代理值仍然按照
此禁用将保留服务器上应用程序的代理配置
客人。如果需要,在禁用之前必须清除配置
因此,使用上述建议的另一种可能性是
vagrant true/false up
# -*- mode: ruby -*-
# vi: set ft=ruby :
proxy_val = ARGV[0]
Vagrant.configure(2) do |config|
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.enabled = proxy_val
if (proxy_val)
config.proxy.http = "http://proxy.server.com:8080"
config.proxy.https = "http://proxy.server.com:8080"
config.proxy.no_proxy = "localhost, 127.0.0.1"
else
config.proxy.http = ""
config.proxy.https = ""
config.proxy.no_proxy = ""
else
raise Vagrant::Errors::VagrantError.new, "Plugin missing: vagrant-proxyconf"
end
谢谢你的回答,我稍后再试试。如果你有时间,我还有一个问题要问你。如果我在vagrant文件中将网络配置为公共网络,那么这不应该是我的主机连接的背驮吗?(config.vm.network“public_network”)我尝试了这个,但它不起作用,所以我想我可能误解了什么。我只是尝试了你的建议,发现它已经成功了一半。proxy.enable启用/禁用插件,但不会覆盖它设置的代理值。相反,我要做的是像您建议的那样将一个参数传递到shell脚本provisioner中,然后根据false是否为true,设置代理(config.proxy.http=“”)或取消设置代理(config.proxy.http=“”)。如果您编辑您的答案,您会将其标记为已接受。谢谢Dan,我进行了相应的编辑-回到附加问题,我不太清楚您的意思-您应该能够从同一网络上的任何计算机访问您的VM,如果这是您的意思,那么在这个主题上已经有问题了