How do I exit Ansible play without error on a condition

前端 未结 6 1645
我在风中等你
我在风中等你 2021-01-31 02:02

I want to exit without an error (I know about assert and fail modules) when I meet a certain condition. The following code exits but with a failure:

  tasks:

           


        
6条回答
  •  [愿得一人]
    2021-01-31 02:29

    Just a little note: meta: end_play ends just the play, not a playbook. So this playbook:

    ---
    - name: 1st play with end play
      hosts: localhost
      connection: local
      gather_facts: no
      tasks:
        - name: I'll always be printed
          debug:
            msg: next task terminates first play
    
        - name: Ending the 1st play now
          meta: end_play
    
        - name: I want to be printed!
          debug:
            msg: However I'm unreachable so this message won't appear in the output
    
    - name: 2nd play
      hosts: localhost
      connection: local
      gather_facts: no
      tasks:
        - name: I will also be printed always
          debug:
            msg: "meta: end_play ended just the 1st play. This is 2nd one."
    

    will produce this output:

    $ ansible-playbook -i localhost, playbooks/end_play.yml 
    
    PLAY [1st play with end play] **************************************************
    
    TASK [I'll always be printed] **************************************************
    ok: [localhost] => {
        "msg": "next task terminates first play"
    }
    
    PLAY [2nd play] ****************************************************************
    
    TASK [I will also be printed always] *******************************************
    ok: [localhost] => {
        "msg": "meta: end_play ended just the 1st play. This is 2nd one."
    }
    
    PLAY RECAP *********************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
    

提交回复
热议问题