Chef infra Chef-由于自动加密机制而重新启动

Chef infra Chef-由于自动加密机制而重新启动,chef-infra,devops,Chef Infra,Devops,我们与Chef有一个问题,因为它不必要地重新启动。我们安排chef client每15分钟运行一次。但是,每次都会重新启动进程和应用程序,即使用户没有进行更改 原因是我们有一个我们正在自动化的专有应用程序,它有一个加密配置文件中纯文本密码的机制,因此每次运行chef时,它都会看到它从模板(未加密字符串)生成的配置文件与当前部署的配置文件之间的差异(此应用程序已在chef之后触摸并加密了文本) 应用程序团队在其他地方经常接触此文件,因此完全忽略该文件并不理想。但是,从其他可能面临相同问题的人那里寻

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

原因是我们有一个我们正在自动化的专有应用程序,它有一个加密配置文件中纯文本密码的机制,因此每次运行chef时,它都会看到它从模板(未加密字符串)生成的配置文件与当前部署的配置文件之间的差异(此应用程序已在chef之后触摸并加密了文本)

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


提前感谢。

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

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

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

通知
我从原始配置文件移动到影子配置
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