2012-11-11 60 views
1

我正在使用放浪(1.0.5)的SSL提供通知和廚師獨奏(10.12.0)提供不cookbook_file

我有我的供應商,一本食譜中稱爲SSL稱爲gtm_cq,我在我的食譜的默認食譜把它定義爲這樣的:

gtm_cq_ssl "author" do 
    # attributes will come later 
end 

然後我有我的cookbook_file象下面這樣應該通知我SSL提供商的import行動一旦推證書到服務器:

cookbook_file "#{node[:cq][:ssl][:author_cert_location]}/foo.cer" do 
    source "foo.cer" 
    owner "crx" 
    group "root" 
    mode "0644" 
    notifies :import, resources(:gtm_cq_ssl => "author") 
end 

當我運行這個時,foo.cer按預期推高,但我的ssl提供程序的import行爲從不調用。我看不到任何引用的最多的就是這幾行日誌(刪除日誌標題):

.. cookbook_file[/opt/cq5/author/foo.cer] sending import action to gtm_cq_ssl[author] (delayed) 
.. Processing gtm_cq_ssl[author] action import (gtm_cq::author line 34) 

有大量非常明顯的日誌語句,以及用於測試文件,推動東西使用另一種cookbook_file的直到服務器。沒有日誌語句,沒有推送測試文件。我也確信在每次測試之前,foo.cer文件都會從服務器中刪除。

我發現,如果我修改我的通知行,像這樣與:immediately

notifies :import, resources(:gtm_cq_ssl => "author"), :immediately 

看來工作。我想這在我的特定情況下是可以的,但如果這是我可以打電話給我的提供商的唯一方式,那麼看起來有些不對勁。

任何幫助,將不勝感激。

謝謝!

編輯:

所以經過進一步調查,事實證明我的供應商不會被調用,但我的供應商中我cookbook_file通話不會被調用。日誌沒有提及它。這裏是我的供應商?

action :import do 

    Chef::Log.info "This is my LOG!!!!!!!!!!" 
    cookbook_file "/opt/cq5/worked.dat" do 
     source "worked.dat" 
     cookbook "gtm_cq" 
     owner "crx" 
     group "root" 
     mode "0644" 
    end 

end 

這裏就是我的日誌語句出現的記錄,但在執行任何關於worked.dat食譜文件」

INFO: cookbook_file[/opt/cq5/author/nike.cer] sending import action to gtm_cq_ssl[author] (delayed) 
INFO: Processing gtm_cq_ssl[author] action import (gtm_cq::author line 15) 
INFO: This is my puts you PUTZ!!!!!!!!!! 
INFO: template[/etc/httpd/conf/cq-farms/farm_10author.any] sending restart action to service[apache2] (delayed) 
INFO: Processing service[apache2] action restart (apache2::default line 217) 

這是一個錯誤

回答

0

我相信語法應該是

notifies :import, "gtm_cq_ssl[author]", :immediately 
1

接收「延遲」通知(即沒有:立即)在Chef運行結束時執行。

我認爲在這一點上可能已經太晚了,例如cookbook_file裏面有:import。

你可以嘗試這樣的事:

action :import do 
    Chef::Log.info "This is my LOG!!!!!!!!!!" 
    cookbook_file "/opt/cq5/worked.dat" do 
     source "worked.dat" 
     cookbook "gtm_cq" 
     owner "crx" 
     group "root" 
     mode "0644" 
     action :nothing  # <— add this 
    end.run_action(:create) # <- change this 
end 

這將立即運行該資源爲:進口行爲被稱爲排隊它代替。