Chef 清理 - 节点、环境、食谱、角色等,

Chef cleanup - nodes, environments, cookbooks, roles etc.,

我最近继承了一个 Chef 环境,它有很多陈旧的节点和环境以及很多旧的食谱。例如AWS 控制台显示我有大约 150 个实例 运行,但 knife status 显示 700 个节点。

通常情况下,我使用ansible,所以我在很大程度上理解它是如何工作的。但是 Chef 不是我完全理解的东西。我能理解一些刀的命令并能完成基本的任务。

但是大多数 ec2 实例似乎是使用不同的密钥创建的(这是最佳做法吗?),并且识别死节点更加复杂。

Chef 是否为每个节点存储此信息,即实例化节点时使用的密钥,我可以使用该信息检查节点的状态并可能自动删除节点?

同样,列出不用的环境并删除等。

是否有现成的工具可以用来清理这个 Chef 环境?我已经搜索过,但没有找到任何符合目的的东西。有一个清理食谱的工具,但这是我最不关心的问题。

我将如何清理它,特别是节点和任何环境?

您可以使用knife对保存的节点数据执行搜索(包括ohai): https://docs.chef.io/knife_search.html

aws cli 一起,您将获得编写小型 shell 脚本所需的一切,该脚本为节点执行 knife node deleteknife client delete

清理完所有死节点后,您可以使用搜索查询环境中的节点并删除没有节点的环境。

查看 knife 插件 here

knife-cleanupknife-auditknife-ohno 可能有助于创建要删除的对象列表。