2016-03-23 42 views
0

廚師有一個問題,它會不必要地重新啓動。我們安排廚師客戶端每運行1 5分鐘。但是,即使用戶未進行更改,每次都會重新啓動進程和應用程序。廚師 - 由於自動加密機制而重新啓動

原因是我們有一個專有的應用程序,我們正在自動化,它有一個機制,它在配置文件中加密純文本密碼,所以每次廚師運行時,它都會看到它生成的配置文件模板(未加密的字符串)以及當前部署的配置文件(該應用程序在廚師和加密文本後觸及)。

應用程序團隊確實在其他地方頻繁觸摸此文件,因此完全忽略該文件並不理想。但是,尋找可能面臨同樣問題的其他人的選擇。

在此先感謝。

回答

0

最好的方法可能是讓自己的資源知道如何檢查現有的加密blob,將其拉出文件,然後將其包含在渲染的模板中,使其完全相同。您可以爲此創建自定義資源,或者僅使用ruby_block資源來解析該文件(如果格式不太可怕,則很可能是正則表達式)。

0

我認爲這個問題是典型的應用程序,不僅閱讀,而且更新配置文件。這很常見。密碼加密是其中一個原因,但也有其他原因。

我「沉默」廚師的方式是創建一個單獨的額外的陰影配置文件。例如,如果配置文件是/opt/app/config.xml,我創建了/opt/app/config.xml.chef。我在​​3210使用廚師我也放在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