क्या वग्रंट पपेट प्रदर्शन की एक निर्देशिका को निष्पादन के लिए इंगित कर सकता है?


9

मैं कुछ प्रारंभिक कठपुतली विन्यास शुरू करने के लिए वैग्रांत का उपयोग कर रहा हूं और कठपुतली निष्पादन वर्कफ़्लो में मल्टीपल मैनिफ़ेस्ट्स बनाने और उन्हें शामिल करने के बिना कई मैनिफ़ेस्ट (सिर्फ site.pp) को शामिल करने / चलाने के तरीके पर भ्रमित हूं।

कठपुतली मैनिफ़ेस्ट निर्देशिका में जो मैं वैग्रेंट को (नीचे देखें) इंगित करता हूं मेरे पास दो मैनिफ़ेस्ट हैं जिन्हें मैं निष्पादित करता हूं: site.pp और hierasetup.pp।

config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "puppet_files/manifests"
  puppet.module_path    = "puppet_files/modules"
  puppet.manifest_file  = "site.pp"
  puppet.options = "--verbose --debug"
end 

वर्तमान में मैं site.pp हो रहा हूं जो कि hierasetup.pp कहता है। मेरा site.pp इस तरह दिखता है:

File {
  owner => 'root',
  group => 'root',
  mode  => '0644',
}

import "hierasetup.pp"

include jboss

लेकिन मुझे यह त्रुटि "आयात" के पदावनति के बारे में है:

चेतावनी: 'आयात' का उपयोग /tmp/vagrant-puppet-1/manifests/site.pp:33 पर किया गया है। देखें http://links.puppetlabs.com/puppet-import-deprecation (: 610: ' `_reduce_190 में grammar.ra पर)

"इसके बजाय प्रयास करने के लिए चीज़ें" के अंतर्गत संदर्भित URL के अनुसार "यह कहता है" अपनी नोड परिभाषाओं को अलग-अलग फ़ाइलों में रखने के लिए, अपनी मुख्य अभिव्यक्ति के रूप में एक निर्देशिका निर्दिष्ट करें "।

इसके अलावा मुख्य कठपुतली पर यह कठपुतली डॉक्टर कहते हैं:

" अनुशंसित:। आप मुख्य प्रकट उपयोग कर रहे हैं भारी बजाय एक ENC पर भरोसा, $ confdir को प्रकट सेटिंग बदलने पर विचार / प्रकट होता है यह आपको अधिक फ़ाइलों में अपने उच्चतम स्तर के कोड को विभाजित करते हुए आयात कीवर्ड से परहेज की सुविधा देता है यह। साधारण वातावरण के व्यवहार से भी मेल खाएगा।

ऐसा प्रतीत होता है कि कठपुतली सिर्फ एक विशिष्ट मेनिफ़ेस्ट फ़ाइल के बजाय एक संपूर्ण निर्देशिका का संदर्भ दे सकती है, जैसे कि मैं उम्मीद करूंगा कि वैग्रांत इसके लिए एक प्रावधान करेगा और मुझे " कठपुतली.निफ़ेस्ट_फाइल =" site.pp "लाइन" को इंगित करने और इंगित करने की अनुमति देगा। इसके बजाय माता-पिता निर्देशिका जिसमें सभी * .pp फाइलें निष्पादित की जाएंगी। हालांकि, वैग्रांत में उस लाइन को हटाने से केवल इसके बजाय एक अपेक्षित "default.pp" के बारे में एक शिकायत उत्पन्न होती है:

कठपुतली का प्रावधान: * कॉन्फ़िगर कठपुतली प्रकट गायब है। कृपया किसी मौजूदा मेनिफ़ेस्ट का पथ निर्दिष्ट करें: /some/path/puppet_files/manifests/default.pp

इसलिए:

  1. सबसे पहले, क्या मैं "नया" (गैर-आयात) तरीके से कई अभिव्यक्तियों को सही ढंग से कॉल करने के तरीके को समझता हूं, जिसमें एक निर्देशिका को इंगित किया जाना है जिसमें इसके अंदर सभी * .pp फाइलें निष्पादित की जाएंगी?
  2. और दूसरी बात, वैग्रैंट ने "आयात" के पपेट के चित्रण के साथ निर्देशिका के संदर्भों को समायोजित करने के लिए इस नए बदलाव के साथ "पकड़ा" है?

