2016-03-31 9 views
9

मैं फ़ोल्डर निर्दिष्ट करना चाहता हूं जहां वग्रेंट मेरे वीएम को स्टोर करेगा।कस्टम फ़ोल्डर में स्टोर वग्रेंट वीएम

मुझे केवल एक वीएम के लिए इसकी आवश्यकता है, इसलिए मैं वर्चुअलबॉक्स.एक्सएमएल defaultMachineFolder को संशोधित नहीं करना चाहता हूं या VBOX_USER_HOME पर्यावरण चर बदल सकता हूं।

Vagrantfile में ऐसा करने का सही तरीका क्या है?

मैं पहले से ही निम्नलिखित लाइनों को जोड़ने के लिए कोशिश की है:

config.vm.provider "virtualbox" do |vb| 
    vb.customize ["createvm", "--name", "name", "--basefolder", "path"] 
end 

यह पथ मैं निर्दिष्ट पर वीएम फ़ोल्डर बनाता है, लेकिन यह भी ~/VirtualBox VMs फ़ोल्डर में नकल और गलत वीएम पथ को जोड़ने वर्चुअलबॉक्स.एक्सएमएल।

इसके अलावा, मैं समूहों का उपयोग करने की कोशिश की है:

config.vm.provider :virtualbox do |vb| 
    vb.customize ["modifyvm", :id, "--groups", "/subpath"] 
end 

लेकिन यह केवल ~/VirtualBox VMs में एक सबफ़ोल्डर पैदा करता है।

कृपया मदद करें!

+1

यह एक अच्छा सवाल है।मुझे पता है कि आपने पहले ही कहा है कि आप 'डिफ़ॉल्ट माचिनफोल्डर' को स्थानांतरित नहीं करना चाहते थे, लेकिन ऐसा लगता है कि यह आपकी समस्या का समाधान करेगा। अधिक जानकारी के लिए [यह SO उत्तर] देखें (http://stackoverflow.com/a/36114947/5240327)। –

उत्तर

5

यह आसान नहीं था लेकिन कम से कम मैं एक अच्छी बात सीखता हूं। अगर आपको अपेक्षित उत्तर नहीं मिलता है तो भी मैं इसे एक उत्तर के रूप में बना दूंगा। (खेद अग्रिम में)

इसलिए सबसे पहले:

यह पथ मैं निर्दिष्ट पर वीएम फ़ोल्डर बनाता है, लेकिन यह भी ~/VirtualBox VMs फ़ोल्डर में नकल और को गलत वीएम पथ को जोड़ने VirtualBox.xml।

हाँ, डिफ़ॉल्ट रूप से आप की तरह

==> default: Importing base box 'ubuntu/trusty64'... 
पर्दे के पीछे

आवारा उत्पादन कुछ में देखने के लिए जब, आवारा चलाता VBoxManage import .... की तरह कुछ इसलिए यदि आप भी एक createvm संपत्ति को परिभाषित है, यह इसके अलावा चलेंगे वानर बॉक्स आयात करने के लिए यह डुप्लिकेट बनाता है। ध्यान दें provider ब्लॉक में प्रॉपर्टी सेट डिफ़ॉल्ट को ओवरराइड नहीं करता है लेकिन डिफ़ॉल्ट के बाद चल रहा है।

तो योनि VBoxManage import .... --disk /path करता है; VBoxManage से चलते समय, डिस्क के लिए निर्दिष्ट पथ को बदलना और VM फ़ाइल को कहीं भी सहेजना आसान है।

लेकिन जब आप vagrant code here देखो यह target path संपत्ति का उत्पादन होता है, जब VBoxManage import -n /path_to_your_box_ovf_file चल रहा है और यह वहाँ से पथ बनाता है तो यह किसी भी वीएम के लिए एक ही रास्ता फ़ोल्डर हो जाएगा।

तो तरीकों से आप पहले ही उल्लेख के शीर्ष पर

, पथ आप VBoxManage setproperty machinefolder

VBoxManage setproperty machinefolder /my_custom_path 
vagrant up 
VBoxManage setproperty machinefolder default 

वीएम फ़ाइलों का उपयोग कर सकते हो जाएगा अपने custom_path फ़ोल्डर में बनाता है परिभाषित करने के लिए तो आप अपने डिफ़ॉल्ट स्थान को वीएम फ़ोल्डर इसे पुनः शुरू । (मैंने कोशिश नहीं की लेकिन Vagrantfile एक रूबी स्क्रिप्ट है, आप Vagrantfile से VBoxManage setproperty भी चला सकते हैं)

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