वन शेफ टू रूल थेम ऑल


10

मैं Magento की तैनाती को स्वचालित करने के लिए शेफ में देख रहा हूं - दोनों मानक Magento होस्टिंग विकल्पों के साथ-साथ EC2 जैसे वातावरण में। मैंने चारों ओर गुगली की है और मैं कई व्यंजनों को देखता हूं, लेकिन कोई भी वास्तव में मुझे विहित नहीं करता है। क्या कोई विशेष शेफ स्क्रिप्ट है जो बेहतर / सर्वश्रेष्ठ है? इसके अलावा, यदि आपने पहले PHP के साथ शेफ की तैनाती की है, तो एक बात क्या है जो आप चाहते हैं कि आपको पता चले कि आप कब शुरू कर रहे थे?


2
काश, मैं ज्ञात होता कि Ansible ( ansible.com/home ) मौजूद था।
रीड ब्लोमक्विस्ट

कुछ अन्य विकल्प यदि आप रुचि रखते हैं, तो Saltstack.com और docker.com । दोनों आशाजनक दिखते हैं, लेकिन मुझे किसी के साथ काम करने का मौका नहीं मिला।
बीफलॉजिक जूल


मुझे लगता है कि रीड की किसी चीज़ पर, एलन री: अन्सिबल। इसके लिए क्लाइंट पर एजेंट (ssh + कीज़ के साथ काम करता है) की ज़रूरत नहीं है, यह एक डिक्लेक्टिव सिस्टम है, इसलिए यह एक तरह से बेकार है और सामान्य तौर पर मैंने पाया है कि इसका इस्तेमाल करने से मुझे "एक काम करना है, बस करो" और यह अच्छी तरह से करते हैं "शेफ, कठपुतली और नमक जैसे अधिक मजबूत प्रणालियों की तुलना में यूनिक्स जैसी भावना। यह तब से है जब आपने इसे मूल रूप से पोस्ट किया था, शेफ के साथ काम करने के बाद आपके विचारों पर कोई अपडेट?
ब्रायन 'बीजे' हॉफपॉयर जूनियर।

जवाबों:


6

दिनचर्या के एक आकार-फिट-सभी सेट के लिए लगभग असंभव है। मुझे एक बैश स्क्रिप्ट लिखने में सफलता मिली है, जो chef-clientप्रदान की गई मेजबानों की सूचियों पर चलती है knife search। प्रक्रियाएं इस तरह दिखती हैं ...

Ubuntu 12.04 LTS पर खुला स्रोत बावर्ची सर्वर 10.18.2

  1. आरंभिक चर
  2. के लिए GitHub से नवीनतम संशोधन हैश प्राप्त करें $branch
  3. HTTP 503 स्थिति पर अलर्ट को रोकने के लिए उपलब्धता की निगरानी अक्षम करें
  4. सभी वेब और उपयोगिता होस्ट्स को रखरखाव मोड में स्विच करें
  5. उपयोगिता की तैनाती
    1. Magento के क्रोन और सभी Resque श्रमिकों को रोकें
    2. पता फाइल सिस्टम निर्भरता
    3. शेफ एक नए रिलीज के रूप में परिभाषित संशोधन की जाँच करता है
    4. पता Magento निर्भरता (पैकेज, मॉड्यूल, फाइल सिस्टम, अनुमतियाँ)
    5. स्वचालन के लिए सभी क्रोन कार्यों और लिपियों को अपडेट करें
    6. सभी मॉड्यूल तैनात करें (संगीतकार)
    7. के साथ कैश साफ़ करें n98-magerun.phar
    8. के साथ कोई भी माइग्रेशन चलाएं n98-magerun.phar
    9. Magento के क्रोन को फिर से सक्षम करें
    10. Resque श्रमिकों को प्रारंभ करें
  6. पहले वेब होस्ट की तैनाती करें
    1. पता फाइल सिस्टम निर्भरता
    2. शेफ $revisionएक नई रिलीज के रूप में परिभाषित की जाँच करता है
    3. पता मैगेंटो निर्भरता
    4. सभी Magento मॉड्यूल की तैनाती करें
  7. न्यू अवशेष में एक नई तैनाती को चिह्नित करें
  8. उपलब्धता निगरानी सेवाओं को सक्षम करें
  9. अन्य सभी वेब होस्ट पर लोड बैलेंसर सेवाओं को अक्षम करें
  10. वेब होस्ट पर तैनाती जारी रखें, क्रमिक रूप से उन्हें ऑनलाइन लाएं
  11. खोज होस्ट के लिए शेफ दिनचर्या निष्पादित करें

स्रोत: https://gist.github.com/parhamr/6177160#file-2-dep तैनाती


4

इस तरह से मैंने इस क्षेत्र से संपर्क किया है, जबकि सिनडमिन / डेप्स भूमिका निभा रहा हूं। अधिकांश निम्नलिखित केवल सामान्य सिद्धांत होंगे जिनका मैं पालन करने की कोशिश करता हूं और बावर्ची विशिष्ट नहीं।

मैंने पपेट के साथ जाना समाप्त कर दिया क्योंकि मुझे उस समय अधिक संसाधन मिले और मुझे अपने लिए चुनना आसान लगा।

मैंने अपाचे, php5, आदि जैसी चीजों के लिए उपलब्ध विभिन्न पूर्व-निर्मित मॉड्यूलों को देखा, उनमें से कई मुझे जरूरत से ज्यादा रास्ता लग रहे थे और मंच से अपरिचित होने के कारण मुझे भरोसा नहीं था कि क्या चल रहा है। मैंने तय किया कि यह मेरे लिए सरल होगा कि मैं प्रत्येक नोड प्रकार पर किए गए काम की पहचान करूं।

मैंने टीम के स्थानीय विकास वातावरण (वर्ग्रेंट + वर्चुअल बॉक्स) को व्यवस्थित करके प्रक्रिया शुरू की। प्रत्येक सेवा / घटक के लिए मैंने एक मॉड्यूल बनाया: php5, apache2, redis, mysql, आदि।

एक बार जब देव वातावरण स्थिर था / काम कर रहा था तो मैंने QA वातावरण बनाना शुरू किया। मैंने वेब सर्वरों, रेडिस, वार्निश आदि के लिए सामान्य नोड प्रकारों को परिभाषित किया, जो कि देव के समान ही मॉड्यूल का पुन: उपयोग करते हैं। एक बार जब यह किया गया था, तो स्टेजिंग और प्रोडक्शन को उठने और चलने के लिए कम से कम परिवर्तनों की आवश्यकता थी।

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

सबसे महत्वपूर्ण बात, रखना सरल है। पर्यावरण के सबसे महत्वपूर्ण / समय लेने वाले भागों को स्वचालित / मानकीकृत करें। Iterate, विकसित करना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.