Я новичок ie в ansible, и я пытаюсь написать сборник пьес, чтобы другие версии сервиса jboss работали в другой коробке. Дело в том, что у меня может быть запущено 1, 2 или 3 разных сервиса. Если есть только один, каталог будет jbapp и его порт 4280; если их 2, каталогами будут jbapp на 4280 и jbapp2 на 4290 и так далее. Я легко определяю, что нужно с помощью ls / opt. Но когда я пытаюсь запустить curl с помощью find_results, он жалуется на неопределенную переменную, я создал словарь, но я не знаю, как на него ссылаться. По сути, я хочу сделать ansible ~ эквивалент
for server in server_list
jboss_count = $(ls /opt/jbapp* |wc -l)
if [ jboss_count == 3 ] then
jboss_list = "4280 4290 4300"
else if [jboss_count ==2 ] then
jboss_list = "4280 4290"
else if [jboss_count ==1 ] then
jboss_list = "4280"
fi
for jboss in jboss_list
do
curl http://server:jboss/blabla/
done
done
Это мой код:
vars:
jbapp_http_port :
- jbapp: 4280
- jbapp2: 4290
- jbapp3: 4300
tasks:
- name: Finding jbapp directories
shell: ls /opt |grep jbapp
register: jboss_list
- name: Get version jboss
shell: 'curl http://127.0.0.9:{{ item }}/jbapp/'
with_items:
-4280
-4290
-4300
Задача «Получить версию jboss» должна получить только соответствующий список порты, но я заставил его go через все из них, что не очень хорошо, так как выдает ошибки, когда не все из них установлены.
Заранее спасибо за любую помощь.