1

У меня возникли проблемы с использованием регулярных выражений с солью для таргетинга на каждого миньона, кроме одного.

Я попробовал каждый пример, который смог найти, и исчерпал свое ограниченное понимание регулярных выражений Perl. Я ожидаю, что это будет предназначаться для каждого миньона (все с именем some.domain.co.uk):

^(?!.*mail).*$

Однако он возвращает нулевые значения.

Любая помощь будет принята с благодарностью

2 ответа2

0

В вашем top.sls используйте следующий синтаксис для соответствия:

base:
  '^(?!.*mail).*$':
    - match: pcre
    - states_to_apply

Источник: http://docs.saltstack.com/en/latest/topics/targeting/globbing.html

0

PCRE Minion_ID Compound Matcher, обозначенный E@ - это то, что вы хотите.

При нацеливании на миньонов в командной строке:

salt -C 'E@^(foo|bar)$' test.ping

Или в верхнем файле:

base:
  'E@^(?!.*mail).*$':
    - match: compound

Да, вы можете использовать salt -E 'regex' или - match: pcre и пропустить ведущий E@ для чистого minion_id regex, но цепочка нескольких совпадений (зерна PCRE, блок cidr ip и т.д.) Может быть довольно выразительной:

 salt -C 'G@os:(Ubuntu|Debian) and G@domain:example\.(com|net) and E@^(?!.*mail).*$'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .