只是想知道,如果可以在该节点完成Chef-client运行之前搜索节点。
主厨博士说: https://docs.getchef.com/essentials_nodes_chef_run.html
当资源中的资源标识所有操作时 收集已经完成,当厨师 - 客户端运行完成 成功,chef-client更新Chef上的节点对象 具有在此chef-client期间构建的节点对象的服务器 跑。 (此节点对象将由厨师 - 客户在期间拉下来 下一个厨师 - 客户端运行。)这使得节点对象(以及中的数据) 节点对象)可供搜索。
chef-client始终检查资源集合是否存在 异常和报告处理程序。如果有的话,每一个都是 妥善处理
例如,我有一个配方,用于搜索名为“webserver”的角色的节点。 我通过pychef创建了chef节点,并填充了一些属性和运行列表(包括run_list中的那个角色)。 然后从mahchine启动chef-client,它始终无法找到具有该角色的任何节点,因为它尚未保存,因此无法进行搜索。
使用刀搜索很容易看到,因为返回的搜索的角色属性为空(角色仍在run_list上),当chef-client完成时,角色将移动到正确的位置,node.roles
在进行搜索之前,有没有办法可以强制保存节点,以便它出现在结果中?将厨师节点保留在厨师服务器中可以正常工作,但有一天它可以删除,搜索将不再起作用。
谢谢!
答案 0 :(得分:1)
总的来说,出于几个原因,这是个坏主意。
roles
或recipes
扩展表单,则必须手动填充这些表单,因为该步骤通常由运行列表扩展期间的chef-client完成,然后才会保存回服务器