कठपुतली मास्टर का उपयोग करके सभी मशीनों की फ़ाइलों को कॉपी कैसे करें?


12

मैंने ubuntu 11.04 में कठपुतली स्थापित की है और मैंने अपने सभी ग्राहकों में कठपुतली स्थापित की है। मैं कठपुतली मास्टर के साथ अपने सभी कठपुतली ग्राहकों में शामिल हो गया हूं। क्या कठपुतली मास्टर से इन सभी कठपुतली ग्राहकों के लिए एक फ़ाइल की प्रतिलिपि बनाना संभव है?

उदाहरण के लिए:

मेरे पास अपने डेस्कटॉप (कठपुतली मास्टर) में datas.xls नाम की फ़ाइल है। मैं निम्नलिखित स्थानों (/ होम / ऑपरेटर 1 / डेस्कटॉप / बैकअप /) में अपने सभी कठपुतली ग्राहकों के लिए इस फाइल को कैसे कॉपी करूं?

अपडेट करें:

  • नमस्ते अभी भी फ़ाइल साझा नहीं हो रही है।
  • इस पंक्ति को संशोधित करने के puppet:///modules/module_name/datas.xlsलिए फ़ाइल की प्रतिलिपि /etc/puppet/modules/mymodule/manifests/datas.xlsकिस स्थान पर है ?

क्लाइंट पर त्रुटि: (हल)

root@testing:~# puppetd --test 
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

क्लाइंट पर त्रुटि 2:

root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/

नई अपडेट:

इस मॉड्यूल को सभी नोड्स पर कैसे लागू किया जाए? ऐसे कि फाइल सभी नोड्स में कॉपी हो जाएगी।


... लेकिन क्या आपने यह प्रश्न पहले से नहीं पूछा है? askubuntu.com/questions/61080/…
जीवाश्म

हां लेकिन समाधान अब काम नहीं कर रहा है।
karthick87

इसके अलावा, यह बहुत स्पष्ट नहीं है, उपयोगकर्ता ने कुछ वेबसाइटों से सामग्री की प्रतिलिपि बनाई है।
karthick87

फिर भी एक नया प्रश्न बनाने का कोई कारण नहीं है (!) Btw मैंने कॉपी किया कि एक लिंक जोर्ज ने मुझे दिया था और उसने मुझे c / p से कहा था;) उस उत्तर में क्या है अभी भी काम करता है !?
रिनजविंड

: यहाँ एक और संदर्भ है serverfault.com/questions/200101/...
Rinzwind

जवाबों:


24

कठपुतली आपके सिर को पाने के लिए एक राक्षस का एक सा है, इसलिए उदाहरण से सीखना कोई बुरी बात नहीं है। नीचे मैं मान रहा हूं कि आप मॉड्यूल का उपयोग कर रहे हैं - कृपया टिप्पणी में कहें कि आप नहीं हैं या यदि आपको मॉड्यूल को एक साथ रखने के बारे में अधिक विवरण की आवश्यकता है।

मान लीजिए कि आप एक नया मॉड्यूल शुरू करते हैं, जिसे कहा जाता है mymodule/etc/puppetकठपुतली मास्टर पर कठपुतली घर निर्देशिका (आमतौर पर ) में आपको मॉड्यूल मैनिफ़ेस्ट और फ़ाइल निर्देशिका बनाना चाहिए:

mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files

फिर उस निर्देशिका में एक फ़ाइल बनाएं जिसका नाम है init.ppऔर दर्ज करें:

class myfile {
    file { '/home/operator1/Desktop/Backup':
        ensure => directory,
        mode => '0755',
        owner => 'operator1',
        group => 'operator1',
    }

    file { "/home/operator1/Desktop/Backup/datas.xls":
        mode => "0644",
        owner => 'operator1',
        group => 'operator1',
        source => 'puppet:///modules/module_name/datas.xls',
    }
}

फिर datas.xlsफ़ाइल को मॉड्यूल की filesनिर्देशिका में डालें - इस उदाहरण में modules/mymodule/files/। (ध्यान दें कि टेम्प्लेट केtemplates लिए एक निर्देशिका भी हो सकती है )।

में manifests/site.ppफ़ाइल आप की तरह कुछ कर रही द्वारा मॉड्यूल आयात और वर्ग को शामिल करने की जरूरत है:

import 'mymodule'

