2013-06-17 5 views
5

मैं वग्रेंट के साथ कई उपयोग मामलों के माध्यम से काम कर रहा हूं और कॉर्पोरेट प्रॉक्सी को एक सुरुचिपूर्ण तरीके से संभालने के लिए एक अच्छे समाधान के साथ आने में कठिनाई हो रही है। मेरी प्रारंभिक Vagrantfile में, मैं इस config साथ 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" 

के लिए स्पष्ट रूप से समाप्त हो गया है, मैं अपने उपयोगकर्ता/कूटशब्द Vagrantfile में संग्रहीत के बाद से मैं संस्करण इसे नियंत्रण में रखने पर योजना बना रहा हूँ से बचने के लिए चाहते हैं। मेरा अगला प्रयास हाइलाइन प्लगइन का उपयोग करके वाग्रेंटफाइल के भीतर से संकेत देना था, लेकिन यह संकेत देता है कि प्रत्येक योनेंट कमांड के दौरान प्रतीत होता है न कि केवल init के दौरान (जब यह कॉन्फ़िगर लागू होगा)।

क्या मैं इस बारे में गलत तरीके से जा रहा हूं? यदि हां, तो प्रॉक्सी कॉन्फ़िगरेशन से निपटने के लिए कौन से अन्य विकल्प उपलब्ध हैं जो वाग्रेंट मॉडल में अच्छी तरह से फिट बैठते हैं?

उत्तर

6

आप निम्नलिखित तरीके से ऐसा कर सकता है:

एक फ़ाइल 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 

proxy.yml की सामग्री को होगा:

vagrant plugin install vagrant-proxyconf 

के रूप में:

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

धन्यवाद, मैंने उस दृष्टिकोण की कोशिश की है और ऐसा लगता है कि यह ठीक काम कर रहा है। अगर मैं proxy.yml फ़ाइल नहीं करता हूं तो मैं इसे संकेत देने पर विचार कर रहा हूं लेकिन मैं अभी भी बहस कर रहा हूं क्योंकि मैं निरंतर एकीकरण प्रक्रिया के इस हिस्से को बनाने के बारे में सोच रहा हूं जो कि मुखर होगा। –

1

आप vagrant-proxyconf प्लगइन का उपयोग कर सकते हैं आप शायद सभी वाग्रा के लिए एक ही सेटिंग्स का उपयोग करना चाहते हैं

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

अपार्टमेंट का उपयोग करता है डिफ़ॉल्ट रूप से एक ही प्रॉक्सी HTTPS यूआरआई के साथ भी है, तो आप shouldn: NT VM, आप विन्यास ~/.vagrant.d/Vagrantfile (जो अपनी मशीन के लिए स्थानीय है) करने के लिए रख सकते हैं इसे अपने मामले में निर्दिष्ट करने की आवश्यकता नहीं है।

अन्य विकल्प पर्यावरण चर के साथ कॉन्फ़िगरेशन पास करना है। कमांड लाइन, ~/.bashrc, आदि .:

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

पर उदाहरण के लिए प्लगइन भी न केवल अपार्टमेंट के लिए पूरे वी एम के लिए प्रॉक्सी कॉन्फ़िगर कर सकते हैं,।

संबंधित मुद्दे

 संबंधित मुद्दे