How to exclude specific host from inventory from a playbook run in Ansible?

Suppose you want to exclude a troublesome host (bad_host) from a particular playbook run. Try using a negated ‘limit’ option:

$ ansible-playbook --limit 'all:!bad_host' playbook.yml

By using –limit argument with ansible-playbook command we can exclude a host from playbook execution. If hostname starts with “!” it will excluded from host execution.

Lets say if we want to exclude host1 and host2 from ansible-playbook execution use following command:

$ ansible-playbook --limit '!hoost1:!host2' yourPlaybook.yml

To exclude only host1 from execution use following command:

$ ansible-playbook --limit '!hoost1' yourPlaybook.yml

To execute only in host1 and host2 from execution use following command:

$ ansible-playbook --limit 'hoost1:host2' yourPlaybook.yml

To execute only in host1 use following command:

$ ansible-playbook --limit 'hoost1' yourPlaybook.yml

To exclude host1 and host2 from execution and allow execution only in host3:

$ ansible-playbook --limit '!hoost1:!host2:host3' yourPlaybook.yml

Reference
https://s905060.gitbooks.io/site-reliability-engineer-handbook/ansible__exclude_host_from_playbook_execution.html#

Rajesh Kumar
Follow me