Chef中的Bootstrapping问题

时间:2014-02-19 05:36:17

标签: chef-solo chef

我使用厨师设置了基本的基础设施。这包括本地厨师服务器(基于ubuntu),工作站和基于ubuntu的服务器(用作节点)。请注意,整个基础架构位于我办公室网络的防火墙后面。我已经为服务器进行了必要的代理设置以访问互联网。 所以这就是问题 - 当我尝试使用 -

来引导节点时
knife bootstrap <node's ip> --sudo -x <username> -P <password> -N "<name>"

我收到以下错误

<node's ip> --2014-02-19 10:47:10--  https://www.opscode.com/chef/install.sh
<node's ip> Resolving www.opscode.com (www.opscode.com)... 184.106.28.91
<node's ip>1 Connecting to www.opscode.com (www.opscode.com)|184.106.28.91|:443... failed:Connection refused.
<node's ip> bash: line 83: chef-client: command not found

我无法找到解决方法。但是,我遇到了可以添加到knife[:bootstrap_proxy] = "http://username:password@proxyIP:port/"的{​​{1}}设置。我做了这个(通过输入我的办公室代理详细信息)然后在bootstrap期间连接成功并且在节点上下载了厨师客户端。但是,此设置仅定义节点应使用的代理。因此,这导致knife.rb设置为http_proxy = "http://username:password@proxyIP:port/"。但是因为我已经在我的服务器中进行了所有代理设置,所以主厨客户端无法启动。所以我从client.rb手动删除了http_proxy and https_proxy设置,然后运行了client.rb命令,然后成功了。 我有两个问题 -

1)为什么chef-client有效?因为它只定义了节点应该使用的代理。

2)此外,该节点的代理设置已经完成。我不想在knife[:bootstrap_proxy] = "http://username:password@proxyIP:port/"中进行任何代理设置。我如何实现这一目标?

请帮忙!

1 个答案:

答案 0 :(得分:2)

当涉及到client.rb我建议调查https://github.com/opscode-cookbooks/chef-client

这是client.rb(s)的包装脚本。

不确定您的knife[:bootstrap_proxy]。理想情况下,食谱应该照顾它。如果你仍然感到困惑,你可以运行chef-client -VVknife -VV来确切了解它正在做什么。