我在linux服务器上安装了厨师服务器包,在AMAZON EC2上也有一个linux工作站和一个linux节点。我正在尝试在工作站上运行以下bootstrap命令:
chef exec knife bootstrap 10.0.xx.xx -x ec2-user --sudo -i keyfile.pem --node-name Chef_Test_Node
但是Chef-client没有在节点上工作。低于错误:
----------------------------------------------------------------------
Network Error:
There was a network error connecting to the Chef Server: Error connecting to https://xx.xx.xx.xx/organizations/xxx/clients - getaddrinfo: Name or service not known
Relevant Config Settings:
chef_server_url "https://xx.xx.xx.xx/organizations/xxx"
If your chef_server_url is correct, your network could be down.
-----------------------------------------------------------------------
我能够运行刀客户端列表或节点列表,证明我的工作站没有网络问题
请您告诉我如何解决此问题。
由于
答案 0 :(得分:1)
我遇到了这个问题,因为我在本地局域网上运行CHEF而没有运行正确的DNS服务,因此我不得不依赖/ etc / hosts文件来解析主机名。在我添加的新节点上,我忘了使用与Chef集群中每个服务器对应的条目为/ etc / hosts文件播种,因此无法解析“chef-server”名称。
FIX: 一旦我将正确的条目放在/ etc / hosts文件中,所有内容都应该像它应该的那样运行。
/etc/hosts:
127.0.0.1 localhost
192.168.1.165 chef-admin
192.168.1.160 chef-server
192.168.1.161 chef-node1
192.168.1.162 chef-node2
192.168.1.163 chef-node3
192.168.1.164 chef-node4
答案 1 :(得分:0)
代理设置在客户端节点上的/etc/client.rb file中设置(当然您只有后引导程序)。
我认为你不想那样。如果你实际上有一个NAT,HTTP代理设置对你没有任何好处。此外,你仍然需要解决鸡和蛋的自助问题。
如果你做实际上有一个https代理,你可以:
(另请注意,亚马逊将向您收取未附加的弹性IP费用)
如果您没有http代理但实际上有NAT,则应执行以下操作:
测试:curl -k https://server/organizations/organization_name
一旦您知道哪个连接失败,您就可以开始了解原因。