回答您更新的问题
1) Validation.Pem(和 client.rb)将在引导过程之后创建。您需要运行下面所示的命令(knife 配置客户端)才能创建这些文件。在 ~/.chef 目录中创建这些文件后,您需要将它们移动到 /etc/chef
knife configure client ~/.chef
sudo su
mkdir -p /etc/chef
cp ~/.chef/client.rb /etc/chef
cp ~/.chef/validation.pem /etc/chef
输出将是
创建客户端配置
编写client.rb
编写validation.pem
2) Client.pem 将在第一次厨师客户端运行期间创建。摘自厨师文档
“在第一次厨师客户端运行期间,此(client.pem)私钥不存在。相反,厨师客户端将尝试使用分配给厨师验证器的私钥,该私钥位于 /etc/chef/validation 中。 pem。(如果出于某种原因,chef-validator 无法向 Chef 服务器发出经过身份验证的请求,则初始 Chef-client 运行将失败。)”
例如,我通常按以下方式进行。一旦客户端设置完毕(第一次)并且我使用 Chef-client 命令在该节点上运行厨师食谱,如下所示,它将自动创建 client.pem
chef-client -o Cookbook_name::Recipe_Name
3) 执行此操作之前,请确保您的主机名是唯一/正确的。在 Centos 上,更改 /etc/sysconfig/network 文件并使用 /etc/init.d/network restart 重新绑定所有内容。
我对第一个问题的回答是这里的解决方案。运行该命令后(一般该命令在bootstrap后运行)
knife configure client ~/.chef
客户端节点的主机名将在厨师服务器中自动创建。
第一个问题和第二个问题的答案(编辑问题之前)
1)您在以下链接中看到的所有内容http://mychefserver.example.com/clients http://mychefserver.example.com/clients是向该特定 Chef-Server 注册的节点(物理机)的发送。 Chef-Client 是一个代理,将在向 Chef-服务器注册的每个节点上运行。 Chef-client用于在相应的节点上运行菜谱。以下是使用 Chef 客户端在节点上运行 Chef 菜谱的方法。
chef-client -o Cookbook_name::Recipe_Name
将所有客户端放在一起是连接到厨师服务器的节点集厨师客户端是在所有节点中运行的代理,用于向厨师服务器注册节点以使节点达到所需状态。厨师-客户还有许多其他用途。有关详细信息,请访问 [Chef-Client][1] 文档页面。
2) bootstrap 是一个在目标系统上安装 Chef-client 的过程,以便它可以作为 Chef-client 运行并与 Chef 服务器通信。
换句话说,引导过程是在节点(硬件机器)上安装厨师客户端并使该节点作为该厨师服务器的客户端之一的方法。仅当引导过程完成后,该特定节点才会在您的客户端列表中可见。
http://mychefserver.example.com/clients