शेफ-क्लाइंट सर्वर से कुकबुक अपडेट नहीं कर रहा है


9

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

जब मैं chef-clientनोड पर मैन्युअल रूप से (रूट के रूप में) चलाता हूं, तो मैं इसे सर्वर से संपर्क करने, रन सूची प्राप्त करने आदि को देख सकता हूं, हालांकि नुस्खा फाइलें /var/cache/chef/cookbooks/apache2पुरानी फाइलें हैं। और नुस्खा विफल हो जाता है (क्योंकि इसमें मेरे द्वारा किए गए बदलाव नहीं हैं)।

मैं Apache2 रसोई की किताब के नए अद्यतन संस्करण का उपयोग करने के लिए नोड पर शेफ क्लाइंट कैसे प्राप्त करूं? क्या मुझे रसोई की किताब में संस्करण संख्या को टक्कर देने की आवश्यकता है (मैं ऐसा नहीं कर रहा हूं)?

chef-client -l debug उत्पादन:

[2015-01-30T10:51:31+01:00] DEBUG: Synchronizing cookbook apache2
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_ldap.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_xsendfile.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_auth_openid.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_setenvif.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_python.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_authz_host.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_proxy_ajp.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_expires.rb, as the cache is up to date.
(lots of this for all files)

मैं रसोइया हूँ, इसलिए मैंने शुरुआत में गलती की होगी।


बावर्ची-सर्वर वेब इंटरफेस पर जाएं और चेक करें, अगर कुकबुक में बदलाव हैं।
ड्रेको एटर

1
सुनिश्चित करें कि आप भाग गए knife cookbook upload <cookbook_name>। यदि वह इसे हल नहीं करता है, तो संस्करण को टक्कर देने की कोशिश करें और फिर knife cookbook list <cookbook_name>यह सुनिश्चित करने के लिए दौड़ें कि आप वास्तव में इसे ठीक से अपलोड कर रहे हैं। वैकल्पिक रूप से, knife cookbook download(दूसरी निर्देशिका में) सर्वर को लगता है कि सही कोड है नीचे खींचने के लिए।
तीजय कार्डन

जवाबों:


6

कुछ चीजें हैं जो मैं सोच सकता हूं कि आपकी मदद कर सकता है।

  1. सत्यापित करें कि आपके द्वारा अपलोड की जा रही कुकबुक संस्करण सबसे हाल का संस्करण है

    रसोई की किताब के संस्करण के साथ एक आम समस्या यह है कि आप कुकबुक संस्करण 1.0.0 को स्थानीय स्तर पर अपलोड कर सकते हैं और अपलोड कर सकते हैं, लेकिन शेफ सर्वर के पास कुकबुक संस्करण 1.0.1 पहले से ही अपलोड है। उस स्थिति में, शेफ ग्राहक आमतौर पर नवीनतम संस्करण (जब तक कि अन्यथा नहीं बताया जाता है) को पुनः प्राप्त कर लेंगे और आपके परिवर्तन कभी भी स्थानीय कैश में सिंक नहीं होंगे।

    आप बावर्ची सर्वर पर रसोई की किताब के सभी वर्तमान संस्करण देख सकते हैं: knife cookbook show apache2

    इसका एक समाधान यह है कि आपने जो उल्लेख किया है - शेफ सर्वर यानी 1.0.2 पर मौजूद अपने संस्करण संख्या को बढ़ाएं और अपलोड करें।

    एक और तरीका यह है कि शेफ सर्वर से किसी भी अन्य अपाचे 2 कुकबुक को हटा दें, और जिसे आप चाहते हैं उसे फिर से अपलोड करें। इसके लिए किसी भी संस्करण संख्या अपडेट की आवश्यकता नहीं है, और अंतिम परिणाम यह है कि शेफ सर्वर में एक एकल अपाचे 2 रसोई की किताब होगी।

  2. पुष्टि करें कि आपके परिवर्तन वास्तव में इसे शेफ सर्वर में बदल रहे हैं

    knife cookbook show apache2 <cookbook version> recipes default.rb बदलें संस्करण, पथ और फ़ाइल नाम का उपयोग करना - उदाहरण के लिए यदि आप foo.erb नाम का टेम्पलेट देखना चाहते हैं:knife cookbook show apache2 0.1.0 templates foo.erb

    यह कमांड शेफ सर्वर से फाइल का अनुरोध करेगा और आउटपुट को आपके टर्मिनल में प्रदर्शित करेगा। यह निर्धारित करने का एक सरल तरीका है कि आपके द्वारा किए गए परिवर्तन के माध्यम से अपलोड किया जा रहा है knife cookbook upload

इन सबसे परे, यदि यह मदद नहीं करता है, तो knifeसंस्करण, chef-serverसंस्करण, chef-clientसंस्करण के साथ-साथ डीबग लॉग के विवरण को जोड़ने से knife cookbook upload apache2 -VVआगे डीबग करने में मदद मिलेगी।


1
इस उत्तर के लिए बहुत बहुत धन्यवाद ... इसने मुझे यह देखने के लिए प्रेरित किया कि हमारे पास हमारे वातावरण में, उत्पादन में कोई कमी नहीं थी, लेकिन बर्कशेल द्वारा निर्धारित, हमारे उत्पादन वातावरण में रसोई की किताब की कमी थी! मुझे यह भी नहीं पता था कि यह ऐसा कर सकता है। वैसे भी, हमारे production.rb पर्यावरण को फिर से अपलोड करने के बाद, एक नए शेफ रन ने हमारे नवीनतम ऐप कुकबुक को उठाया।
कॉलिन कर्टिन

2

पहले सर्वर पर कुकबुक के सभी संस्करण को डीबग करें और फिर चेक करें कि क्लाइंट किस कुकबुक को डाउनलोड कर रहा है। यदि यह पुराना है, तो जांचें कि क्या सर्वर का अपडेटेड वर्जन है। यदि यह हां भी है, तो कृपया सर्वर UI पर जाएं और env की जांच करें। आपके पास एक एनवायरनमेंट सेटअप हो सकता है जिसमें कुकबुक की बाधाएँ निर्दिष्ट हैं। कृपया वहां पर संस्करण को अपडेट करें और यह फिर से काम करना शुरू कर देगा।


1

इसका एक और कारण यह हो सकता है कि रसोइया-सर्वर पर कुकबुक की सभी निर्भरताएं मौजूद नहीं हैं। मैं अभी इसमें भाग गया, और मेरी रसोई की किताब का नया संस्करण दिखाई दे रहा था, knife cookbooks listलेकिन मेरे ग्राहक नए संस्करण का उपयोग नहीं कर रहे थे। कुछ डिबगिंग के बाद, मुझे पता चला कि बर्कशेल, न ही चाकू ने मेरी रसोई की किताब के लिए नई निर्भरता अपलोड की थी। मेरे द्वारा अपलोड किए जाने के बाद, क्लाइंट ने नए संस्करण का उपयोग करना शुरू कर दिया।


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