2013-02-15 27 views
5

चला रहा है मैं समझता हूं कि शेफ इस अर्थ में आधारित है कि यह व्यंजनों में किसी भी बदलाव का पता लगाता है और परिवर्तन स्थापित करने के लिए शेफ क्लाइंट का उपयोग करता है। हम ईसी 2 उदाहरण लाने के लिए शेफ का उपयोग करते हैं लेकिन शेफ-क्लाइंट जो हर 30 मिनट में डिमन के रूप में चलता है और सभी व्यंजनों को फिर से चलाता है जिससे कुछ सेवाओं में अवांछित परिवर्तन होते हैं। मैं जानना चाहता हूं कि इसे बदलने के लिए कौन से विकल्प हैं और शेफ-क्लाइंट को मांग के आधार पर चलाएं।शेफ डेमन हर 30 मिनट

निम्नलिखित विकल्पों के मैं अब तक के बारे में सोचा है,

  1. बदलें अंतराल समय महाराज ग्राहक रसोई की किताब पर हैं बहुत ही उच्च समय है, ताकि डेमॉन अक्सर कोई रन नहीं करता है।
  2. ईसी 2 उदाहरण तैनात किए जाने के बाद शेफ डिमन एसएसएच या यहां तक ​​कि एक शेफ-रेसिपी भी मार डालें।

मुझे विश्वास है कि शेफ-क्लाइंट में साप्ताहिक आधार पर लॉग रोटेशन निर्धारित होता है, यह फिर से शेफ-क्लाइंट को पुनरारंभ करेगा। इस पुल आधारित व्यवहार से बचने के तरीके पर कोई विचार?

+0

उस नोड की खाली रन_सूची। शेफ-क्लाइंट को हर 30 मिनट में कुछ भी नहीं करने और "मांग पर" चलाने के लिए $ चाकू नोड your_node संपादित करें और run_list अपडेट करें। – karthik

उत्तर

10

सबसे पहले:

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

service 'apache2' do 
    action [:enable, :start] 
end 

template '/etc/apache2/httpd.conf' do 
    action :create 
    [...] 
    notifies, :restart, 'service[apache2]' #this notification will launch, only if the file has changed 
end 

तुम भी महाराज ग्राहक डेमॉन निष्क्रिय कर सकते हैं, chef-client --once चलाकर। इस तरह महाराज नोड का प्रावधान करेगा और क्रॉन से स्वयं को हटा देगा। इस प्रकार भविष्य में यह केवल मांग पर मैन्युअल रूप से चलाया जाएगा।

लेकिन आपकी बड़ी समस्या वास्तव में है कि आपके शेफ-क्लाइंट रन प्रत्येक रन के साथ आपकी कुछ सेवाओं में परिवर्तन का कारण बनता है। आपको इसे पहले हल करना चाहिए।

+0

धन्यवाद ड्रैको। आप हैं कि बड़ी समस्या क्या है और इसे हल करने की आवश्यकता है। लेकिन जब तक हल नहीं हो जाता है तब तक हमें ईसी 2 उदाहरणों पर ग्राहक को अक्षम करने की आवश्यकता होती है। --once विकल्प का उपयोग करने के लिए नुस्खा में सभी टेम्पलेट्स में बदलाव की आवश्यकता होगी? – pup784

+0

मेरा मतलब पिछली टिप्पणी में कुकबुक था। – pup784

+2

इसे कुकबुक में किसी भी बदलाव की आवश्यकता नहीं है। बस अपने ईसी 2 नोड में लॉग इन करें और 'सुडो शेफ-क्लाइंट - ऑनसे' चलाएं। या 'सुडो सेवा शेफ-क्लाइंट स्टॉप'। या एक नुस्खा बनाएं जो सेवा को रोकता है: 'सेवा' शेफ-क्लाइंट '{action [: stop,: disabled]} '। बहुत सारी संभावनाएं हैं। –

0

मैं ड्रॉको ने अंतर्निहित समस्या को ठीक करने के बारे में क्या कहा, उससे सहमत हूं, लेकिन यदि आप शेफ-क्लाइंट को हर 30 मिनट में चलने से रोकना चाहते हैं, तो आप अपने रन से शेफ-क्लाइंट :: सेवा नुस्खा को हटाने में सक्षम होना चाहिए सूची। chef-client README देखें।

0

आप बावर्ची databags से config फ़ाइलों का निर्माण कर रहे हैं, तो आप खोज से परिणाम के रूप में इन अलग रन में एक ही क्रम में नहीं लौटा दी जाएगी सॉर्ट करने के लिए चाहते हैं। यदि आप परिणामों को सॉर्ट नहीं करते हैं, तो आपके पास अपाचे सेवाएं होंगी जो किसी भी स्पष्ट कारण के लिए अक्सर पुनरारंभ नहीं होती हैं।

सुनिश्चित करें कि आपके शेफ-क्लाइंट रन एक ही डेटा के साथ बेवकूफ हैं। पर्याप्त तनाव नहीं कर सकते हैं।