我使用厨师设置了基本的基础设施。这包括本地厨师服务器(基于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/"
中进行任何代理设置。我如何实现这一目标?
请帮忙!
答案 0 :(得分:2)
当涉及到client.rb
我建议调查https://github.com/opscode-cookbooks/chef-client
这是client.rb
(s)的包装脚本。
不确定您的knife[:bootstrap_proxy]
。理想情况下,食谱应该照顾它。如果你仍然感到困惑,你可以运行chef-client -VV
和knife -VV
来确切了解它正在做什么。