【问题标题】:Understanding Chef::Config.http_proxy了解 Chef::Config.http_proxy
【发布时间】:2015-10-07 14:54:00
【问题描述】:

我遇到了下面的代码。从外观上看,我知道它在节点上设置了 http 和 https 代理。

template '/etc/profile.d/proxy.sh' do
  source 'proxy.sh.erb'
  variables(
    :proxy => node[:corporate][:proxy]
  )
end

ruby_block "setenv-http_proxy" do
  block do
    Chef::Config.http_proxy = "http://mycompany.com:8080"
    Chef::Config.https_proxy = "http://mycompany.com:8080"
    Chef::Config.no_proxy = 'localhost,127.0.0.1'
  end
end

谁能告诉我这个“Chef::Config......”是什么以及如何找到它在“Chef::Config.http_proxy”等上下文中所做的实际事情。

我遇到了这个,但这意味着我还不是一个红宝石极客。 http://www.rubydoc.info/gems/chef/Chef/Config

类似的搜索也确认它设置了代理。 https://tickets.opscode.com/browse/CHEF-3912

下面的问题也涉及到这个类 What does `Chef::Config[:file_cache_path]` do exactly?

谁能告诉我,如何找到或阅读其中许多Chef::Config 所做的实际事情(代码)?举个例子来理解这个 'Chef::ConfigChef::Config.http_proxy 会很棒。

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    无论何时 Chef 客户端进行 http 调用,它都会使用此代理。这是在服务器没有直接互联网连接并且某些类型的流量必须通过某些代理(通常允许通过特殊代理允许 http/https 流量)的场景中。

    见: https://docs.chef.io/config_rb_client.html

    在你的情况下:

    • 厨师客户端被告知代理
    • proxy.sh 文件是基于 erb 模板构建的。

    Chef 的工作方式是每个盒子都安装一个客户端。厨师通过客户管理盒子。该配置和设置基本上是该客户端的配置。见:https://docs.chef.io/chef_overview.html

    在客户端中提取和使用该配置的示例。 https://github.com/chef/chef/blob/eb590e371b5e5d3f4d1d201dd3f58e4351116f41/lib/chef/application.rb#L307

    【讨论】:

    • 嘿,我不是在寻找 http 代理如何工作以及为什么。我试图了解使用方法 Chef::Config.http_proxy 设置它的东西。在更广泛的意义上,各种 Chef::Config.blahs 是什么以及它们在哪里可以读取(代码)
    【解决方案2】:

    Chef::Config - 此对象包含厨师客户端运行所需的所有配置。因此,每当您运行 Chef 客户端时,首先它会使用 Chef::Config 中提供的配置初始化 Chef 客户端

    你可以在https://docs.chef.io/config_rb_client.html找到Chef::Config的所有选项

    所以 http_proxyChef::Config 的一个选项,它设置代理以便厨师客户端可以与外部互联网通信

    【讨论】:

      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多