【问题标题】:Chef - restarting due to auto-encryption mechanismChef - 由于自动加密机制而重新启动
【发布时间】:2016-03-24 12:56:10
【问题描述】:

我们遇到了 Chef 的问题,因为它会不必要地重新启动。我们安排 chef-client 每 1 5 分钟运行一次。但是,每次都会重新启动进程和应用程序,即使用户没有进行更改。

这样做的原因是我们有一个我们正在自动化的专有应用程序,它具有一种机制,它可以加密配置文件中的纯文本密码,因此每次 chef 运行时,它都会看到它从生成的配置文件中的差异模板(未加密的字符串),以及当前部署的配置文件(这个应用在厨师和加密文本之后接触过的)。

应用团队确实在其他地方经常接触此文件,因此完全忽略该文件并不理想。但是,正在寻找可能面临相同问题的其他人的选择。

提前致谢。

【问题讨论】:

    标签: chef-infra devops


    【解决方案1】:

    最好的方法可能是创建自己的资源,该资源知道如何检查现有的加密 blob,将其从文件中提取出来,然后将其包含在呈现的模板中,使其完全相同。您可以为此构建一个自定义资源,或者只使用ruby_block 资源来解析文件(如果格式不太糟糕,则很可能是正则表达式)。

    【讨论】:

      【解决方案2】:

      我认为这个问题是典型的应用程序不仅读取而且更新配置文件。这很常见。密码加密是一个原因,但还有其他原因。

      我“沉默” Chef 的方式是创建一个单独的、额外的影子配置文件。例如,如果配置文件是/opt/app/config.xml,我创建/opt/app/config.xml.chef。我使用 Chef 放入 config.xml 的所有数据我也放入了 config.xml.chef

      notifies 我从原始配置文件移动到影子配置config.xml.chef

      template "/opt/app/config.xml.chef" do
        ...
        notifies :reload, 'service[myapp]', :delayed
      end
      

      在原始配置的资源中我放了一个提醒。

      template "/opt/app/config.xml" do
        ...
        # no notifies here, use shadow config file
      end
      

      【讨论】:

        猜你喜欢
        • 2019-03-23
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 2018-07-10
        • 2020-07-16
        • 1970-01-01
        • 2014-09-05
        相关资源
        最近更新 更多