Salt-api использует другой метод сопоставления, отличный от glob

По умолчанию salt-api использует метод glob для соответствия целевому миньону. Можно ли использовать другой способ (может быть зерна, pcre и т. д.) для поиска миньонов.

Я пытался передать tgt_type в salt-api, но это не сработало.

curl -s -H "Accept: application/json" -d username='user' -d password='pwd' -d eauth='pam' -d fun='test.ping' -d tgt='127.0.0.1' -d client='local' -d tgt_type='ipcidr' localhost:8000/run   

person Bing    schedule 21.01.2015    source источник
comment
Наконец, я получил ответ из исходного кода соли client/__init__.py. Функция cmd принимает параметр expr_form для указания типа соответствия. Например: curl -s -H "Accept: application/json" -d username='user' -d password='pwd' -d eauth='pam' -d fun='test.ping' -d tgt='127.0.0.1' -d client='local' -d expr_form='ipcidr' localhost:8000/run   -  person Bing    schedule 21.01.2015
comment
Ой, извини. Я только что заметил, что вы ответили на свой вопрос сразу после публикации ниже. Рад, что ты это понял! Мы должны найти способ сделать эту часть информации более очевидной в документах.   -  person Utah_Dave    schedule 23.01.2015


Ответы (2)


expr_form — это тот вариант, который вам нужен.

expr_form='ipcidr'

Встречается довольно часто в различных частях Солт.

Вот легенда с различными типами соответствия в Salt: http://docs.saltstack.com/en/latest/topics/targeting/compound.html

person Utah_Dave    schedule 23.01.2015
comment
Все же разрешите поблагодарить вас. Я не могу найти параметр expr_form в документе. Поэтому я пытаюсь найти его в исходном коде! -_- - person Bing; 24.01.2015
comment
Я только что искал ссылку, которую вы разместили, и нигде не могу найти слова ipcidr! Есть ли какая-то документация, которая расшифровывает то, что ожидает salt-api, и переводит его в такие вещи, как зерна, IP-адрес или что-то в этом роде? Я хотел бы ориентироваться на что-то по крупицам, и этот ответ помогает мне понять, что мне нужно что-то передать в expr_form, но я понятия не имею, что. - person Jeff Tucker; 13.04.2016
comment
чтобы настроить таргетинг на зерно, используя expr_form='grain', я могу настроить таргетинг на зерно под названием 'mygrain' со значением 'derp', используя tgt='mygrain:derp' - person Jeff Tucker; 13.04.2016

tgt_type должен работать с последними версиями Salt API. В соответствии с типом tgt (сопоставитель соли для миньонов).

Начиная с версии 2017.7.0, expr_form был переименован в tgt_type.

tgt_type может быть одним из следующих:

  • glob — завершение Bash glob — по умолчанию
  • pcre — регулярное выражение в стиле Perl
  • list — список хостов Python
  • grain — Сопоставление на основе сравнения зернистости
  • grain_pcre - Сравнение зернистости с регулярным выражением
  • pillar - Сравнение данных столба
  • pillar_pcre — сравнение данных столба с регулярным выражением
  • nodegroup - Совпадение по группе узлов
  • range - Использовать сервер диапазона для сопоставления
  • compound — передать строку составного соответствия
  • ipcidr — соответствие на основе подсети (нотация CIDR) или адреса IPv4.

Для получения дополнительной информации см. официальную документацию по функциям клиента:

person pranavcode    schedule 07.02.2019