0
我有以下問題。下面的廚師食譜代碼片段的行爲不盡相同,儘管它們在純邏輯方面看起來與我相同。AWS OpsWorks中的廚師「模板」資源:測試目標文件是否存在
template "Create a file if not exists" do
path "#{site_docroot}/somefile.php"
source 'somefile.php.erb'
action :create_if_missing
end
VS.
if !File.exists? "#{site_docroot}/somefile.php"
template "Create a file if not exists" do
path "#{site_docroot}/somefile.php"
source 'somefile.php.erb'
action :create
end
end
兩者都應創建一個文件,如果它還不存在。 但是在亞馬遜OpsWorks「設置」階段的自定義配方中,第一種溶劑如預期的那樣工作。 但是第二次溶劑恰好每次運行食譜時都會產生「誤報」。 「if」語句提供了錯誤,但文件末尾不存在。
所以我想知道是否有任何原因在廚師或/和紅寶石嵌套「模板」資源內「如果」塊。 「模板」資源是否運行某種異步?
這是一個很好的答案很簡單。在閱讀關於「only_if」,「not_if」警衛和「.run_action(...)」相位切換後,我通過編譯和彙總了這件事。但是您提供了每秒運行一次的文件解釋。謝謝! –