2012-03-01 10 views
7

मैं मॉड्यूल (Nginx इस विशिष्ट मामले में) से एक पैकेज स्थापित कर रहा हूं और मॉड्यूल के बाहर से कॉन्फ़िगरेशन फ़ाइल शामिल करना चाहता हूं, यानि शीर्ष स्तर files निर्देशिका के समानांतर शीर्ष स्तर manifests निर्देशिका। मुझे फाइल को स्रोत करने का कोई तरीका नहीं दिखता है, हालांकि इसे मॉड्यूल में या मेरे वर्तमान वाग्रेंट पर्यावरण में पूर्ण स्थानीय पथ का जिक्र करते हुए।मॉड्यूल के बाहर से कठपुतली फाइलों को सोर्सिंग

क्या कठपुतली दस्तावेज में वर्णित मॉड्यूल के बाहर से फ़ाइलों को सोर्स करने की अनुमति देता है?

उत्तर

3

यदि मैं आपका प्रश्न सही ढंग से समझता हूं, तो आप कर सकते हैं। अपने मॉड्यूल में इस

file { '/path/to/file': 
    ensure => present, 
    source => [ 
       "puppet:///files/${fqdn}/path/to/file", 
       "puppet:///files/${hostgroup}/path/to/file", 
       "puppet:///files/${domain}/path/to/file", 
       "puppet:///files/global/path/to/file", 
    ], 
} 

की तरह एक साधारण कोड काम करेगा। /पथ/से/फ़ाइल को "फाइल" कठपुतली शेयर में स्थित फ़ाइल का उपयोग करके सोर्स किया जाएगा। (ऊपर दिए गए उदाहरण में, यह 4 अलग-अलग स्थानों में खोज करता है)।

अद्यतन हो सकता है आप फ़ाइलें जो कठपुतली fileserver द्वारा साझा नहीं है स्टोर करने के लिए एक निर्देशिका के बारे में बात कर रहे हैं (http://docs.puppetlabs.com/guides/file_serving.html पर देखने के), और इस मामले में आप मुझे लगता है कि नहीं कर सकते, Vagrant या नहीं, लेकिन आप जोड़ सकते हैं यह करने के लिए अपने कठपुतली फाइलसेवर के लिए। मुझे लगता है कि यह करने के लिए यह सबसे अच्छा (और शायद केवल) तरीका है।

1

आप आप बस अपने Vagrant परियोजना निर्देशिका के भीतर फ़ाइलों को स्टोर कर सकते हैं Vagrant VMs के एक नंबर है, तो (अपने VagrantFile युक्त)। यह निर्देशिका आम तौर पर निर्माण पर वीएम के भीतर सभी वीएम के रूप में/वारंटी के रूप में उपलब्ध है।

आप अपने VMs के लिए उपलब्ध होने की आपके कंप्यूटर पर अन्य निर्देशिकाओं चाहते हैं, बस कठपुतली भीतर फ़ाइलों का उपयोग करने के लिए आप बस वी एम को स्थानीय फ़ाइलों के रूप में उन्हें इलाज कर सकते हैं अपने VagrantFile के लिए निम्न जोड़ने

# see http://docs.vagrantup.com/v1/docs/config/vm/share_folder.html 
config.vm.share_folder "v-packages", "/vagrant_packages", "../../dpkg" 

फिर

# bad example, bub basically use 'source => 'file:///vagrant/foo/bar' 
file { '/opt/cassandra': 
    ensure => directory, 
    replace => true, 
    purge => true, 
    recurse => true, 
    source => 'file:///vagrant/conf/dist/apache-cassandra-1.2.0', 
} 

यह शायद अगर आप केवल स्थानीय कठपुतली प्रकट होता है/मॉड्यूल का उपयोग कर ऐसा करने के लिए केवल बुद्धिमान है।

0

शायद भी bennylope, लेकिन दूसरों के लिए जो इस सवाल के बीच होने वाले, के रूप में मैं खुद के लिए यह पता लगाना पहले किया था ...

अपने Vagrantfile में इस तरह सामान शामिल करें मदद करने के लिए देर हो गई ...

GUEST_PROVISIONER_CONFDIR = "/example/destination/path" 
HOST_PROVISIONER_CONFDIR = "/example/source/path" 
config.vm.synced_folder HOST_PROVISIONER_CONFIDIR, GUEST_PROVISIONER_CONFDIR 
puppet.options = "--fileserverconfig='#{GUEST_PROVISIONER_CONFDIR}/fileserver.conf'" 

फिर सुनिश्चित करें कि/उदाहरण/स्रोत/पथ में संदर्भित fileserver.conf फ़ाइल है। यह कुछ की तरह दिखना चाहिए ...

[foo] 
    path /example/destination/path 
    allow * 

अब, यह सोचते हैं उदाहरण-file.txt मौजूद है/उदाहरण/स्रोत/पथ, निम्नलिखित अपने प्रकट होता है में काम करेंगे:

source => "puppet:///foo/example-file.txt", 

देखें:

  1. Puppet configuration reference entry for fileserverconfig
  2. Serving Files From Custom Mount Points
संबंधित मुद्दे