कठपुतली - फ़ाइल सर्वर
कठपुतली क्लाइंट और सर्वर की अवधारणा का अनुसरण करती है, जहाँ एक सेटअप में एक मशीन उस पर चलने वाली कठपुतली सर्वर सॉफ्टवेयर के साथ सर्वर मशीन के रूप में काम करती है और शेष ग्राहक पुपेट एजेंट सॉफ्टवेयर के साथ काम करता है। फाइल सर्वर की यह सुविधा कई मशीनों के आसपास फाइलों को कॉपी करने में मदद करती है। कठपुतली में फ़ाइल सेवारत समारोह की यह सुविधा केंद्रीय कठपुतली डेमॉन के हिस्से के रूप में आती है। Puppetmasterd और क्लाइंट फ़ंक्शन फ़ाइल ऑब्जेक्ट के रूप में फ़ाइल विशेषताओं को सोर्स करने में एक महत्वपूर्ण भूमिका निभाता है।
class { 'java':
package => 'jdk-8u25-linux-x64',
java_alternative => 'jdk1.8.0_25',
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'
}
उपरोक्त कोड स्निपेट की तरह, पपेट की फ़ाइल सेवारत फ़ंक्शन फ़ाइल सेवा मॉड्यूल का समर्थन करके स्थानीय फाइल सिस्टम टोपोलॉजी को सार करती है। हम निम्नलिखित तरीके से फ़ाइल सेवारत मॉड्यूल को निर्दिष्ट करेंगे।
“puppet://server/modules/module_name/sudoers”
फाइल प्रारूप
कठपुतली निर्देशिका संरचना में, डिफ़ॉल्ट रूप से फ़ाइल सर्वर कॉन्फ़िगरेशन के अंतर्गत स्थित है /etc/puppet/fileserver.config निर्देशिका, यदि उपयोगकर्ता इस डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल पथ को बदलना चाहता है, तो इसे नए कॉन्फ़िगरेशन ध्वज का उपयोग करके किया जा सकता है puppetmasterd। कॉन्फ़िगरेशन फ़ाइल INI फ़ाइलों जैसा दिखता है, लेकिन वास्तव में समान नहीं है।
[module]
path /path/to/files
allow *.domain.com
deny *.wireless.domain.com
जैसा कि उपरोक्त कोड स्निपेट में दिखाया गया है, सभी तीन विकल्प विन्यास फाइल में दर्शाए गए हैं। मॉड्यूल नाम कोष्ठक में कुछ हद तक जाता है। रास्ता एकमात्र आवश्यक विकल्प है। डिफ़ॉल्ट सुरक्षा विकल्प सभी पहुंच को अस्वीकार करने के लिए है, इसलिए यदि कोई अनुमति लाइनें निर्दिष्ट नहीं हैं, तो जो मॉड्यूल कॉन्फ़िगर किया जाएगा वह किसी के लिए भी उपलब्ध होगा।
पथ में कोई भी या सभी% d,% h और% H हो सकते हैं जो गतिशील रूप से इसके डोमेन नाम, इसके होस्ट नाम और पूरी तरह से योग्य होस्ट नाम से प्रतिस्थापित किए जाते हैं। सभी क्लाइंट के एसएसएल सर्टिफिकेट से लिए जाते हैं (इसलिए होस्टनाम और सर्टिफिकेट नाम में कोई मिसमैच होने पर सावधान रहें)। यह उपयोगी है मॉड्यूल बना रहा है जहां प्रत्येक क्लाइंट की फ़ाइलों को पूरी तरह से अलग रखा गया है। उदाहरण, निजी होस्ट कुंजी के लिए।
[private]
path /data/private/%h
allow *
उपरोक्त कोड स्निपेट में, कोड क्लाइंट से फ़ाइल / pStreet/file.txt की खोज करने की कोशिश कर रहा है client1.vipin.com। यह /data/pStreet/client1/file.txt में इसके लिए दिखेगा, जबकि client2.vipin.com के लिए समान अनुरोध फ़ाइल सर्वर पर /data/pStreet/client2/file.txt फ़ाइल को पुनर्प्राप्त करने का प्रयास करेगा।
सुरक्षा
कठपुतली फ़ाइल सर्वर पर फ़ाइल को सुरक्षित करने की दो बुनियादी अवधारणाओं का समर्थन करती है। यह विशिष्ट फ़ाइलों तक पहुंच की अनुमति देकर और उन लोगों तक पहुंच से इनकार करके प्राप्त किया जाता है जिनकी आवश्यकता नहीं है। डिफ़ॉल्ट रूप से, कठपुतली किसी भी फाइल तक पहुंच की अनुमति नहीं देता है। इसे स्पष्ट रूप से परिभाषित करने की आवश्यकता है। जिस प्रारूप का उपयोग फ़ाइलों को अनुमति देने या अस्वीकार करने के लिए किया जा सकता है वह आईपी पते, नाम या वैश्विक अनुमति का उपयोग करके होता है।
यदि क्लाइंट सीधे पपेट फाइल सर्वर से जुड़ा नहीं है, उदाहरण के लिए रिवर्स प्रॉक्सी और मोंगरेल का उपयोग कर रहा है, तो फ़ाइल सर्वर को प्रॉक्सी सर्वर से आने वाले सभी कनेक्शन दिखाई देंगे न कि कठपुतली क्लाइंट। उपरोक्त मामलों में, होस्टनाम के आधार पर होस्ट नाम को प्रतिबंधित करना सबसे अच्छा अभ्यास है।
फ़ाइल संरचना को परिभाषित करते समय एक महत्वपूर्ण बात यह है कि, अनुमति के बयान से पहले सभी अस्वीकृत विवरणों को पार्स किया जाता है। इसलिए, यदि कोई इनकार करने वाला बयान किसी मेजबान से मेल खाता है, तो उस मेजबान को अस्वीकार कर दिया जाएगा और यदि आगामी फाइलों में कोई अनुमति बयान नहीं लिखा जाता है, तो मेजबान को अस्वीकार कर दिया जाएगा। यह सुविधा किसी विशेष साइट की प्राथमिकता तय करने में मदद करती है।
होस्ट का नाम
किसी भी फ़ाइल सर्वर कॉन्फ़िगरेशन में, फ़ाइल होस्टनाम को दो तरीकों से निर्दिष्ट किया जा सकता है या तो पूरा होस्टनाम का उपयोग करके या निम्नलिखित उदाहरण में दिखाए गए अनुसार * वाइल्डकार्ड का उपयोग करके संपूर्ण डोमेन नाम निर्दिष्ट करें।
[export]
path /usr
allow brcleprod001.brcl.com
allow *.brcl.com
deny brcleprod002.brcl.com
आईपी पता
किसी भी फ़ाइल सर्वर कॉन्फ़िगरेशन में, फ़ाइल पते को पूर्ण आईपी पते या वाइल्डकार्ड पते का उपयोग करके, होस्ट नामों के समान निर्दिष्ट किया जा सकता है। एक भी CIDR सिस्टम नोटेशन का उपयोग कर सकता है।
[export]
path /usr
allow 127.0.0.1
allow 172.223.30.*
allow 172.223.30.0/24
वैश्विक अनुमति
वैश्विक अनुमति का उपयोग तब किया जाता है जब उपयोगकर्ता चाहता है कि हर कोई एक विशेष मॉड्यूल का उपयोग कर सकता है। ऐसा करने के लिए, एक एकल वाइल्डकार्ड सभी को मॉड्यूल तक पहुंचने में मदद करता है।
[export]
path /export
allow *