2013-10-31 7 views
13

पर उत्तरदायी उपकरण जैसे परिनियोजन उपकरण के लाभ वर्तमान में मेरे पास शैल में मेरी सभी परिनियोजन स्क्रिप्ट हैं, जो लगभग 10 प्रोग्राम स्थापित करती हैं और उन्हें कॉन्फ़िगर करती हैं। जिस तरह से मैं इसे खोलता हूं, उसके लिए एक शानदार उपकरण है:शैल

मॉड्यूलर: प्रति स्क्रिप्ट केवल एक प्रोग्राम, इस तरह मैं विभिन्न सर्वरों पर प्रोग्राम फैल सकता हूं।

सरल: शैल स्क्रिप्ट अत्यंत सरल कर रहे हैं और स्थापित किसी अन्य सॉफ्टवेयर की जरूरत नहीं है।

एक-क्लिक: मुझे केवल एक बार स्क्रिप्ट स्क्रिप्ट चलाने की ज़रूरत है और सबकुछ सेटअप हो गया है।

अज्ञेयवादी: अधिकांश प्रोग्रामर शैल को समझ सकते हैं और किसी विशिष्ट प्रोग्राम का उपयोग करने के बारे में जानने की आवश्यकता नहीं है।

संस्करण: चूंकि मेरा कोड GitHub पर है, इसलिए एक साधारण गिट खींचें और सभी पर्यवेक्षक पुनरारंभ करें मेरा नवीनतम कोड चलाएगा।

इन सभी फायदों के साथ, लोग लगातार मुझे ऐसे उपकरण का उपयोग क्यों कर रहे हैं जैसे Ansible या Chef, और खोल का उपयोग न करें?

+1

इस विषय पर मुझे एक अच्छा लेख मिला। यह sysadmins को मनाने के प्रयास में मिलने वाले पुनरावर्ती प्रश्नों को संबोधित करने में एक अच्छा काम करता है, जो शेफ/उत्तरदायी/कठपुतली जैसे उपकरण देखने योग्य हैं: http://devopsu.com/blog/ansible-vs-shell-scripts/ –

+2

तथ्य यह है कि यह मुख्य रूप से राय-आधारित है क्योंकि मैं स्टैक ओवरफ्लो के बारे में चिंतित हूं। अधिकांश चीजें जो निर्णय में शामिल हैं (राय)। – AdamC

+0

केवल 'सरल' और 'अज्ञेयवादी' भी उदाहरण पर लागू नहीं होते हैं। Ansible। – jwg

उत्तर

35

शैल स्क्रिप्ट इतनी खराब नहीं हैं, अगर आप उन्हें काम करने की ज़रूरत है तो आपको यह करना होगा।

लोग अन्य उपकरणों की सलाह देते हैं (जैसे CFEngine, कठपुतली, बावर्ची, Ansible, और जो कुछ भी) विभिन्न कारणों से, जिनमें से कुछ कर रहे हैं के लिए:

  1. कारण लोगों make बजाय जैसे टूल का उपयोग का एक ही सेट स्क्रिप्ट के साथ सिस्टम बनाने के कार्यान्वयन के लिए।
  2. Idempotency: गुणवत्ता जिससे ले लिया सुनिश्चित करता है यह हो सकता है कि सुरक्षित रूप से दोबारा चलाता है कितनी भी बार, और प्रत्येक पर यह या तो वांछित राज्य के लिए आ जाएगा चलाते हैं, या वहाँ रहते हैं, या कम से कम इस कदम // अभिसरण // तरीके से इसके करीब।

    ज़रूर, आप स्क्रिप्ट लिखने सकते हैं, ताकि अंत परिणाम idempotent हैं:

    # Crude example 
    grep myhost /etc/hosts || echo '1.2.3.4 myhost' >> /etc/hosts 
    

    लेकिन यह idempotent उपकरणों के साथ एक बहुत बेहतर होता है।

  3. शैल स्क्रिप्ट अनिवार्य हैं। शेफ/Ansible/Puppet जैसे उपकरण घोषणात्मक हैं। सामान्य रूप से, घोषित करने से बेहतर उत्पादकता बढ़ जाती है जो पैमाने के कुछ सीमा को देखते हैं।

  4. डीएसएल कुछ शक्ति ले लेता है लेकिन फिर वे आपको आदेश, सफाई और अन्य शक्ति प्रदान करते हैं। मुझे शैल स्क्रिप्टिंग पसंद है, लेकिन मुझे रूबी भी पसंद है, और कठपुतली लोग अपनी भाषा से प्यार करते हैं! यदि आपको अभी भी लगता है कि खोल जाने का तरीका है क्योंकि आपको अधिक पसंद है, हे, आपको तब कोई समस्या नहीं है।

  5. [जोड़ा गया] पुन: वितरित, पुनः उपयोग करने योग्य पैकेज।रूबी के रत्न हैं, पर्ल में सीपीएएन है, नोड में एनपीएम है, जावा में मैवेन है - और सभी भाषाओं में इनके स्वयं के सम्मेलन हैं कि स्रोत कोड को पैकेज किया जाना चाहिए और दुनिया के साथ साझा किया जाना चाहिए।

    शैल स्क्रिप्ट्स नहीं।

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

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

+1

+1। बुकमार्क। अद्भुत स्पष्टीकरण। – slayedbylucifer