IAm*_*aja 14 bootstrapping chef-infra knife
我正在尝试理解Chef客户端和验证器的概念,以及它们与引导过程的关系.
根据这篇文章,chef-client将使用/etc/chef/validation.pem私钥对初始运行进行身份验证,因为/etc/chef/client.pem它还不存在.这个初始运行将以某种方式产生,client.pem然后用于所有后续客户端请求.
我的问题:
/etc/chef/validation.pem文件放在chef-client节点上?引导程序?有人可以提供一个刀具命令的例子来做到这一点吗?/etc/chef/client.pem文件.sun*_*are 14
回答您的最新问题
1)Validation.Pem(和client.rb)将在引导过程之后创建.您需要运行下面显示的命令(knife configure client)才能创建这些文件.一旦在〜/ .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
Run Code Online (Sandbox Code Playgroud)
输出将是
创建客户端配置编写client.rb编写validation.pem
2)Client.pem将在第一次厨师 - 客户端运行期间创建.摘自Chef Documenation
"在第一次自选 - 客户端运行期间,此(client.pem)私钥不存在.相反,chef-client将尝试使用分配给位于/ etc/chef/validation中的chef-validator的私钥. pem.(如果由于任何原因,chef-validator无法向Chef服务器发出经过身份验证的请求,则初始Chef-client运行将失败.)"
例如,我通常以下列方式进行.一旦设置了客户端(第一次)并且我使用chef-client命令在该节点上运行chef recipe,如下所示它将自动创建client.pem
chef-client -o Cookbook_name::Recipe_Name
Run Code Online (Sandbox Code Playgroud)
3)确保你的主机名在这之前是独特/正确的.在Centos上,更改/ etc/sysconfig/network文件并使用/etc/init.d/network restart重新绑定所有内容.
我对第一个问题的回答是这里的解决方案.运行命令后(通常此命令在bootstrap之后运行)
knife configure client ~/.chef
Run Code Online (Sandbox Code Playgroud)
客户机节点的主机名将在chef-server中自动创建.
第一和第二个问题的答案(在编辑问题之前)
1)您在以下链接http://mychefserver.example.com/clients中看到的所有内容 都是向该特定Chef-Server注册的节点(物理机)的发送.Chef-Client是一个代理程序,它将在使用chef-server注册的每个节点上运行.Chef-client用于在相应节点上运行配方.以下是使用Chef客户端在节点上运行厨师食谱的方法.
chef-client -o Cookbook_name::Recipe_Name
Run Code Online (Sandbox Code Playgroud)
将所有客户端放在一起的是连接到chef-server的节点集chef-client是在所有节点中运行的代理,用于向chef-server注册节点以使节点进入所需状态.厨师 - 客户还有很多其他用途.有关详细信息,请访问[Chef-Client] [1]文档页面.
2)引导程序是在目标系统上安装chef-client的过程,以便它可以作为chef-client运行并与Chef服务器通信.
换句话说,引导过程是在节点(硬件机器)上安装chef-client的方法,并将该节点作为该chef-server的客户端之一.只有在完成引导过程后,特定节点才会显示在您的客户端列表中
http://mychefserver.example.com/clients
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14483 次 |
| 最近记录: |