为我们的Web服务创建部署手册。每个Web服务是在自己的目录,如:Ansible - 检查是否存在多个目录 - 如果是这样,请在每个目录上运行脚本 - 如何?
/webapps/service-one/
/webapps/service-two/
/webapps/service-three/
我要检查,看是否服务目录是否存在,如果是这样,我想运行正常停止服务的shell脚本。目前,我可以使用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
很好地使用了jinja过滤,特别是map()和list过滤器,这是我以前从未见过的方法。 –
这对我所寻找的东西来说非常棒。谢谢! – R4F6