当一台主机正常时 Ansible 结束角色
Ansible end role when one host is ok
Ansible:2.9.9
你好,
我在三台主机中的一台中搜索了从剧本执行任务的方法。
库存文件:
[servers]
server01
server02
server03
剧本文件:
此代码对“服务器”组中的元素执行相同次数的 ping 角色。
- hosts: servers
roles:
- roles:
- ping
当“服务器”组中的元素之一为“确定”时,我搜索角色的方法结束。
我想用“jinja filter”做这个,可以吗?
例子:如果server01没问题,就不要登陆其他主机。但如果 server01 不正常,则继续发送给其他主机。
谢谢!
人们会期望 meta: end_play 和 "serial: 1" 会有所帮助,例如
- hosts: servers
gather_facts: false
serial: 1
tasks:
- block:
- ping:
- debug:
msg: "{{ inventory_hostname }} OK."
- meta: end_play
rescue:
- debug:
msg: "{{ inventory_hostname }} failed."
如果主机成功完成 ping,模块 meta:end_play 应该终止播放。不幸的是,这不起作用。有一个 issue 打开。该剧完成了所有可达的主机
(删节)
msg: server1 OK.
msg: server2 OK.
msg: server3 OK.
issue 解决后请在此处评论。
Ansible:2.9.9
你好,
我在三台主机中的一台中搜索了从剧本执行任务的方法。
库存文件:
[servers]
server01
server02
server03
剧本文件:
此代码对“服务器”组中的元素执行相同次数的 ping 角色。
- hosts: servers
roles:
- roles:
- ping
当“服务器”组中的元素之一为“确定”时,我搜索角色的方法结束。
我想用“jinja filter”做这个,可以吗?
例子:如果server01没问题,就不要登陆其他主机。但如果 server01 不正常,则继续发送给其他主机。
谢谢!
人们会期望 meta: end_play 和 "serial: 1" 会有所帮助,例如
- hosts: servers
gather_facts: false
serial: 1
tasks:
- block:
- ping:
- debug:
msg: "{{ inventory_hostname }} OK."
- meta: end_play
rescue:
- debug:
msg: "{{ inventory_hostname }} failed."
如果主机成功完成 ping,模块 meta:end_play 应该终止播放。不幸的是,这不起作用。有一个 issue 打开。该剧完成了所有可达的主机
(删节)
msg: server1 OK.
msg: server2 OK.
msg: server3 OK.
issue 解决后请在此处评论。