2015-09-07 16 views
7

बक्से ठीक काम कर रहे थे। तब मैंने एक को रोक दिया (उस समय केवल एक ही चल रहा था) और अब मैं उनमें से कोई भी वापस नहीं ले सकता।वग्रेंट कॉन्फ़िगर त्रुटि - "एक बॉक्स निर्दिष्ट होना चाहिए।"


रनिंग vagrant up [name] मुझे निम्न त्रुटि देता है, चाहे मैं चुन सकते हैं या कि क्या मैं उन दोनों के लिए vagrant up पर इसे छोड़ आने के लिए:

There are errors in the configuration of this machine. Please fix 
the following errors and try again: 

vm: 
* A box must be specified. 

Vagrant का नवीनतम संस्करण (1.7.4 चल रहा है)।

यहाँ अपनी संपूर्णता में मेरी Vagrantfile है, टिप्पणियां भी शामिल है (बस मामले में): vagrant status चलाने का

# Search for boxes here: https://atlas.hashicorp.com/boxes/search 
# Refer to commands_vagrant.txt for command reference 

Vagrant.configure("2") do |config| 

    # Globally defined variables 
    config.vm.synced_folder "./", "/var/www/public" 

    # CentOS 6.5, Apache 2.2.15, MySQL 5.5.36 (-u root), PHP 5.3.28 
    # Note: If PHP session keys don't work, set permissions to 777 (or other more restrictive, but this is guaranteed to work) on /var/lib/php/session 
    config.vm.define "php5dot3", primary: true do |php5dot3| 
     config.vm.box = "smallhadroncollider/centos-6.5-lamp" 
     config.vm.network :forwarded_port, guest: 80, host: 4567 
    end 

    # Ubuntu 14.04 (SSH pw: vagrant), Apache 2.4.12, MySQL 5.5.43 (-u root -p root), PHP 5.6.10 
    config.vm.define "php5dot6" do |php5dot6| 
     config.vm.box = "scotch/box" 
     config.vm.network :forwarded_port, guest: 80, host: 4568 
    end 

end 

परिणाम:

Current machine states: 

php5dot3     poweroff (virtualbox) 
php5dot6     poweroff (virtualbox) 

vagrant global-status चलाने का परिणाम:

id  name  provider state directory       
-------------------------------------------------------------------------- 
e1f3c85 default virtualbox poweroff /home/sam/Web      
c588d51 php5dot6 virtualbox poweroff /home/sam/Web      
4e71c50 php5dot3 virtualbox poweroff /home/sam/Web  

'डिफ़ॉल्ट' पिछले सप्ताह काम करने वाली बहु-मशीनों को प्राप्त करने से पहले मेरे वाग्रेंटफाइल में एकमात्र बॉक्स था। (प्रासंगिक?)


vagrant box list चलाने का परिणाम:

scotch/box       (virtualbox, 2.0) 
smallhadroncollider/centos-6.5-lamp (virtualbox, 1.0.0) 

किसी भी मदद की सराहना की जाएगी, धन्यवाद।

+0

मैंने यहां एक समान समस्या बनाई: https://github.com/mitchellh/vagrant/issues/6245 – generalconsensus

+0

क्या आपने 'bash init.sh' चलाया इससे पहले? – RidRoid

+0

नहीं, कभी भी वाग्रेंट के संबंध में किसी भी बैश स्क्रिप्ट को चलाएं। – SamHH

उत्तर

14

आपकी मशीन परिभाषाओं के अंदर, आपको config की बजाय उस मशीन के चर नाम का उपयोग करने की आवश्यकता है। इस आजमाएं:

नीचे फ़ाइल में, मैं या तो php5dot3.vm या php5dot6.vm को config.vm बदल दिया है:

Vagrant.configure("2") do |config| 

    # Globally defined variables 
    config.vm.synced_folder "./", "/var/www/public" 

    # CentOS 6.5, Apache 2.2.15, MySQL 5.5.36 (-u root), PHP 5.3.28 
    # Note: If PHP session keys don't work, set permissions to 777 (or other more restrictive, but this is guaranteed to work) on /var/lib/php/session 
    config.vm.define "php5dot3", primary: true do |php5dot3| 
     php5dot3.vm.box = "smallhadroncollider/centos-6.5-lamp" 
     php5dot3.vm.network :forwarded_port, guest: 80, host: 4567 
    end 

    # Ubuntu 14.04 (SSH pw: vagrant), Apache 2.4.12, MySQL 5.5.43 (-u root -p root), PHP 5.6.10 
    config.vm.define "php5dot6", autostart:false do |php5dot6| 
     php5dot6.vm.box = "scotch/box" 
     php5dot6.vm.network :forwarded_port, guest: 80, host: 4568 
    end 

end 

मैं भी अपने php5dot6 बॉक्स, की परिभाषा के लिए autostart:false जोड़ा है जो आप यदि आप चाहें तो निकाल सकते हैं । (इसका मतलब यह है कि vagrant up चलाना केवल प्राथमिक रूप से प्राथमिक प्रारंभ करेगा।

+0

ऐसा लगता है कि यह वग्रेंट के साथ मेरा दीर्घकालिक मुद्दा तय कर चुका है। बहुत धन्यवाद! – SamHH

+1

इच्छा है कि आपको इस मुद्दे को सुलझाने के लिए 4 महीने का इंतजार नहीं करना पड़ेगा! –

+1

उज्ज्वल पक्ष? समस्या हल हो गई! फ्लिप साइड? ... मैं इसे कैसे समझ नहीं पाया ...: / –

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