#linux #ansible #devops
#linux #ansible #devops
Вопрос:
У меня есть задача ansible, которая получает все роли elasticsearch
- name: Get all roles
shell: curl -u elastic:123456789 "192.168.2.13:9200/_security/role"
register: roles
и я хочу выполнить задачу ниже, только если переменная roles.stdout содержит слово Uzbekistan
- name: register role (if doesn't exist)
shell: curl -u elastic:123456789 "192.168.2.12:9200"
when: roles.stdout =="Uzbekistan"
итак, как я могу это сделать?
Комментарии:
1. роли — это ключевое слово. Не используйте его как переменную.
2. Спасибо, Володя!
Ответ №1:
Есть много способов сделать это
Используя search
- name: register role (if doesn't exist)
shell: curl -u elastic:123456789 "192.168.2.12:9200"
when: roles.stdout is search('Uzbekistan')
Используя in
- name: register role (if doesn't exist)
shell: curl -u elastic:123456789 "192.168.2.12:9200"
when: "'Uzbekistan' in roles.stdout"
Используя find
- name: register role (if doesn't exist)
shell: curl -u elastic:123456789 "192.168.2.12:9200"
when: roles.stdout.find('Uzbekistan')
Комментарии:
1. Спасибо! я угощу тебя блюдом со свежим пловом!