Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 任务的可解析条件处理程序?_Ansible - Fatal编程技术网

Ansible 任务的可解析条件处理程序?

Ansible 任务的可解析条件处理程序?,ansible,Ansible,仅供参考,我正在“拉模式”而不是“推模式”下运行我的Ansible playbook。因此,我的节点将通过Hipchat发布其任务的结果 话虽如此,我有一个安装RPM的任务。安装成功后,节点通过Hipchat通知任务已成功运行。现在,在任务失败的情况下,我强制它通过“-force handlers”参数通知hipchat。我的问题是,有没有一种方法可以根据任务的结果调用特定的处理程序 任务 处理者 在本例中,我使用多个处理程序。请参见以下示例: 文件site.yml 使用命令 ansible-p

仅供参考,我正在“拉模式”而不是“推模式”下运行我的Ansible playbook。因此,我的节点将通过Hipchat发布其任务的结果

话虽如此,我有一个安装RPM的任务。安装成功后,节点通过Hipchat通知任务已成功运行。现在,在任务失败的情况下,我强制它通过“-force handlers”参数通知hipchat。我的问题是,有没有一种方法可以根据任务的结果调用特定的处理程序

任务 处理者
在本例中,我使用多个处理程序。请参见以下示例:

文件site.yml

使用命令

ansible-playbook -c local -i "localhost," site.yml
注意:使用jinja2中添加的测试过滤器2.8


您可以在处理程序中使用“when”、“with_items”等。条件句会给你你想要的吗?从您的解释和示例代码来看,我不太确定您想要做什么……文档的这一部分可能会有所帮助:您可以忽略失败,然后根据失败还是成功来做不同的事情。
- name: announce_hipchat
  local_action: hipchat
        from="deployment"
        token={{ hipchat_auth_token }}
        room={{ hipchat_room }}
        msg="[{{ ansible_hostname }}] Successfully installed RPMs!"
        validate_certs="no"
- hosts: all
  gather_facts: false
  force_handlers: true
  vars:
  - cmds:
      echo: hello
      eccho: hello
  tasks:
  - name: echo
    command: "{{ item.key }} {{ item.value }}"
    register: command_result
    with_dict: "{{ cmds }}"
    changed_when: true
    failed_when: false
    notify:
    - "hipchat"
  handlers:
  - name: "hipchat"
    command: "/bin/true"
    notify:
    - "hipchat_succeeded"
    - "hipchat_failed"
  - name: "hipchat_succeeded"
    debug:
      var: "{{ item }}"
    with_items: "{{ command_result.results | selectattr('rc', 'equalto', 0) | list }}"
  - name: "hipchat_failed"
    debug:
      var: "{{ item }}"
    with_items: "{{ command_result.results | rejectattr('rc', 'equalto', 0) | list }}"
ansible-playbook -c local -i "localhost," site.yml