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