【问题标题】:Chef Server return 404 for all knife and chef-client requestChef 服务器为所有刀和厨师客户端请求返回 404
【发布时间】:2015-07-27 09:10:00
【问题描述】:

我正在尝试设置 chef-server 和 chef-client,以便在 Openstack 上运行的虚拟机上自动部署包。

我正在按照https://docs.chef.io/install_server.html 上的说明进行操作。软件包的版本是 chef-server 12.0.8,在 ubuntu 14.04 服务器 (chef-server-core_12.0.8-1_amd64.deb) 上。已经进行了几次尝试,总是使用干净的机器,并且总是得到相同的结果,即使使用稍旧的 chef-server 版本(我相信是 12.0.3)。创建用户,创建组织。我还通过提供的 install.sh 脚本 (12.3.something) 直接从厨师网站提取厨师客户端。

症状:

knife ssl check 返回成功,但是:

knife client list 返回 HTTP 错误 404:

错误:找不到您要查找的对象 ...

404 - 未找到

对不起,我找不到你要找的东西。

我是直接从服务器运行它还是从另一台机器运行它都没关系(刀引导也失败,所以我手动安装)。服务器(FQDN:chef.cluster.internal)可从所有机器解析,即用于 client.rb/knife.rb 的 server_url。自签名证书在需要的地方随处提取。

来自 chef-server 机器的 Nginx 访问日志:

192.168.10.85 - - [15/May/2015:12:16:56 +0000]  "GET /clients HTTP/1.1" 404 "0.001" 617 "-" "Chef Knife/12.3.0 (ruby-2.1.4-p265; ohai-8.3.0; x86_64-linux; +http://opscode.com)" "-" "-" "-" "12.3.0" "algorithm=sha1;version=1.0;" "ubuntu" "2015-05-15T12:16:56Z" "2jmj7l5rSw0yVb/vlWAYkK/YBwk=" 995
192.168.10.85 - - [15/May/2015:11:38:50 +0000]  "POST /nodes HTTP/1.1" 404 "0.001" 617 "-" "Chef Knife/12.3.0 (ruby-2.1.4-p265; ohai-8.3.0; x86_64-linux; +http://opscode.com)" "-" "-" "-" "12.3.0" "algorithm=sha1;version=1.0;" "ubuntu" "2015-05-15T11:38:50Z" "5FBeTmym0Tm05estESshBGJrumI=" 1047
192.168.10.86 - - [15/May/2015:11:37:36 +0000]  "POST /nodes HTTP/1.1" 404 "0.001" 617 "-" "Chef Knife/12.3.0 (ruby-2.1.4-p265; ohai-8.3.0; x86_64-linux; +http://opscode.com)" "-" "-" "-" "12.3.0" "algorithm=sha1;version=1.0;" "ubuntu" "2015-05-15T11:37:36Z" "5FBeTmym0Tm05estESshBGJrumI=" 1047
192.168.10.85 - - [15/May/2015:11:38:50 +0000]  "PUT /nodes/dns-server HTTP/1.1" 404 "0.001" 617 "-" "Chef Knife/12.3.0 (ruby-2.1.4-p265; ohai-8.3.0; x86_64-linux; +http://opscode.com)" "-" "-" "-" "12.3.0" "algorithm=sha1;version=1.0;" "ubuntu" "2015-05-15T11:38:50Z" "5FBeTmym0Tm05estESshBGJrumI=" 1057

... 等等。因此,服务器确实收到了请求,并且来自 chef-client 的关于我的 chef_server_url 可能无效的建议是不正确的。

所有其他设置都保留为默认值。奇怪的是,我有一个两三个月前的老厨师设置,可以正常工作。

我没有想法。任何帮助都将受到欢迎和高度赞赏。

编辑 1: 我刚刚将创建的用户证书和 chef nginx 证书导入到提到的刀较旧的安装中,并且我能够成功运行knife client list。因此,本地版本似乎将 /organizations/orgname/nodes 包含在请求中。为什么空白客户端上缺少它?

【问题讨论】:

    标签: chef-infra knife


    【解决方案1】:

    好的,所以我能够通过在服务器上使用旧机器上生成的完整 chef_server_url 重新配置 knife 和 chef-client 来取得进展。

    【讨论】:

    • 好吧,玩了一会儿,knife bootstrap 只使用了 chef_server_url 的 domain 部分,即使直接通过 -s 参数传递。这实际上仍然会禁用引导程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多