Chef
在 chef-client.rb 中設置屬性
我有一個案例,其中廚師食譜需要使用“remote_file”來獲取虛擬文件,並且需要通過 HTTP 代理進行獲取。這不起作用,因為 chef-client 不使用系統代理設置……它從
/etc/chef/chef-client.rb
那麼如何將代理設置(或一般設置)放入
chef-client.rb
客戶端的文件中?理想情況下,我希望它在客戶端引導時發生,但我不知道如何在沒有破解程式碼的情況下做到這一點。
另一種可能性是我可以創建一個更新
chef-client.rb
文件的配方。但這讓我覺得有點危險。這意味著您需要在其工作之前執行 chef-client 兩次,假設第一次執行中缺少代理設置會導致執行最終失敗。有想法該怎麼解決這個嗎?
僅供參考:預設配置文件是
/etc/chef/client.rb
,您需要通過-c /etc/chef/chef-client.rb
才能使用該文件。要為 http 代理設置 Chef 配置設置,您可以將代理設置為
knife bootstrap
與命令行選項一起使用--bootstrap-proxy URL
。或者,您可以將其添加到您的knife.rb
.knife[:bootstrap_proxy] = "https://proxy.example.com"
將“
https://proxy.example.com
”值替換為您的代理伺服器 URL。這將自動將
http_proxy
和https_proxy
行添加到/etc/chef/client.rb
文件中。或者,您可以在客戶端配置部分中使用這些配置值創建自定義引導模板。像這樣的東西(從 ubuntu10.04-gems.erb 修改):( cat <<'EOP' http_proxy "http://proxy.example.com" # replace with your URL <%= config_content %> EOP ) > /etc/chef/client.rb