Ansible: removing hosts

Unfortunately, it seems, that you can't do this using Ansible 2. There is no such a module called remove_host or another one.

However, using Ansible 2 you can refresh your inventory mid-play:

- meta: refresh_inventory

Have a look at this question

Another idea might be to filter hosts beforehand. Try adding them to group, and then excluding this group in a play lately, e.g. :

- hosts: '!databases'

You can just stop the play for those hosts:

- name: Remove unwanted hosts from play_hosts
  meta: end_host
  when: unwanted

This assumes, of course, that the unwanted variable exists on all the hosts and is set properly.