【问题标题】:How to deal with new versions of software when using Chef?使用 Chef 时如何处理新版本的软件?
【发布时间】:2018-05-03 03:56:48
【问题描述】:

我已经使用 Chef 在服务器上安装了 MySQL。在我安装软件时,MySQL 的版本是 5.6.36。现在可以使用 MySQL 5.6.40 版本。如果我设置了一个新服务器(或使用 Kitchen 在本地测试),则会安装新版本,但是当我在旧服务器上运行 chef-client 时,它说无事可做,它会离开旧版本。

我想我可以想出一个解决方法(比如创建一个虚假的配方更新),但这种情况下的最佳做法是什么?

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    有几个选项取决于您想要的工作流程。最简单的选项是根据需要覆盖每个节点上的属性中的版本。这是最直接的方式,但也是最高接触的方式,因为您必须或多或少地手动为每个相关服务器进行管理。另一种选择是使用包装说明书,说明您要使用哪个版本(可能有一些关于在不同地方使用不同版本的逻辑),然后在您想要进行更改时通过您的正常工作流程/管道交付包装说明书。您还可以将版本存储在环境或策略组级别属性中。哪个最适合您完全取决于您当前的团队和工作流程。

    【讨论】:

    • 我宁愿不碰这个版本,因为我希望它尽可能免维护。我或多或少有一个可行的解决方案。具体来说,我的食谱是使用超市的 mysql 食谱;这个配方会自动安装 mysql。我添加了以下代码:package 'mysql-community-server' do action :upgrade end 强制将服务器升级到最新版本,这似乎有效。我只是不确定这是否是此类问题的最佳做法。
    • 如果你相信 MySQL 永远不会发布有缺陷的版本,那很好。你信任多少? :)
    • 我实际上有自己的 MySQL 存储库,因此我将手动将新版本的软件包添加到我的存储库中,然后配方应该提取新版本并在可用时安装它们。然后我同意这有点像手动更新配方中的版本。
    • 是的,那么action :upgrade 绝对是要走的路:)
    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多