Chef infra 在运行chef客户端之前可用于搜索的节点

Chef infra 在运行chef客户端之前可用于搜索的节点,chef-infra,chef-recipe,Chef Infra,Chef Recipe,只是想知道,是否可以在节点完成chef客户端运行之前搜索该节点 由厨师长主持: 当资源中的资源标识的所有操作 收集已完成,当chef客户端运行完成时 成功地,chef客户端更新chef上的节点对象 具有在此chef客户端期间生成的节点对象的服务器 跑(此节点对象将由chef客户端在 下一个chef客户端运行。)这将使节点对象(和 节点对象)可用于搜索 chef客户端始终检查资源集合是否存在 异常和报告处理程序的类型。如果有,每一个都是 处理得当 例如,我有一个搜索角色为“webserver”的

只是想知道,是否可以在节点完成chef客户端运行之前搜索该节点

由厨师长主持:

当资源中的资源标识的所有操作 收集已完成,当chef客户端运行完成时 成功地,chef客户端更新chef上的节点对象 具有在此chef客户端期间生成的节点对象的服务器 跑(此节点对象将由chef客户端在 下一个chef客户端运行。)这将使节点对象(和 节点对象)可用于搜索

chef客户端始终检查资源集合是否存在 异常和报告处理程序的类型。如果有,每一个都是 处理得当

例如,我有一个搜索角色为“webserver”的节点的方法。 我通过pychef创建chef节点,并填充一些属性和运行列表(包括运行列表中的角色)。 然后从mahchine启动chef客户端,它总是找不到任何具有该角色的节点,因为它尚未保存,因此无法进行搜索

使用刀子搜索很容易看到,因为返回搜索的roles属性为空(roles仍在run_列表中),当chef客户端完成时,角色将移动到正确的位置node.roles

在执行搜索之前,是否有办法强制保存节点,使其显示在结果中?将chef节点保留在chef服务器中是可行的,但是有一天它可能会被删除,搜索将不再有效


谢谢

总的来说,这是一个坏主意,有几个原因

  • 任何使用ACLs系统的Chef服务器(Enterprise Chef,Chef Server 12)都存在手动创建节点对象将破坏权限的问题。可以手动更正错误,但这是一项复杂的任务
  • 如果您的查询使用的是
    角色
    配方
    扩展表单,则必须手动填充这些表单,因为该步骤通常由chef client在运行列表扩展期间完成,然后保存回服务器
  • 在搜索索引中包含部分结果通常会导致服务发现失败,在这种情况下,非工作服务将以生产轮换结束

  • 不。这是不可能的。