我正在使用Vagrant处理几个用例,并且很难找到一个以优雅方式处理公司代理的良好解决方案.在我最初的Vagrantfile中,我最终得到了apt.conf的配置
user = 'me'
pwd = 'mypwd'
config.vm.provision :shell, :inline => "echo 'Acquire::http::Proxy \"http://#{user}:#{pwd}@proxy.corp.com:3210\";' >> /etc/apt/apt.conf"
config.vm.provision :shell, :inline => "echo 'Acquire::https::Proxy \"http://#{user}:#{pwd}@proxy.corp.com:3210\";' >> /etc/apt/apt.conf"
config.vm.provision :shell, :inline => "echo 'Acquire::socks::Proxy \"http://#{user}:#{pwd}@proxy.corp.com:3128\";' >> /etc/apt/apt.conf"
Run Code Online (Sandbox Code Playgroud)
显然,我想避免将我的用户/密码存储在Vagrantfile中,因为我计划将其保留在版本控制之下.我的下一次尝试是使用highline插件从Vagrantfile中提示,但这会导致在每个vagrant命令期间出现提示,而不仅仅是在init期间(当此配置适用时).
我是以错误的方式来做这件事的吗?如果是这样,还有哪些其他选项可用于处理适合Vagrant模型的代理配置?
您可以通过以下方式执行此操作:
创建一个名为的文件proxy.yml并将其添加到您的文件中,.gitignore以便它不会被提交.
在你内心Vagrantfile你可以有这样的东西:
if File.exist?("proxy.yml")
require 'yaml'
proxy = YAML::load(File.open('proxy.yml'))
config.vm.provision :shell, :inline => "echo 'Acquire::http::Proxy \"http://#{proxy['user']}:#{proxy['pass']}@proxy.corp.com:3210\";' >> /etc/apt/apt.conf"
end
Run Code Online (Sandbox Code Playgroud)
内容proxy.yml将是:
user: "username"
pass: "password"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2099 次 |
| 最近记录: |