Ansible - ansible_play_hosts magic variable

The ansible_play_hosts magic variable can be used to output the managed hosts the play is being run against. 

For example, let's say you have the following playbook. 

- hosts: all
    - debug:
        msg: "{{ ansible_play_hosts }}"


If you get the following output, the gather_facts module may be set to false. gather_facts must be set to true, or not defined at all in your playbook, as gather_facts is true by default.

TASK [debug]
fatal: []: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ansible_play_hosts' is undefined\n\nThe error appears to be in 'testing.yml': line 8, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n  tasks:\n    - debug:\n      ^ here\n"}


Something like this should be returned.

TASK [debug]
ok: [] => {
    "msg": [


The same could be done with the ansible_play_batch or ansible_play_hosts_all magic variables, which should return the same exact output.

Add a Comment

We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.

Please enter 79db8 in the box below so that we can be sure you are a human.


Web design by yours truely - me, myself, and I   |   |