如何在新生客户端节点上添加chef-client配方(在客户注册后)

时间:2014-09-08 22:07:22

标签: chef

我按照有关在厨师服务器中注册我的客户端计算机的指南 - https://wiki.opscode.com/display/chef/Configuring+Chef+Client

所以我创建了我的client.rb文件,其中包含以下内容:

log_level                :info
log_location             STDOUT
chef_server_url          'https://yourchefserver.com/'
validation_client_name   'chef-validator'
node_name                'myclientname'

然后我将上面的文件与validation.pem一起放入/ etc / chef目录。

我已经安装了.deb chef-client软件包,我已经从Chef网站下载了。

在第一次chef-client命令运行时,新生的客户端正在我的厨师服务器中正确注册,但它得到空的运行列表。正在运行此命令"在后台" - 实际上是从rc.local调用新生的VM(磁盘映像克隆)。因此,厨师 - 客户运行只发生一次。

我想知道,我怎么能指示我的新生客户配备食谱"厨师 - 客户:服务"。或者更广泛的问题:如何指示厨师服务器在自动注册后立即将任何食谱传递给新生儿?

据我所知,我可能会通过"环境"变量到client.rb文件中,但这需要是一种临时环境,仅用于传递' chef-client:service'食谱。并且将来不需要此环境条目。

有什么想法吗?什么是最好的方法?

1 个答案:

答案 0 :(得分:0)

要做的就是创建一个名为任意的JSON文件,并在第一次运行时使用-j file.json传递它。有关更完整的文档,请参阅HERE

在此文件中,您可以设置初始运行列表,如

{
  "run_list": [ "recipe[chef-client::service]" ]
}