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 ကလိုင်းယင့်က ၎င်း၏ ပရောက်စီဆက်တင်ကို မည်သည့်အချိန်တွင် သုံးသည်ကို အခြေခံ၍ ရွေးချယ်ပါ။

ဆက်စပ်ဆောင်းပါးများ