如何在多种环境中使用Vagrant-proxyconf

时间:2015-11-18 15:03:14

标签: proxy vagrant vagrant-windows

在工作中,我在代理服务器后面并配置了vagrant以通过vagrant-proxyconf插件使用它。它运作良好,没有任何问题或抱怨。

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

我遇到的问题是当我把电脑带回家做一些工作时。有没有办法轻松关闭代理设置?

1 个答案:

答案 0 :(得分:0)

您可以通过添加

来关闭代理
config.proxy.enabled = false 

到您的Vagrantfile但您需要编辑文件以进行更改(true / false标志)。你也可以使用外部配置文件,但它仍然需要文件编辑

基于this answer我会尝试的是

vagrant true/false up

并在你的Vagrantfile中

# -*- 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

如果你有一些红宝石技能,你甚至可以提出更好的东西,但这会给你一个想法

即使代理被禁用,

注意也会出现,代理值仍然按照doc

中的说明进行设置
  

此禁用可保留应用程序的代理配置   客人。必要时,必须先清除配置,然后才能禁用。

所以使用上述提议的另一种可能性是做类似

的事情
# -*- 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