节点的 Knife 视图与 Automate 服务器不同步

Knife view of nodes not in sync with Automate server

好的,所以在我们的 AWS 环境中,我们通过 AWS OpsWorks 运行ning Chef-Automate。节点通过 AWS 用户数据中的代码自动注册和下载 Chef 客户端。我们有另一个 EC2 实例充当 Chef 工作站。所有这一切都运作良好。然而,在这个特定的非生产环境中,EC2 节点来来往往。为了保持清洁,我们 运行 Automate 服务器上的以下 cron 作业:

automate-ctl node-summary | grep missing | awk '{print }' |  while read var; do automate-ctl delete-node --force -d -u $var; done

这将删除显示为 "missing" 的任何节点。这也很好用。但是,当我们在工作站上 运行 knife node listknife status 时,我们会得到数百个死节点,其中一些已经已经消失了数千小时。

很明显,knife 没有从与 automate-ctl 相同的数据库中获取节点数据。最佳情况下,我想要的是一些我可以通过自动化服务器上​​的 cron 运行 使它们保持同步的命令,但我在文档中没有看到明显的解决方案。我假设 knife 正在连接到 Automate 服务器以获取它的列表,所以我更喜欢 运行 在那里而不是在工作站上的一些解决方案。

有什么想法吗???

你会 运行 使用 knife node bulk deleteknife client bulk delete 类似的东西。还有 Lambda 任务将监控实例关闭事件并清理 Chef 服务器。

Chef Server 和 Automate 通信,但每个都有自己的数据库,因为 Automate 通常保留历史记录,即使在从 Chef Server 中删除节点以进行审计或合规性跟踪后也是如此。