Chef infra 如何将chef客户端指向其他chef服务器

Chef infra 如何将chef客户端指向其他chef服务器,chef-infra,Chef Infra,我在我的电脑上设置了一个厨师客户端,以便使用learnchef.com提供的实验室进行练习 我现在如何将我的chef客户端指向我们的内部chef服务器(我们有两个非生产和生产服务器)。您需要重新配置knife.rb以及重新创建validator.pem和client.pem文件吗?您必须从每个服务器获取validator.pem并注册到每个服务器 另一个选项是在每台服务器上创建一个客户端并保存私钥 对于引导其他节点,您需要每个服务器的validator.pem文件 我使用相同的用例并执行以下操作

我在我的电脑上设置了一个厨师客户端,以便使用learnchef.com提供的实验室进行练习


我现在如何将我的chef客户端指向我们的内部chef服务器(我们有两个非生产和生产服务器)。您需要重新配置
knife.rb
以及重新创建
validator.pem
client.pem
文件吗?

您必须从每个服务器获取validator.pem并注册到每个服务器 另一个选项是在每台服务器上创建一个客户端并保存私钥

对于引导其他节点,您需要每个服务器的validator.pem文件

我使用相同的用例并执行以下操作:

1) 为每个chef服务器创建一个目录,其中包含knife.rb、client.pem等。 i、 e:

2) 将HOME环境变量设置为与目标服务器匹配的目录

set KNIFE_HOME=c:\chef\confs\server1
现在,每个刀子命令都将以server1为目标

另一个选项是设置您想要的任何环境变量,并在knife.rb文件中使用它,如 厨师长服务器url环境[“厨师长服务器使用”]

但最后一项涉及修改一些其他设置(例如,使用server1.pem和server2.pem文件,并在validator\u键中使用ENV[])


您可以在此处找到此方法的示例(适用于用户,但易于调整):

您的chef客户端不需要与多个chef服务器对话。如果要切换chef服务器,则只需删除chef客户端的现有配置并重新启动:

ssh $VM rm -rf /etc/chef
knife bootstrap $VM ...

您的chef工作站(管理chef服务器的开发机器)可能希望访问多个chef服务器。在这种情况下,我建议安装插件。

对于一次性交互,您可以使用
-s SERVER\u URL
选项,如:

chef-client -S 'http://my_chef_server.net'
如果您需要永远更改Chef服务器,您必须编辑
knife.rb
文件。为了与Chef服务器交互,需要三个配置设置,您必须更改它们

node_name
client_key
chef_server_url
您可以使用
knife configure
命令或使用文本编辑器手动执行此操作(默认情况下,它位于~/.chef/knife.rb)


我建议你熟悉这个要点。是的。我相信它将帮助您了解有关配置刀具的所有信息

检查刀块插件。它可以为每个chef服务器的文件使用相同的目录约定。它提供的创新是使用链接指向特定厨师服务器的knife.rb。另外,它知道Berkshellf的配置文件。这在linux工作站上非常好,而不是在XP工作站上,它对符号链接一无所知;)我没有在win8下进行测试,但是使用KNIFE_HOME ENV var对我来说非常合适。在windows下,可能会请求插件使用ENV vars而不是符号链接…Mark&Tensibai,非常感谢您的建议。我来看看刀块插件。Tensibai,两个问题1)每次我需要指向不同的服务器时,我是否需要重置KNIFE_HOME?2) 如何为每个刀片服务器创建knife.rb、client.pem等文件。它们是在我第一次安装客户端时自动创建的。谢谢您您可以设置环境变量并重做初始值,您需要知道您的服务器url并拥有相应的验证密钥。如果需要,我明天可以发布更详细的链接。我将admin.pem和chef-validator.pem从chef服务器复制到C:/chef/stg/chef starter/chef repo/.chef目录中。但是,当我运行“刀配置-I”时,我会得到以下结果:
node_name
client_key
chef_server_url