Назад | Перейти на главную страницу

Условные выражения Ansible - строка соответствия с подстановочными знаками

В задаче Ansible у меня есть следующее условие:

when: ec2_tag_Name == 'testhost01'

Он работает нормально, однако я хотел бы сопоставить подстановочный знак на ec2_tag_Name поле.

Так что-то вроде этого

when: ec2_tag_Name == 'testhost*'

Цель состоит в том, чтобы сопоставить что-нибудь вроде testhostx testhost12 testhostABC и т.д. и т.п. просто все, что подходит testhost в начале строки.

Это возможно? Кажется, это не работает.

Из Тестирование строк:

Чтобы сопоставить строки с подстрокой или регулярным выражением, используйте фильтр «совпадение» или «поиск».

В твоем случае:

when: ec2_tag_Name is match("testhost.*")

Это тоже работает.

when: "ec2_tag_Name.startswith('testhost')"

Вы можете комбинировать логические операторы, например и и или