我有厨师、工作站和一些通过托管厨师提供的节点。我需要在 ruby 脚本中的节点上做一些工作,而不是食谱/食谱,所以我Chef::Search
用来查询它们。
我的脚本中有一个数组Chef::Nodes
,我想获得每个节点的厨师客户端的句柄,以便我可以在每个节点上运行一个配方。请记住,我不是在进行常规的厨师运行,而是需要模仿厨师运行的工作:拉下节点,扩展它们run_lists
并根据需要在它们上运行食谱。
为什么?
因为,我不只是供应;我需要检查节点的状态并选择一个特定的节点来运行配方。这些节点配备了 mongo,它们需要作为副本集进行维护。我无法运行顺序配方,也无法从其中一个节点运行。
所以我的需要是: 给定Chef::Node
我从 a 得到的 a Chef::Search::Query
,如何获得它chef-client
或将其加载到新的中Chef::Client
?
我已经广泛地查看API
了Chef::Client
课程,但似乎并没有清楚地告诉我如何。有初始化和加载节点,但没有任何东西需要一个节点。