Chef infra 如何通过厨师刀引导命令传递ohai提示

Chef infra 如何通过厨师刀引导命令传递ohai提示,chef-infra,knife,Chef Infra,Knife,我需要在我的chef客户端环境中禁用passwd插件,以避免由于大量用户而导致的致命错误 我对本地客户端所做的操作是将以下行添加到client.rb文件中: ohai[:disabled_plugins] = ["passwd"] 在引导受管节点时,我希望通过刀子引导命令对受管节点执行同样的操作。从刀文档中,以下是语法: --提示\u名称[=提示\u文件] 要在引导的目标上设置的Ohai提示。提示包含在一个文件中,格式为JSON:{“attribute”:“value”,“attribute”

我需要在我的chef客户端环境中禁用passwd插件,以避免由于大量用户而导致的致命错误

我对本地客户端所做的操作是将以下行添加到client.rb文件中:

ohai[:disabled_plugins] = ["passwd"]
在引导受管节点时,我希望通过刀子引导命令对受管节点执行同样的操作。从刀文档中,以下是语法:

--提示\u名称[=提示\u文件]

要在引导的目标上设置的Ohai提示。提示包含在一个文件中,格式为JSON:
{“attribute”:“value”,“attribute”:“value”…}
。HINT_NAME是提示的名称,HINT_FILE是位于的提示文件的名称

/etc/chef/ohai/hints/HINT\u FILE.json

在命令中使用multiple--hint选项指定多个提示

这就是我所做的:

在厨师工作站上的/etc/chef/ohai/hints/HINT_FIILE.jason下,它有以下内容:

{disabled_plugins:["passwd"]}
以下是刀引导命令:

刀子引导[managed_node_name]--提示禁用的_插件-sudo-x 用户-P[密码]-N“测试节点”

命令完成后,在托管_节点上创建一个新文件:/etc/chef/ohai/hits/disabled_plugins.json,包含以下内容:

{disabled_plugins:["passwd"]}
{}

这似乎不对


知道我做错了什么吗?

我不认为
--hint
选项按照您的想法工作,也不认为手册页面暗示了这一点。它似乎不是从chef工作站上的
/etc/chef/ohai/hints
目录读取,而是从您指定的文件名读取到
--hint
选项

这应该起作用:

$ cat > myhint.json << EOF
{disabled_plugins:["passwd"]}
EOF
$ knife bootstrap --hint=myhint.json blah blah

$cat>myhint.json假设您的工作站(运行刀的工作站)中有一个文件
/home/user/test.json
,其中包含以下信息

{ "foo": "bar" }
在节点(将执行chef运行的服务器)上,您将使用以下语法在
/etc/chef/ohai/hits/foo.json
中找到该文件:

$ knife bootstrap --hint foo=/home/user/test.json 
这次节点上的
/etc/chef/ohai/hints/foo.json
将包含

{ "foo": "bar" }

因此,我也遇到了同样的问题,无法得到正确工作的提示,因为它似乎无法以这种特殊方式工作+缺少文档样本

最后,我选择编辑
chef full.erb
,这是用于生成
client.rb的引导默认模板

要获取正确的文件,请运行以下命令:

$ gem contents chef | grep bootstrap | grep full
/home/henryt/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb

然后
vim
chef full.erb
文件添加到
ohai:disabled_plugins
行中的
client.rb
文档中(
cat>/etc/chef/client.rb尝试了您的建议,在chef工作站上创建了myhint.json文件,并运行了刀子boostrap命令。完成后,在托管节点上创建了一个文件,名为/etc/chef/ohai/hints/myhint.json.json。该文件的内容为:{},因此它还没有工作。
--- ~me/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb.orig
   2016-07-22 00:53:33.689961205 -0700
+++ ~me/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb
2016-07-22 00:44:21.253493396 -0700
@@ -64,6 +64,7 @@

cat > /etc/chef/client.rb <<'EOP'
<%= config_content %>
+Ohai::Config[:disabled_plugins] = [:Passwd]
EOP

cat > /etc/chef/first-boot.json <<'EOP'