2013-06-17 8 views
5

Vagrant ile birkaç kullanım durumunda çalışıyorum ve kurumsal vekilleri zarif bir şekilde ele almak için iyi bir çözüm bulmakta zorluk çekiyorum. Benim ilk Vagrantfile, ben Açıkçası Vagrant yapılandırmaları için proxy kullanıcı/şifrelerinin güvenliğini sağlamanın bir yolu var mı?

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" 

apt.conf

için bu yapılandırma ile sona erdi, ben versiyon kontrol altında tutmak planlıyorum beri benim kullanıcı/şifre Vagrantfile saklanmasını önlemek istiyoruz. Bir sonraki denemem, highline eklentisini kullanarak Vagrantfile içinde sormaktı, ancak bu komut istemde sadece init sırasında değil, her vagrant komutunda görünmesine neden oluyordu (bu yapılandırma geçerli olduğunda).

Bunu yanlış yoldan mı yapıyorum? Varsa, Vagrant modeline iyi uyan proxy yapılandırmasıyla uğraşmak için başka seçenekler var mı?

cevap

6

aşağıdaki şekilde yapabilirsiniz:

proxy.yml adlı bir dosya oluşturun ve onu işlediği almaz böylece sizin .gitignore ekleyin.

Sonra içeride senin Vagrantfile böyle bir şey olabilir: proxy.yml ait

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 

içeriği şöyle olacaktır:

vagrant plugin install vagrant-proxyconf 

Farklı: Sen vagrant-proxyconf eklentisi kullanabilirsiniz

user: "username" 
pass: "password" 
+0

Teşekkürler, bu yaklaşımı denedim ve iyi çalışıyor gibi görünüyor. Eğer proxy.yml dosyası istemiyorsa bunu yapmayı düşünmekteyim ama hala bunu tartışıyorum, çünkü bu konu başsız olacak olan Sürekli Entegrasyon sürecinin bir parçasını oluşturmayı düşünüyorum. –

1

muhtemelen tüm Vagra için aynı ayarları kullanmak istersiniz Çok HTTPS URI'ları ile varsayılan olarak aynı vekil

config.apt_proxy.http = "http://me:[email protected]:3210" 

Apt kullanımları, bu nedenle yapmaman: nt VM, siz (makinenize yerel) ~/.vagrant.d/Vagrantfile yapılandırmayı koyabilirsiniz Durumunda bunu belirtmeniz gerek.

Diğer seçenek yapılandırmayı ortam değişkenleriyle iletmektir. Komut satırından, ~/.bashrc, vb .:

export VAGRANT_APT_HTTP_PROXY="http://me:[email protected]:3210" 

üzerine Örneğin eklenti ayrıca sadece Apt için, bütün VM için proxy'leri yapılandırabilirsiniz.

İlgili konular