我想chef-client
在运行时传递一些属性。有没有办法做同样的事情?我正在研究chef-client -j
选项,但据我所知,它可用于指定 run_list。我可以在其中传递一些属性吗?如果是,如何?
是的,您可以使用-j
json 文件选项来填充节点属性。
{
"my_attribute": "I like attributes!"
}
Run Code Online (Sandbox Code Playgroud)
这将使名为的属性my_attribute
在您的食谱中可用。例如,
Chef::Log.info(node['my_attribute'])
Run Code Online (Sandbox Code Playgroud)
或者,
if node['my_attribute'] =~ /like/
package "foo-likes-attributes" do
action :install
end
end
Run Code Online (Sandbox Code Playgroud)
设置初始 run_list 是 Chef 客户端 json 属性文件的最常见用途。但是,如果您使用的是 Chef Client + Chef Server,则可以通过 webui(开源 Chef 服务器)或管理控制台(Opscode Hosted/Private Chef)或通过(knife node edit
如果您是)简单地修改服务器上的节点对象使用命令行工具knife。
注意,使用JSON文件就像修改服务器上的节点对象一样,这里设置的属性就像在配方中使用时一样“正常”优先,这些属性值最后会保存到服务器上的节点对象中成功的运行。
归档时间: |
|
查看次数: |
33255 次 |
最近记录: |