node base {
    include myfile
}

node server1 inherits base {}
node server2 inherits base {
    # extra config here
}

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

node server[0-9] inherits base {}

यदि आपको और स्पष्टीकरण की आवश्यकता हो तो मुझे टिप्पणियों में बताएं।

कठपुतली मास्टर से बात करने के लिए एक ग्राहक की स्थापना

क्लाइंट पर, आपको करने की आवश्यकता है:

sudo apt-get install puppet

तब संपादित करें /etc/default/puppetऔर परिवर्तन START=noकरने के लिए START=yes

यह भी संपादित करें /etc/puppet/puppet.confऔर [main]यह बताने के लिए कि कठपुतली मास्टर को खोजने के लिए अनुभाग में एक पंक्ति जोड़ें :

server=puppet.mydomain.com

तब हम एक टेस्ट रन के साथ कर सकते हैं sudo puppetd --test। यदि आपको मुख्य त्रुटियां मिलती हैं, तो आपको कठपुतली मास्टर सर्वर पर जाने और क्लाइंट कुंजी पर हस्ताक्षर करने की आवश्यकता हो सकती है। सटीक नाम की जाँच करने के लिए आप कर सकते हैं sudo puppetca --listऔर फिर sudo puppetca --sign server1.mydomain.com(या जो भी सर्वर नाम सूची कमांड से था)।

अब कठपुतली सेवा शुरू करें sudo service puppet startऔर आपको दूर रहना चाहिए। कठपुतली सेवा हर घंटे चलेगी, इसलिए यदि आप अपने कठपुतली व्यंजनों को अपडेट करते हैं तो आपके सभी ग्राहक भी अपडेट होंगे।

फ़ाइलें हटाना

मैं उस मूल प्रश्न पर ध्यान देता हूं जो आप जानना चाहते थे कि फ़ाइलों को कैसे हटाया जाए। आप संपादित करेंगे manifests/init.ppहोने के लिए

file { "/home/operator1/Desktop/Backup/datas.xls":
    ensure => absent,
}

अन्य उपयोगी टिप्स

अगर आपको परेशानी हो रही है तो कुछ चीजें हैं जो आप कर सकते हैं। कठपुतली के साथ किसी भी मशीन पर आप अपने सिंटैक्स को चलाकर देख सकते हैं

puppet --parseonly --ignoreimport myfile.pp

या --ignoreimportझंडे को निकालकर पूरी जाँच करें , हालाँकि इससे कुछ मज़ेदार त्रुटि संदेश मिल सकते हैं जो वास्तव में मुझे मिली त्रुटियों के कारण नहीं हैं। आप कठपुतली ग्राहक मशीन पर कठपुतली लाइव भी कर सकते हैं:

sudo puppetd --test

जो विभिन्न रंगों में हाइलाइट की गई त्रुटियों और चेतावनियों के साथ विभिन्न उपयोगी आउटपुट दिखाता है। यदि आप और भी अधिक विवरण चाहते हैं, तो आप चला सकते हैं:

sudo puppetd --test --debug

लेकिन यह आम तौर पर इतना उत्पादन उत्पन्न करता है कि इसके माध्यम से उतारा जाना कठिन होता है, इसलिए केवल इतना करें कि यदि आपने पहले से ही पिछले चरणों की कोशिश की है और फंस गए हैं और सब कुछ देखने की जरूरत है।

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


मुझे आज रात इस समाधान की कोशिश करो, और आप अद्यतन पता है। बहुत बहुत धन्यवाद :)
karthick87

इस लाइन puppet:///modules/module_name/datas.xlsको कॉपी करने के लिए फ़ाइल को कैसे संशोधित किया जाए, इस स्थान पर है/etc/puppet/modules/mymodule/manifests/datas.xls
karthick87

कॉपी की जाने वाली फ़ाइल को रखा जाना चाहिए /etc/puppet/modules/mymodule/files/datas.xls- मैं उस बारे में स्पष्ट होने के उत्तर को अपडेट करूंगा।
हामिश डाउनर

ओके थैंक यू,। मैनिफ़ेस्ट कैसे चलाना है?
karthick87 14

कठपुतली से सभी मॉड्यूल को इस मॉड्यूल को कैसे लागू किया जाए? बलपूर्वक हर नोड पर इसे लागू करने के बजायpuppet agent --test
karthick87
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.