Таргетинг на несколько зерен в миньонах соли с помощью API - PullRequest
0 голосов
/ 17 января 2019

В нашей инфраструктуре мы устанавливаем кратные зерна на миньоне, включая зерна "environment" и "app". Когда мы используем cli, мы можем получить правильных миньонов, используя:

salt -C "G@app:middle_tier_1 and G@environment:dev" test.ping

Но если мы попытаемся использовать API-интерфейс cherrypy, результат получится только в том случае, если установлена ​​только одна цель, например:

[{"client":"local","tgt_type":"grain","fun":"test.ping","tgt":"G@app:middle_tier_1"}]

или

[{"client":"local","tgt_type":"grain","fun":"test.ping","tgt":"G@environment:dev"}]

с числом, кратным единице, не получите

[{"client":"local","tgt_type":"grain","fun":"test.ping","tgt":"G@app:middle_tier_1 and G@environment:dev"}]
[{"client":"local","tgt_type":"grain","fun":"test.ping","tgt":["G@app:middle_tier_1","G@environment:dev"]}]

Согласно документации, я могу использовать список в параметре tgt.

Я довольно подробно изучил их документацию и не нашел примеров такого типа прицеливания миньонов. Возможно ли это вообще, и если да, то как мне это сделать?

Дополнительная информация: соль-мастер 2018.3.2 (кислород) соль-API 2018.3.2 (кислород)

Заранее спасибо!

1 Ответ

0 голосов
/ 29 января 2019

Если вы хотите использовать несколько зерен, тип tgt_ compound не grains.

См .: https://docs.saltstack.com/en/latest/ref/clients/#salt-s-client-interfaces, https://docs.saltstack.com/en/latest/topics/targeting/compound.html

...