我们有一个Ansible角色需要在handlers/main.yml任务文件中运行三个任务,但它只运行第一个任务。我如何强制它运行其他两个任务?如果第一个任务失败,我确实在其中加入了ignore标记。
tasks/main.yml文件如下:
tasks/main.yml文件如下:
- name: openfire | Copy plugins into openfire/plugins
copy: src={{ srcdir }}/xmpp/{{ item }} dest=${bindir}/openfire/plugins/{{ item }}
with_items:
- x.jar
- y.jar
sudo: yes
sudo_user: ${tomcat_user}
notify: restart openfire
- name: openfire | Copy jars into openfire/lib
copy: src={{ srcdir }}/xmpp/{{ item }} dest=${bindir}/openfire/lib/{{ item }}
with_items:
- a.jar
- b.jar
sudo: yes
sudo_user: ${tomcat_user}
notify: restart openfire
handlers/main.yml
文件如下所示:
- name: restart openfire
service: name=openfire state=stopped
ignore_errors: true
sudo: yes
- name: restart openfire
file: path=/var/run/openfire.pid state=absent
sudo: yes
- name: restart openfire
service: name=openfire state=restarted enabled=yes
sudo: yes
只有第一个处理程序任务(关闭openfire)运行。
service
和file
模块合并到一个单独的块中吗?这样做会使故障排除更加困难,而且非常丑陋,但它仍然应该能够工作。 - Mxxstate=restarted
语句呢?那样会真正“重启”(停止和启动)你的服务。 - Mxx