2012-06-30 71 views
2

我有兩個食譜:強制執行的順序廚師食譜

  1. 配置我的主目錄的東西像我的.bashrc,運行在幾乎所有的機器,我用
  2. 坐騎包含我的主目錄EBS卷。這一次只能由單個EC2實例使用,但可以讓我輕鬆遷移到新實例

對於此EC2實例首次啓動時,我需要在執行前配方#2配方#1或音量將不會被安裝。我怎樣才能確保這個執行順序將被明確強制?

回答

14

廚師總是在您指定的順序執行的食譜。它不會任意重新排序。所以,如果你想在另一個之前要運行一個配方,只是加載它們的順序(如在run_list

爲了進一步加強這(在你的食譜之間的附加連接的代價),你也可以在他使用include_recipe第二個配方開始加載第一個配方。

+0

那麼這個http://serverfault.com/questions/604719/chef-recipe-order-of-execution-redux和這個http://erik.hollensbe.org/2013/03/16/the-廚師資源運行隊列/討論?他們似乎都認爲有兩個截然不同的編譯和運行階段,編譯階段最終會重新排序。 – mmcrae

+3

@mmcrae你確實有兩個階段:你的食譜被評估和資源收集的編譯階段,以及這個集合被一個接一個地執行的收斂階段。通常情況下,資源只在編譯階段的資源收集結束時添加。但是,您可以影響這一點(例如通過自定義代碼或使用通知)。也就是說,如果沒有明確的依賴關係,廚師仍然不會隨機重新排序資源(比如木偶)。它始終使用定義資源的隱式順序。 –

-2

如果你想在登錄時(而不是啓動時)來完成這兩個動作......

...如果你需要他們在一個特定的順序完成...

...然後你應該簡單地寫一個腳本,調用這兩個他們。按正確的順序。

恕我直言...