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

یہ عام وسیلہ کچھ بھی ڈاؤن لوڈ کرنے سے پہلے ہی عارضی قدر غائب ہو چکی ہوتی ہے:

  1. Compile: اعلیٰ سطح کا Ruby قدر محفوظ کرتا ہے، عارضی پروکسی مقرر کرتا ہے، remote_file کا اعلان کرتا ہے اور قدر بحال کرتا ہے۔
  2. Converge: وسیلہ اپنا عمل اُس وقت دستیاب ترتیب کے ساتھ انجام دیتا ہے۔

مناسب داخلی استثناؤں کے ساتھ مستحکم کلائنٹ پروکسی اس وقتی مسئلے سے بچاتا ہے۔ shell wildcard قواعد فرض کرنے کے بجائے نصب شدہ کلائنٹ کی دستاویزی استثنائی ترکیب استعمال کریں۔ اجازت شدہ عوامی راستے پر عوامی آرٹیفیکٹ کی خودمختار ڈاؤن لوڈنگ کے لیے، جب Chef کلائنٹ کے پاس کوئی ترتیب شدہ یا محفوظ پروکسی اکاؤنٹ نہ ہو تو HTTP پروکسی فہرست کا اندراج مستحکم HTTP اختتامی نقطہ فراہم کر سکتا ہے۔ اس کے داخلی استثنات برقرار رکھیں؛ پتہ چننے سے یہ نہیں بدلتا کہ compile اور converge اسے کب استعمال کرتے ہیں۔

اگر ایک عمل کو خصوصی راستہ درکار ہو تو اس کی ترتیب کی تبدیلی اور نفاذ ایک ہی دائرے میں رکھیں۔ مناسب unified-mode رویے والا حسب ضرورت وسیلہ ایک آپشن ہے، مگر Chef::Config عالمی ہی رہتا ہے۔ ڈاؤن لوڈ ناکام ہونے پر اور فائل پہلے سے تازہ ہونے پر اسے بحال کریں۔ اپ ڈیٹ کی اطلاع بلا شرط نہیں چلتی، اور استثنا کے بعد بعد میں آنے والا صفائی کا وسیلہ کبھی نہ چل سکے۔

lazy source خصوصیت اُس خصوصیت کی جانچ کو مؤخر کرتی ہے، گرد و نواح کی Ruby تفویضات کو نہیں۔ جب ڈاؤن لوڈ اُسی وقت کا ہو تو compile کے وقت وسیلے کا نفاذ ایک الگ تعاون یافتہ انتخاب ہے؛ یہ انحصار اور اطلاع کے وقت کو بھی بدلتا ہے۔ اعلان کی ترتیب سے علیحدگی کی توقع کے بجائے، اس بات کی بنیاد پر چنیں کہ HTTP کلائنٹ اپنی پروکسی ترتیب کب استعمال کرتا ہے۔

متعلقہ مضامین