【问题标题】:Best practices for cleaning up "old" versions of Chef resources清理“旧”版本 Chef 资源的最佳实践
【发布时间】:2015-06-24 03:16:33
【问题描述】:

我有一些由 Chef 管理的长期运行的节点,最终将通过新的食谱版本升级一些软件。

例如,我将 Java 7 安装在 /opt/jdk7 文件夹中,最终想将其替换为 /opt/jdk8 中的 Java 8。对于新节点,这很好,它们将拥有 /opt/jdk8。但对于长时间运行的节点,我希望有一种摆脱 /opt/jdk7 的方法,这样它就不会随着时间的推移积累未使用的资源。

对此有什么最佳做法吗?我真的不想开始添加目录删除资源来清理 jdk7,因为这些会弄乱食谱并增加收敛时间......还有其他建议吗?

【问题讨论】:

  • 这不是厨师主义,但Pets vs. Cattle 范式将规定最佳实践是杀死长时间运行的服务器。实际上,这有点像厨师主义,因为像 Chef、Puppet 和 Docker 这样的工具是根据将服务器商品化的想法创建的。所以我想我的答案是“不要清理。刚开始清理。”

标签: chef-infra


【解决方案1】:

对于某些资源,有zapcookbook(请参阅https://github.com/nvwls/zap#zap_directory)可以清理当前厨师运行中未定义的所有内容。请注意,它相当不完整,可能会破坏很多。

如果您必须重复使用虚拟机/机器并且不能用新实例替换它(我也更喜欢),请在您的食谱中添加一个清理方法来处理旧版本的清理…

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2020-08-15
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多