2013-10-10 119 views
9

如何使小工具使用特定的SaltStack環境?使用SaltStack設置環境

GitFS backend tutorial指出分支將映射到使用分支名稱作爲標識的環境。我如何將這些環境暴露給我的爪牙?

舉個例子,假設名爲「pippy」的I have a branch。我想將這個分支部署到特定的爪牙。

看來我可以通過小人的配置文件設置環境。有沒有其他方法可以從鹽師傅完成?

+1

我發現自己在這裏試圖弄清楚如何使用環境來通過dev/test/prod版本和促進狀態配置。我不確定這是否是用例,因爲我遇到了一些問題。我在郵件列表中詳細地發佈了更多信息:https://groups.google.com/forum/#!topic/salt-users/4P9YpaFdRTQ – thaddeusmt

回答

16

這裏的關鍵是top.sls文件是跨環境的。在介紹之前,需要注意的是,儘管大多數分支將映射到同名環境,但例外情況是master分支將映射到base環境。

無論如何,請登錄top.sls。在top.sls中,您定義了您的環境,這些環境是該環境的成員,並且將從該環境運行哪個狀態文件以獲得state.highstate

base: 
    '*': 
    - basestate 
dev: 
    'webserver*dev*': 
    - webserver 
    'db*dev*': 
    - db 
qa: 
    'webserver*qa*': 
    - webserver 
    'db*qa*': 
    - db 
pippy: 
    'webserver*pippy*': 
    - webserver 
    'db*pippy*': 
    - db 

因此,所有的爪牙將運行從base環境basestate.sls文件。只有目標小衆才能從其他每個環境中運行狀態。

還有更多的信息in the topfile documentation

在小配置配置中定義環境選項只是將小生物分隔到特定環境。從頂層文件定義您的環境更加靈活和強大。

+1

我現在看到了。我一直在跳過topfile部分,認爲我的'top.sls'會在git repo中,而這樣做並不適合跨越分支(以及top.sls中的更改)。 –

+1

如果top.sls文件在不同分支之間會發生什麼? –

+1

在該文檔中有一個關於中途的註釋,但基本上來自每個環境的頂層文件將被合併到單個頂層數據結構中。基地環境將贏得衝突。通常,將頂級文件保留在基本(主)環境中是最容易的。 – basepi