我有一个使用一堆属性搜索节点的食谱,我想消除搜索结果中的死或非活动节点。我该怎么做呢。
我们说我有4个节点 -
NAME - ENVIRONMENT - STATE
node1 - dev - DEAD/INACTIVE
node2 - dev - ALIVE/ACTIVE
node3 - test - ALIVE/ACTIVE
node4 - dev - ALIVE/ACTIVE
如果我[node2, node4]
而不是结果为search(:node, env:dev)
,我希望结果为[node1, node2, node4]
。这是因为node1
已终止但未从节点列表中清除。
我知道一个可能的解决方案是清理节点列表以不显示死节点,但在实现之前,我希望有一个临时或快速修复。是否有任何节点属性告诉我是否节点处于活动/非活动状态或向厨师服务器报告。
提前致谢!
答案 0 :(得分:0)
没有办法,因为厨师没有“不活跃”或“死亡”的概念。它知道最后一个节点保存的时间戳(读取:可能是上次成功收敛的时间,除非你在代码中做了一些奇怪的事情),但就是这样。有很多工具可以根据启发式方法(自上次聚合以来的时间,检查AWS API等)对客户端和节点进行垃圾收集,但没有一种适用于所有情况。