Im, создавая учебник для развертывания для наших веб-сервисов. Каждый веб-сервис находится в своем собственном каталоге, таких как:Ansible - Проверьте, существует ли несколько каталогов - если так запустить скрипт в каждом каталоге - как?
/webapps/service-one/
/webapps/service-two/
/webapps/service-three/
Я хочу, чтобы проверить, если каталог услуг существует, и если да, то я хочу, чтобы запустить скрипт, который останавливает службу грациозно. В настоящее время я могу завершить этот шаг, используя ignore_errors: yes
.
- name: Stop services
with_items: services_to_stop
shell: "/webapps/scripts/stopService.sh {{item}}"
ignore_errors: yes
В то время как это работает, выходной сигнал очень неаккуратно, если один из каталогов, оленья кожа существует или услуга развертывается в первый раз. Я фактически хочу что-то вроде одного из них:
Это:
- name: Stop services
with_items: services_to_stop
shell: "/webapps/scripts/stopService.sh {{item}}"
when: shell: [ -d /webapps/{{item}} ]
или это:
- name: Stop services
with_items: services_to_stop
shell: "/webapps/scripts/stopService.sh {{item}}"
stat:
path: /webapps/{{item}}
register: path
when: path.stat.exists == True
Хорошее использование фильтрации джиньи, в частности, карты() и фильтров списка, это подход, который я раньше не видел. –
Это довольно ударило о том, что я ищу. Благодаря! – R4F6