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 क्लायंट त्याची प्रॉक्सी सेटिंग कधी वापरतो यावरून निवडा.