2

At work I am behind a proxy server and have configured vagrant to use it through the vagrant-proxyconf plugin. It works great and no problems or complaints there.

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

The problem that I'm having is when I take my computer home to do some work. Is there a way to easily turn off the proxy settings?

4

1 回答 1

1

您可以通过添加关闭代理

config.proxy.enabled = false 

到您的 Vagrantfile,但您需要编辑文件以进行更改(真/假标志)。如果您已经拥有,也可以使用外部配置文件,但它仍然需要文件编辑

我会根据这个答案尝试的是

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

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

注意即使代理被禁用,代理值仍然按照文档中的说明设置

此禁用会保留来宾上应用程序的代理配置。如果需要,必须在禁用之前清除配置。

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

# -*- 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
于 2015-11-18T16:13:38.113 回答