我最近继承了一个厨师环境,它有相当陈旧的节点和环境以及许多旧的烹饪书。对于例如AWS控制台显示我有大约150个实例正在运行,但knife status
显示700个节点。
通常,我使用ansible,所以我理解它在很大程度上是如何工作的。但厨师不是我完全理解的东西。我了解一些刀具命令,可以完成基本任务。
但事实很复杂,因为大多数ec2实例似乎是用不同的密钥创建的(这是最佳实践吗?)并且识别死节点更加复杂。
厨师是否为每个节点存储此信息,即节点实例化的密钥,我可以使用该信息检查节点的状态,并可能自动删除节点?
同样,列出未使用和删除等环境。
我是否可以使用现有工具来清理这个厨师环境?我搜索过,但没有发现任何符合目的的东西。有一个清理烹饪书的工具,但这是我遇到的最少的问题。
我将如何清理它,特别是节点,然后是任何环境?
答案 0 :(得分:1)
您可以使用knife
对已保存的节点数据(包括ohai)执行搜索:https://docs.chef.io/knife_search.html
与aws cli一起,你需要编写一个小的shell脚本,为节点执行knife node delete
和knife client delete
。
清理完所有死节点后,您可以使用搜索来查询环境中的节点并删除没有节点的环境。
答案 1 :(得分:1)
请参阅刀插件here
knife-cleanup
,knife-audit
和knife-ohno
可能对创建要删除的对象列表有所帮助。