Saltstack
通過 Jenkins 進行鹽狀態測試
全部,
我們正在嘗試在我們的 Jenkins 設置中進行自動化測試,以在我們的鹽狀態文件 (
.sls
) 中執行“煙霧”和“棉絨”類型的測試。到目前為止,所有 google-foo 都產生了很少的資訊。有一種方法可以test=True
在命令行中進行測試,但這不適用於無 shell 帳戶(就像 Jenkins 的帳戶通常那樣)。我還沒有遇到任何人對 SaltStack 狀態進行這種自動化測試。所以:
1)有沒有可能
2)任何人都知道我可以查看的好資源
TIA。
**碼頭工人。**伺服器配置的快速自動化測試是 docker 指出的一個不可否認的現實問題。它可以在一秒鐘內提供一台已經啟動並在網路上偵聽的干淨電腦。使用 /srv/salt bind-mounted 啟動映像,您可以執行
salt-call --local state.highstate -l debug
以測試狀態而無需大驚小怪salt-key
。我知道 SaltStack, Inc 以同樣的方式使用 LXC。他們可能仍然這樣做。
至於測試——如果你對你的狀態文件很聰明和小心,你可以認為一個乾淨的第二次執行是成功的標誌。
這很難實現,因為某些狀態總是會重新執行。Salt Stack 一直擅長修復這些被發現的狀態。與此同時,您將不得不用內聯 jinja 條件包圍這些狀態,這些條件在執行時在 minion 上執行命令:
{% if salt['cmd.retcode']('your test here') %} some-identifier: some.module: - name: some anme {% endif %}'
docker 外掛的目的是能夠使用 docker 主機動態配置從屬伺服器,執行單個建構,然後拆除該從屬伺服器。
或者,您可以通過新的 docker-ng salt 模組自動化整個過程:
salt dockhost docker-ng.create states-qa rm=True binds="/srv/salt:/srv/salt" salt dockhost docker-ng.retcode states-qa 'salt-call --local state.highstate' # run 1 salt dockhost docker-ng.retcode states-qa 'salt-call --local state.highstate' # run 2 salt dockhost docker-ng.stop states-qa