SALT - पायथन कॉन्फ़िगरेशन प्रबंधन सॉफ्टवेयर

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



नमक क्यों?

कुछ समय पहले, मैंने इस तथ्य के बारे में सोचा था कि मेरे द्वारा प्रबंधित किए जाने वाले सर्वरों की संख्या कई से बढ़कर 20 से अधिक हो गई है और बढ़ना जारी है। केंद्रीकृत सॉफ्टवेयर अपडेट, पासवर्ड बदलने, नई वर्चुअल मशीन को जल्दी से बढ़ाने और किसी भी आईटी विशेषज्ञ के नियमित कार्यों जैसे सवाल थे।

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


जैसा कि आप समझते हैं, विकल्प नमक पर गिर गया।

अवधारणा और बुनियादी अवधारणाएँ

जैसा कि मैंने इसे समझा, साल्ट आपको 2 समस्याओं को हल करने की अनुमति देता है:
  1. कंप्यूटर समूहों पर केंद्रीकृत कमांड निष्पादन
  2. पूर्वनिर्धारित राज्यों में सिस्टम के लिए समर्थन

सिस्टम में क्लाइंट - मिनियन, और सर्वर - मास्टर शामिल हैं। संबंध मंत्री के संबंध में है, इसलिए NAT और इतने हमारे लिए बहुत डरावने नहीं हैं।
अनाज
कंप्यूटर समूह तथाकथित "अनाज" के आधार पर बनते हैं: लॉन्च के समय मिनियन सेवा द्वारा एकत्र किए गए सिस्टम पैरामीटर।
उदाहरण के लिए, यदि हम उन सभी नोड्स की उपलब्धता की जांच करना चाहते हैं जिन पर CentOS स्थापित है, तो हमें केवल लिखने की आवश्यकता है:
नमक -G 'os: CentOS' test.ping

या हम अपने सभी 64-बिट सिस्टम में कोर की संख्या जानना चाहते हैं:
नमक- जी 'कपार्क: x86_64' अनाज


इसके अलावा, मानक अनाज के साथ, हम अपना खुद का जोड़ सकते हैं:
अनाज:
भूमिकाओं:
- वेबसर्वर
- ज्ञापन
तैनाती: datacenter4
कैबिनेट: 13
टैक्सी_उ: १४ - १५

राज्य अमेरिका
दूसरा घटक राज्य फाइलें हैं जो आपको सिस्टम की स्थिति के लिए आवश्यकताओं का वर्णन करने की अनुमति देती हैं और बाद में, इन फाइलों के आधार पर, मिनियन क्लाइंट सिस्टम के आवश्यक मापदंडों को उस राज्य में ला सकता है जिसकी हमें आवश्यकता है।

लेकिन यह लिखना मुश्किल है, मैं एक उदाहरण प्रस्तुत करता हूं:
सबसे पहले, कॉन्फ़िगरेशन फ़ाइल में विज़ार्ड की जांच करें जहां SLS फ़ाइलों को संग्रहीत किया जाना चाहिए
vim / etc / नमक / मास्टर

कुछ इसी तरह की तलाश में:
file_roots:
आधार:
- / srv / नमक

इसलिए, इस फ़ोल्डर में (/ srv / नमक /) हमारी फाइलें हमारी SLS फाइलें होंगी।

अनिवार्य इस फ़ोल्डर में स्थित शीर्ष। Sls फ़ाइल है।
यहाँ मेरे परीक्षण मशीन पर इस फ़ाइल की सामग्री का एक उदाहरण है:
आधार:
'वेब 2' :
- फेल 2बन

fail2ban (थर्ड लाइन) हो सकती है: या तो एक sls फाइल या एक फोल्डर जिसमें init.sls फाइल होती है। दूसरा विकल्प मेरे लिए अधिक सुविधाजनक लगता है, इसलिए मैंने ऐसा ही किया:
मेरे लिए fail2ban फ़ाइल की सामग्री है:
cat fail2ban / init.sls

  1. fail2ban। conf :
  2. फ़ाइलप्रबंधित :
  3. - नाम: / etc / fail2ban / fail2ban। conf
  4. - स्रोत: नमक: // fail2ban / fail2ban conf
  5. जेल। conf :
  6. फ़ाइलप्रबंधित :
  7. - नाम: / etc / fail2ban / जेल। conf
  8. - स्रोत: नमक: // fail2ban / जेल conf
  9. fail2ban:
  10. pkg:
  11. - स्थापित
  12. सेवा। चल रहा है :
  13. - सक्षम: सच
  14. - घड़ी:
  15. - फ़ाइल : fail2ban। conf
  16. - फाइल : जेल। conf

