2013-05-27 6 views
13

प्राथमिक लक्ष्य सभी कठपुतली मॉड्यूल स्वचालित रूप से जोड़ना है, ताकि सभी देव-एनवी और प्रोड-एनवी एक कमांड के साथ शुरू किया जा सके। मैं कठपुतली मैनिफेस्ट के माध्यम से कठपुतली मॉड्यूल कैसे स्थापित कर सकता हूं?क्या मैं कठपुतली के माध्यम से कठपुतली मॉड्यूल स्थापित कर सकता हूं?

उत्तर

5

हम सभी तृतीय पक्ष मॉड्यूल को सिंक करने के लिए खुशी से librarian-puppet का उपयोग कर रहे हैं, यह मॉड्यूल के स्थानों और संस्करणों को सेट करने का समर्थन करता है। तो उत्पादन और देव सटीक एक ही कोड चलाते हैं। उपयोग एक लाइनर

librarian-puppet install 

अन्य मामलों में हम एक खोल स्क्रिप्ट है कि कठपुतली दो बार, एक बार एक न्यूनतम मॉड्यूल है कि केवल आवश्यक मॉड्यूल को लाते समय के लिए जिम्मेदार है, और उसके बाद पूर्ण विकसित कठपुतली प्रवाह जब चलाता है में है सभी मॉड्यूल उपलब्ध हैं।

+0

मैं अभी भी इस मॉड्यूल उद्देश्य को समझ नहीं सकता। लाइब्रेरियन भी कठपुतली मॉड्यूल स्थापित करता है न केवल कस्टम एक? गिट सब मॉड्यूल का उपयोग करते समय आप सभी को एक कमांड के साथ अपडेट कर सकते हैं? मानक कठपुतली मॉड्यूल स्थापित करने के लिए मैंने अभी install-me.sh स्क्रिप्ट बनाई है।बस बिना अतिरिक्त झगड़े के चेकआउट और रन विधि चाहते हैं। – holms

+0

ठीक है तो यह मूल रूप से लाइब्रेरियन-शेफ के समान है। मैं शेफ में माइग्रेट हो गया हूं, लेकिन आपका उत्तर अभी भी वैध है – holms

+0

ऐसा लगता है कि यह वास्तव में मूल प्रश्न का उत्तर नहीं देता है, क्योंकि मॉड्यूल * कठपुतली क्लाइंट द्वारा इंस्टॉल नहीं किया गया है, बल्कि किसी तृतीय-पक्ष टूल द्वारा। इसलिए उपयोगकर्ताओं को उस लाइब्रेरी को पहले स्थापित करने की आवश्यकता है, और आप इसे Puppet के साथ इंस्टॉल नहीं कर सकते! सबसे अच्छा समाधान कुछ कठपुतली क्लाइंट क्लाइंट में बनाया जाएगा ... – anarcat

2

लगता है कि कठपुतली मॉड्यूल स्थापित करने के लिए मॉड्यूल लिखना संभव है - यह केवल puppet module उपकरण के लिए रैपर होगा। हालांकि, मैंने अभी तक इस तरह के मॉड्यूल के बारे में नहीं सुना है।

मुझे लगता है कि स्थापना का यह तंत्र लोकप्रिय नहीं है क्योंकि अक्सर आपको स्थापित मॉड्यूल को संशोधित करने की आवश्यकता होती है, कुछ अनुकूलन करें। ऐसे संशोधनों के प्रबंधन के लिए व्यावहारिक उपकरण संस्करण नियंत्रण प्रणाली है। उदाहरण के लिए, हमारी टीम में हम गिट रिपोस्टिटरी में /etc/puppetlabs/puppet निर्देशिका रखते हैं। Puppet फोर्ज से किसी भी मॉड्यूल की स्थापना के बाद हम अपनी फाइलें संस्करण नियंत्रण में जोड़ते हैं और इसे रिमोट गिट सर्वर पर दबाते हैं। हमारे आंतरिक रूप से विकसित मॉड्यूल भी इस भंडार में रखा जाता है। इस तरह, कई कठपुतली स्वामी (देव और प्रोड वातावरण) इस केंद्रीय भंडार के साथ सिंक्रनाइज़ किए जाते हैं और हमेशा सभी मॉड्यूल के अद्यतित संस्करण होते हैं।

3

"Puppet module" type and provider कि वास्तव में करता है:

module { 'author/mymodule': 
    ensure => present, 
} 
module { 'puppetlabs/stdlib': 
    ensure => '2.6.0', 
} 
module { 'puppetlabs/stdlib': 
    ensure  => present, 
    modulepath => '/etc/puppet/modules', 
} 

कठपुतली के हाल के संस्करण भी एक puppet module आदेश है कि आप Puppet forge, उदाहरण से मनमाना कठपुतली मॉड्यूल स्थापित करने के लिए अनुमति देता है:

$ puppet module install rcoleman/puppet_module 
Notice: Preparing to install into /home/anarcat/.puppet/modules ... 
Notice: Created target directory /home/anarcat/.puppet/modules 
Notice: Downloading from https://forgeapi.puppetlabs.com ... 
Notice: Installing -- do not interrupt ... 
/home/anarcat/.puppet/modules 
└── rcoleman-puppet_module (v0.0.3) 

अन्य विकल्प शामिल :

  • librarian
  • r10k (cited लाइब्रेरियन के लिए एक स्थानापन्न के रूप में), गतिशील वातावरण और भी बहुत कुछ

r10k का समर्थन करता है अब कठपुतली Entreprise 2015.03 का हिस्सा है, तो यह निश्चित रूप से सबसे अच्छा अभ्यास माना जा सकता है।

+1

यह आसान और बढ़िया लग रहा है, लेकिन कठपुतली – vikas027

+1

के नए संस्करण के साथ [मुद्दों] (https://github.com/ryanycoleman/puppet_module_provider/issues/4) है @ vikas027 मैंने अन्य विकल्प जोड़े हैं जो अब उपलब्ध हैं, जिनमें 'कठपुतली मॉड्यूल' कमांड शामिल है और आर 10 के पर जोर दिया गया है। – anarcat

+0

पुष्टि करें, – alekwisnia

0

मैं इस किया था और यह

exec { 'puppet-fstab': 
    path => '/bin:/usr/bin', 
    command => 'puppet module install -i /usr/share/puppet/modules/AlexCline-fstab >>/tmp/err.log', 
} 
+0

समस्याओं के कारण 'rcoleman/puppet_module' से बचें बेशक मैं केवल यह ध्यान दूंगा कि मुझे यह काम करने के ठीक बाद, मुझे एहसास हुआ कि कठपुतली "माउंट" में बनाई गई है जो मैं चाहता था, इसलिए मैंने इस मॉड्यूल को हटा दिया , लेकिन उम्मीद है कि यह अन्य सही दिशा में किसी को इंगित करता है। –

4

काम करने के लिए लग रहा था यहाँ मेरा एक उदाहरण है:

$module_stdlib = 'puppetlabs-stdlib' 
    exec { 'puppet_module_stdlib': 
    command => "puppet module install ${module_stdlib}", 
    unless => "puppet module list | grep ${module_stdlib}", 
    path => ['/bin', '/opt/puppetlabs/bin'] 
    } 

कहाँ $ module_stdlib एक मॉड्यूल मैं स्थापित करने के लिए whant है। /bin पथ एक पथ है जहां grep आता है। और /opt/puppetlabs/bin एक पथ है जहां कठपुतली बाइनरी के लिए मेरी स्थापना में मौजूद है।

+0

यह काम करता है लेकिन उद्धरण और हाइफ़न से सावधान रहें! –

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