Groups

SaltStack 以 * 為目標

  • July 23, 2014

我在我的 linux 機器上使用 SaltStack 並想定義節點組。我知道複合匹配和僕從列表等。

這就是我所需要的,它以這種方式工作,但是使用大量伺服器很難維護

nodegroups:
 group1: 'srv1,srv2,srv3,srv4,dev1,dev2,stage1,stage2'
 

為了簡單起見,我試圖以這種方式定義它們:

nodegroups:
 group1: 'srv*,dev*,stage*'

但我找不到正確的方法。有任何想法嗎?

-=編輯=-

我嘗試了Dan Garthwaite的解決方案,但沒有奏效。我什至在安裝了 Salt 版本 2014.1.4 的私人開發伺服器上進行了嘗試。這就是我得到的。

嘗試正常列表(完整主機名)

fmohr@salt-master:~$ sudo salt -v -C 'L@dns01,apache' test.ping
Executing job with jid 20140708072832751715
-------------------------------------------

dns01:
   True
apache:
   True

帶一個萬用字元

fmohr@salt-master:~$ sudo salt -v -C 'L@dns*,apache' test.ping
Executing job with jid 20140708072837257646
-------------------------------------------

apache:
   True

帶有所有萬用字元

fmohr@salt-master:~$ sudo salt -v -C 'L@dns*' test.ping
No minions matched the target. No command was sent, no jid was assigned.

fmohr@salt-master:~$ sudo salt -v -C 'L@dns*,apach*' test.ping
No minions matched the target. No command was sent, no jid was assigned.

我認為您不能在列表中使用萬用字元,但我不知道如何將鹽用於目標 dns* 和 apach*(例如)。

您應該使用或連接它們,如下所示:

nodegroups:
   group1: 'srv* or dev* or stage*'

salt -C 'srv* or dev* or stage*' test.ping

在我的機器上測試。

節點組使用此處定義的複合匹配:

http://docs.saltstack.com/en/latest/topics/targeting/compound.html

你的答案是:

nodegroups:
 group1: L@srv*,dev*,stage*

請記住,您還可以使用顆粒和/或柱子通過複合匹配器來瞄準小兵。

引用自:https://serverfault.com/questions/610656