इस SLS फ़ाइल में 3 इकाइयाँ हैं:


हमारे द्वारा वर्णित एसएलएस फ़ाइल के अनुसार, नमक निम्नलिखित कार्य करेगा:
  1. इस तथ्य के साथ क्लाइंट पर फ़ाइलों की तुलना करें कि वह और यदि परिवर्तन हैं तो क्लाइंट को अपडेट करेंगे (लाइनें 2 और 7)
  2. जाँच करें कि क्या स्थापित किया गया है विफल 2ban पैकेज (12-13)
  3. सेवा समावेश की जाँच करें (15)
  4. सेवा स्टार्टअप की जाँच करें (16)
  5. यदि फ़ाइलों में से एक बदल गया है, तो यह सेवा को फिर से शुरू करेगा (17)


स्थापना

सबसे पहले, मैं वास्तव में प्रोजेक्ट के लेखकों द्वारा प्रस्तावित बूटस्ट्रैप फ़ाइल का उपयोग करने की अनुशंसा नहीं करता हूं। चूंकि वह मेरी राय में, बहुत अजीब हरकतें करता है। (उदा। yum –y अपडेट और एपल टेस्ट रिपॉजिटरी का उपयोग करके)
वास्तव में, कम से कम सेंटो के साथ, आपको कुछ भी जटिल नहीं करना होगा।
नमक-मास्टर और नमक-मिनियन पैकेज एपल में हैं।
CentOS पर सेवा के नाम समान हैं।
सेवा कॉन्फ़िगरेशन फ़ाइलें / etc / नमक / में स्थित हैं

स्वामी

डिफ़ॉल्ट रूप से, मास्टर 2 पोर्ट खोलता है जिसे iptables में सक्षम किया जाना चाहिए:
iptables -I INPUT -j ACCEPT -p tcp --dport 4505 : 4506

4505 - सर्वर के साथ minions के संचार के लिए
4506 - फ़ाइलों को स्थानांतरित करने के लिए
कृपापात्र

मिनियन फ़ाइल का मूल सेटअप विज़ार्ड के पते को निर्दिष्ट करने के लिए है और, व्यक्तिगत रूप से, मैं अभी भी एक और आईडी जोड़ता हूं। यदि ऐसा नहीं किया जाता है, तो FQDN का उपयोग किया जाएगा।
जब लॉन्च किया जाता है, तो मिनियन मास्टर से जुड़ता है और उसे अपनी सार्वजनिक कुंजी देता है।
नमक-कुंजी उपयोगिता शुरू करने पर, विज़ार्ड पर अगला:
[रूट @ टेस्ट सॉल्ट] # साल्ट-की
स्वीकृत कुंजी:
अस्वीकार्य कुंजी:
web2
अस्वीकृत कुंजी:

हमें जिस कुंजी की आवश्यकता है, वह अस्वीकार्य कुंजी सूची में प्रकट होती है, इसे अनुमतियों में जोड़ने के लिए:
[रूट @ टेस्ट सॉल्ट] # साल्ट-की-वेब २
मिनियन वेब 2 के लिए कुंजी स्वीकार की गई।

यह पहले मिनियन का कनेक्शन पूरा करता है। और आप इसकी उपलब्धता की जांच कर सकते हैं
[रूट @ टेस्ट सॉल्ट] # सॉल्ट 'वेब 2' टेस्ट.पिंग
web2: सच है

ठीक है, अगर हम यह जांचना चाहते हैं कि हमारी विफलता 2 चैनल कैसे कॉन्फ़िगर किया गया है:
[रूट @ टेस्ट सॉल्ट] # साल्ट 'वेब 2' स्थिति


Minions के साथ क्या किया जा सकता है?

रिमोट कंट्रोल के लिए मॉड्यूल की सूची: salt.readthedocs.org/en/latest/ref/states/all/salt.states.pkg.html#module-salt.states.pkg
राज्यों के प्रबंधन और निगरानी के लिए मॉड्यूल की सूची: salt.readthedocs.org/en/latest/ref/states/all/salt.states.file.html#module-salt.states.file

सवाल

मुझे अभी तक 2 अंक नहीं मिले हैं:

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

सामग्री पर ध्यान देने के लिए आपका धन्यवाद। टिप्पणियों और टिप्पणियों की प्रतीक्षा है।

Source: https://habr.com/ru/post/In168125/


All Articles