अपडेट: # 2 के साथ इस मुद्दे के लिए शेन का धन्यवाद (वैग्रांत का कोड कठपुतली की निर्देशिका को इंगित करने की अनुमति देने के लिए पकड़ा नहीं जा रहा) विक्रांत के GitHub मुद्दे ट्रैकर साइट पर रिपोर्ट किया गया था और तब से पैच किया गया है: https://githind.com/mitchellh/vagrant / मुद्दों / 4169

जवाबों:


6

सबसे पहले, क्या मैं "नया" (गैर-आयात) तरीके से कई अभिव्यक्तियों को सही ढंग से कॉल करने के तरीके को समझता हूं, जिसमें एक निर्देशिका को इंगित किया जाना है जिसमें इसके अंदर सभी * .pp फाइलें निष्पादित की जाएंगी?

हाँ आप कीजिए। यहाँ देखें :

आप मुख्य प्रकट उपयोग कर रहे हैं भारी बजाय एक ENC पर भरोसा करते हैं, तो $ confdir / प्रकट करने के लिए प्रकट सेटिंग को बदलने पर विचार करें। यह आपको आयात कीवर्ड से बचने के दौरान अपने शीर्ष-स्तरीय कोड को कई फाइलों में विभाजित कर देता है।

इसके अलावा, manifestऔर modulepathभी निर्देशिका वातावरण और प्रकट निर्देशिका व्यवहार के पक्ष में पदावनत हो रहे हैं, यहां देखें :

अब जब निर्देशिका वातावरण पूरा हो जाता है, तो कॉन्फिग-फ़ाइल वातावरण को हटा दिया जाता है। कठपुतली में पर्यावरण ब्लॉकों को परिभाषित करना। एक deprecation चेतावनी का कारण होगा, क्योंकि कठपुतली में मॉड्यूलपथ, मैनिफ़ेस्ट, और config_version सेटिंग्स का कोई भी उपयोग होगा।

बहुत सारी तैनाती के लिए यह एक बहुत बड़ा बदलाव है, लेकिन लंबे समय में एक अच्छा सुधार होना चाहिए।


और दूसरी बात, वैग्रैंट ने "आयात" के पपेट के चित्रण के साथ निर्देशिका के संदर्भों को समायोजित करने के लिए इस नए बदलाव के साथ "पकड़ा" है?

नही ऐसा नहीं हुआ; उनके डॉक्स से:

मैनिफ़ेस्ट_फाइल (स्ट्रिंग) - मेनिफ़ेस्ट फ़ाइल का नाम जो पपेट रन के लिए एंट्रीपॉइंट के रूप में काम करेगा। इस मैनिफ़ेस्ट फ़ाइल को कॉन्फ़िगर किए गए मैनिफ़ेस्ट_पाठ में मौजूद होने की उम्मीद है

वैग्रांट के साथ उपयोग के लिए, आप अभी के लिए अप्रासंगिक चेतावनियों से निपट रहे हैं, जो दुर्भाग्यपूर्ण है। लेकिन, आयात 4.x तक हटाने के लिए स्लेट नहीं किया गया है, इसलिए इससे वैग्रैंट को पकड़ने में कुछ समय लगता है।


खैर, यह जानने के लिए अच्छा है कि मैं पागल नहीं हो रहा हूं क्योंकि मैं यह पता लगाने की कोशिश कर रहा हूं कि अब एक घंटे से अधिक समय तक यह सौदा क्या था। Vagrant डेवलपर्स कि सुविधा के लिए की जरूरत के बारे में पता कर रहे हैं, या नहीं तो इस तरह जोड़ने के सुझाव के लिए एक जगह है?
सेलिग्केइटस्टीनॉट

लगता है कि यह अभी तक उनमें से नहीं पूछा गया है - यहां देखें । इसमें एक समस्या छोड़ें ताकि इसे आधुनिक कठपुतली के साथ बेहतर तरीके से संरेखित किया जा सके (या अगर आपके पास जीथब खाता नहीं है तो मैं इसे करूँगा)!
शेन मैडेन

मुझे लगता है कि मेरे विकास के सहकर्मियों के पास जीथब खाते हैं, लेकिन अगर मेरे पास एक भी है तो मुझे यह भी नहीं पता है कि मेरा लॉगिन क्या होगा। मुझे आईटी की कोई जरूरत नहीं है और मैं कोडर नहीं हूं। क्या आप बहुत बुरा करेंगे?
सेलिग्केइस्टइंटरगॉट

1
@SeligkeitIstInGott निश्चित रूप से, मैं कुछ दर्ज करवाऊंगा!
शेन झुंझलाना

2
@SeligkeitIstInGott किया गया - github.com/mitchellh/vagrant/issues/4039
शेन मैडेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.