Notice! This post is more than a year old. It may be outdated.
I have a playbook which will be run on the Ansible host.
---
- name: My play
hosts: localhost
connection: local
roles:
- list of rolesRunning the play from the command line using ansible-playbook I got the result that I expected. But when I use Vagrant to provision a virtual machine using Ansible provisioner, the play that should have been executed on the Ansible host was skipped altogether.
PLAY [My play] ****
skipping: no hosts matchedFrom what I understand, this is caused by Vagrant Ansible provisioner always setting the --limit argument. I can reproduce the same issue by executing the playbook using ansible-playbook and setting the --limit argument explicitly.
$ ansible-playbook -i inventory/dev/hosts play.yml --limit allWorkaround
In your Vagrantfile add the following line to your Ansible provisioner configuration
ansible.limit = 'all,localhost'