We’ve got a Vagrantfile that needs to work for several providers. Within this file, we do provision using ansible, and one provisioning step is done using the
synchronize module that uses rsync internally.
When using this module directly from this setup, users need to enter the password of the vagrant user during
vagrant provision because rsync will ask for it.
We can provide an ssh identity file to the
sychronize module using the
private_key parameter as documented here: ansible.posix.synchronize module – A wrapper around rsync to make common tasks in your playbooks quick and easy — Ansible Documentation
And of course, I can specify this parameter from the Vagrantfile by setting a variable using
ansible.extra_vars. For a machine named
testvm and when using the VirtualBox provider, I can set this to the relative path
"../.vagrant/machines/testvm/virtualbox/private_key". Unfortunately, for the VmWare Desktop or for Parallels, the path will be different.
Any idea how I can set infer the active provider (or ideally the path to the ssh private key directly) from the Vagrantfile?
Please also have a look at Get current provider in Vagrantfile · Issue #1867 · hashicorp/vagrant · GitHub.