compile र converge चरणहरूमा Chef प्रोक्सी सेटिङहरू
एउटा remote_file कार्यका लागि विश्वव्यापी प्रोक्सी परिवर्तन गर्दा रेसिपी कम्पाइल र स्रोत कार्यान्वयनलाई विचार गर्नुहोस्।
previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'
remote_file '/var/tmp/package.zip' do
source 'https://downloads.example.net/package.zip'
end
Chef::Config[:http_proxy] = previousयो साधारण स्रोतले केही डाउनलोड गर्नु अघि नै अस्थायी मान हराइसकेको हुन्छ:
- Compile: शीर्ष-स्तरको Ruby ले मान बचत गर्छ, अस्थायी प्रोक्सी सेट गर्छ,
remote_fileघोषणा गर्छ र मान पुनर्स्थापित गर्छ। - Converge: स्रोतले त्यसबेला उपलब्ध कन्फिगरेसनसँग आफ्नो कार्य सम्पन्न गर्छ।
उपयुक्त आन्तरिक अपवर्जनसहितको स्थिर क्लाइन्ट प्रोक्सी ले यो समय-समस्या टार्छ। shell wildcard नियम मान्नुको सट्टा स्थापित क्लाइन्टको अभिलेखित अपवर्जन वाक्यरचना प्रयोग गर्नुहोस्। अनुमत सार्वजनिक मार्गमा स्वतन्त्र सार्वजनिक कलाकृति डाउनलोडका लागि, Chef क्लाइन्टसँग कुनै कन्फिगर गरिएको वा राखिएको प्रोक्सी खाता नभएको बेला HTTP प्रोक्सी सूचीको प्रविष्टिले स्थिर HTTP अन्त्यबिन्दु दिन सक्छ। यसका आन्तरिक अपवर्जनहरू कायम राख्नुहोस्; ठेगाना छान्नाले compile र converge ले यसलाई कहिले प्रयोग गर्छ भन्ने बदल्दैन।
यदि एउटा अपरेशनलाई विशेष मार्ग चाहिन्छ भने, यसको कन्फिगरेसन परिवर्तन र कार्यान्वयन एउटै दायरामा राख्नुहोस्। उपयुक्त unified-mode व्यवहार भएको अनुकूलित स्रोत एउटा विकल्प हो, तर Chef::Config विश्वव्यापी रहन्छ। डाउनलोड असफल हुँदा र फाइल पहिले नै अद्यावधिक हुँदा यसलाई पुनर्स्थापित गर्नुहोस्। अद्यावधिक सूचना बिनाशर्त चल्दैन, र अपवादपछि पछिको सफाइ स्रोत कहिल्यै नचल्न सक्छ।
lazy source गुणले त्यो गुणको मूल्याङ्कन ढिलो गर्छ, वरपरका Ruby असाइनमेन्ट होइन। डाउनलोड ठ्याक्कै त्यही समयको हो भने compile-समयको स्रोत कार्यान्वयन छुट्टै समर्थित विकल्प हो; यसले निर्भरता र सूचनाको समय पनि बदल्छ। घोषणाको क्रमले अलगाव दिने अपेक्षा नगरी, HTTP क्लाइन्टले आफ्नो प्रोक्सी सेटिङ कहिले प्रयोग गर्छ भन्ने आधारमा छान्नुहोस्।