【问题标题】:Ansible end role when one host is ok一台主机正常时的 Ansible 结束角色
【发布时间】:2021-07-01 10:11:54
【问题描述】:

Ansible:2.9.9

你好,

我在三个主机之一中搜索从 playbook 执行任务的方法。

库存文件:

[servers]
server01
server02
server03

剧本文件:

此代码对组“服务器”中的元素执行 ping 角色的次数。

- hosts: servers
  roles:
    - roles:
      - ping

当“servers”组中的元素之一为“ok”时,我搜索角色的方法结束。

我想用“神社过滤器”来做这件事,有可能吗?

示例:如果 server01 没问题,不要在其他主机上启动。但如果 server01 不正常,请继续发送给其他主机。

谢谢!

【问题讨论】:

    标签: list ansible jinja2


    【解决方案1】:

    人们会期望 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 解决后请在此处发表评论。

    【讨论】:

    • 你都知道!我开始关注问题的网址。谢谢
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多