मैं कठपुतली प्रमाणपत्रों पर पूर्व-हस्ताक्षर कैसे कर सकता हूं?


26

कठपुतली को ग्राहक (कठपुतली) के प्रबंधन और सर्वर (कठपुतली) के बीच प्रमाण पत्र की आवश्यकता होती है। आप क्लाइंट पर मैन्युअल रूप से चला सकते हैं और फिर प्रमाणपत्र पर हस्ताक्षर करने के लिए सर्वर पर जा सकते हैं, लेकिन आप क्लस्टर / क्लाउड मशीनों के लिए इस प्रक्रिया को कैसे स्वचालित करते हैं?


1
जब आप एक होस्टनाम का पुन: उपयोग करते हैं तो एक कोने की समस्या होती है। स्वतः खोज से इसका समाधान नहीं होगा। मुझे भी यही समस्या आ रही है।
जोएल के

जवाबों:


28

सर्वर (कठपुतली) चलाने पर:

puppetca --generate <NAME>

फिर क्लाइंट पर सर्वर से निम्नलिखित कॉपी करें:

/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem

यदि आप <NAME>hostname उपयोग के अलावा किसी अन्य चीज़ के रूप में साइन इन करना चाहते हैं:

puppetd --fqdn=<NAME>

और डेमॉन चलाने पर /etc/puppet/puppet.conf में जोड़ें

[puppetd]
certname=<NAME>

यह वास्तव में उपयोगी है, धन्यवाद। मैं उस पर ख़ुद को हैरान कर रहा हूं।
जॉन टॉपर

1
नए आदेश है puppet cert --generate <NAME>देखना serverfault.com/a/457364/71452
c33s

6

यदि आपके पास एक होस्ट डेटाबेस है, तो आप ऑटोसाइन सुविधा का उपयोग कर सकते हैं। अपनी puppet.confफ़ाइल में [puppetmasterd], जोड़ें:

autosign = /path/to/autosign.conf

फिर इस फाइल को जेनरेट करने के लिए एक क्रेस्टैब का उपयोग करें। जब वे पहली बार कठपुतली से जुड़ते हैं तो ऑटोसाइन फाइल ऑटोसाइन के लिए मेजबानों की एक सूची होती है। मैं अपने कठपुतली मेजबानों को कॉन्फ़िगर करने के लिए LDAP का उपयोग करता हूं, इसलिए मेरा क्रोन ऐसा दिखता है:

* * * * * root /usr/bin/ldapsearch -x '(objectClass=puppetClient)' cn | /bin/grep ^cn | /bin/sed 's!^cn: !!' > /etc/puppet/autosign.conf

मुझे यकीन है कि iClassify का उपयोग करने वाले लोग ऐसा करने के लिए एक क्वेरी लिखने में सक्षम होंगे।

बेशक, आपको नेटवर्क पर कुछ भरोसा रखने की आवश्यकता है। मैं EC2 पर इसका इस्तेमाल करता हूं। मेरा कठपुतली सर्वर एक समूह में है जो केवल अन्य विश्वसनीय समूहों से कनेक्शन की अनुमति देता है। मैं यह करने की सलाह नहीं दूंगा यदि आपका कठपुतली इंटरनेट के लिए खुला है।


6

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

[puppetmasterd]
autosign = true

आप झूठी और एक फ़ाइल निर्दिष्ट कर सकते हैं जो यह निर्धारित करने के लिए उपयोग करें कि किस कुंजी को भी हस्ताक्षर करना है।

कठपुतली विकि पर विन्यास संदर्भ देखें ।

एक अन्य विकल्प की तरह एक उपकरण का उपयोग करने के लिए है Capistrano जहां puppetmaster नोड निर्दिष्ट और ग्राहक उदाहरण नोड्स बनाते हैं, और काम में,:

  • उदाहरण नोड बनाएँ, रूबी के साथ EC2 के एपीआई के साथ कहें।
  • उदाहरण के लिए, सर्वर से कनेक्ट करके कठपुतली चलाएं।
  • उदाहरण के अनुरोध के लिए कठपुतली को चलाएं - चूंकि हम उदाहरण का नाम जानते हैं, जैसा कि ऊपर दिए गए निर्माण में दिया गया था)।
  • उदाहरण के लिए फिर से कठपुतली चलाएं, इस बार प्रमाणपत्र पर हस्ताक्षर करते समय सफलतापूर्वक कनेक्ट हो रहा है।

नोट: यदि आप कठपुतली 2.6 या इसके बाद के संस्करण का उपयोग कर रहे हैं, तो [puppetmasterd]अनुभाग शीर्षक अब होना चाहिए [master]। अधिक जानकारी के लिए docs.puppetlabs.com/guides/tools.html देखें ।
MrLore

4

सर्वर (कठपुतली) चलाने पर:

puppetca --generate <NAME>

फिर क्लाइंट पर सर्वर से निम्नलिखित कॉपी करें:

/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem

यदि आप hostname उपयोग के अलावा कुछ और करना चाहते हैं:

puppetd --fqdn=<NAME>

और डेमॉन चलाने पर /etc/puppet/puppet.conf में जोड़ें

[puppetd]
certname=<NAME>

यह मुझे और अधिक जटिल लगता है। आप क्लाइंट पर कठपुतली स्थापित करते हैं, यह एक प्रमाण पत्र बनाता है और इसे हस्ताक्षर करने के लिए मास्टर को भेजता है। जब आप इसे मास्टर पर हस्ताक्षर करते हैं, तो क्लाइंट अगली बार इसे चलाने के बाद काम करना शुरू कर देगा। इसमें कम चरण शामिल हैं। यदि आप वास्तव में इस कदम को भी बचाना चाहते हैं, तो आप एक क्रॉन जॉब चला सकते हैं, जो कुछ इस तरह करता है: होस्ट में $ (कठपुतली) के लिए; कठपुतली करना - $ मेजबान होस्ट करना; किया
डेविड पशले

1
यह ठीक है अगर आपके पास एक या दो मशीनें हैं, लेकिन जब आप क्लाउड में मशीनों को शुरू कर रहे हैं और बंद कर रहे हैं, तो आप इसे मैन्युअल रूप से नहीं करना चाहते हैं, मैं एक बेस मशीन शुरू कर सकता हूं, एक स्क्रिप्ट चला सकता हूं, जो अंदर जाता है और सब कुछ सेट करता है कठपुतली मास्टर को लॉगिन करने के बिना कठपुतली के माध्यम से।
रँगार्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.