2017-06-29 102 views
0

我試圖找出節點和環境之間的區別,我已經開始管理這個設置。我不確定是否有什麼我錯過了,如果這是不好的做法,或者你有什麼。我對廚師也很陌生,並且慢慢地掌握了它的知識。廚師節點與環境

我將節點理解爲運行chef-client並根據運行列表維護所需狀態的機器。

我也明白,一個環境是用來描述有關特定環境的信息,並將有可能特定於該環境的變量。

我在廚師回購和我管理的代碼中看到的內容非常相似---如果不是完全重疊的話。

給定一個向主服務器註冊的節點,以及指定運行的環境 - 我看到相同的配置。

在節點上,有關於使用哪些cookbook版本,chef_environment設置爲哪個環境以及僅與該應用程序相關的特定應用程序變量,機器收集的硬件統計信息以及更多信息。

在環境上,有相同的信息集合,食譜版本,應用變量和設置。

我甚至不認爲在節點中提到的環境是受到尊重的,因爲在Bamboo上使用knife bootstrap命令指定了不同的環境。

我的問題是這個---這是多餘的?哪些設置被尊重,哪些被忽略,這可以減少並簡化?這是一個常見和正確的設置?

回答

0

一般而言,您應該爲節點屬性定義唯一的信息,例如每個服務器的主機名稱不同。

在節點和環境中設置相同的屬性時,優先級有點複雜。廚師的屬性有六個級別覆蓋的:

  • 默認
  • force_default
  • 正常
  • 覆蓋
  • force_override
  • 自動

在同一水平,環境優先在節點之上,這可能與直覺相反。您可以使用不同的級別(例如默認和覆蓋)來調整覆蓋的優先級。

有關詳細信息,請參閱以下文檔的表格: https://docs.chef.io/attributes.html#attribute-precedence