Я использую SaltStack на своих Linux-компьютерах и хочу определить группы узлов. Я знаю о составных сопоставлениях, списках миньонов и т. Д.
Это то, что мне нужно, и это работает, но это сложно поддерживать с большим количеством серверов.
nodegroups:
group1: 'srv1,srv2,srv3,srv4,dev1,dev2,stage1,stage2'
Чтобы не усложнять, я пытаюсь определить их так:
nodegroups:
group1: 'srv*,dev*,stage*'
Но я не могу найти способ сделать это правильно. Любые идеи?
Я попытался Дэн Гартвейтs решение, но оно не сработало. Я даже попробовал это на своем частном сервере разработки, на котором установлена 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*
Имейте в виду, что вы также можете использовать зерна и / или столбы для нацеливания на миньонов через составной сопоставитель.
Я сделал это сейчас с зерном. Я только что добавил
grains:
group: groupname
в /etc/salt/minion.d/minion.conf о моих миньонах. Это не совсем то, что я хотел, поскольку это определяет, какие роли миньон получает на стороне миньона, что не оптимально с точки зрения безопасности (к тому же было бы удобнее определить все группы на главном устройстве).
С другой стороны, я могу установить зернистость для серверов, которые не принадлежат ни к каким группам, на undefined, и легче получить список всех неопределенных серверов.
Спасибо за помощь. Я оставлю этот вопрос неразрешенным, поскольку он на самом деле не решен (если кто-то знает, как это сделать на мастере, скажите мне)