Stuck on gathering facts

ansiblevagrant

I'm trying to run an Ansible playbook, but it seems to be freezing on 'Gathering facts'. This is the output:

GATHERING FACTS *************************************************************** 
<127.0.0.1> ESTABLISH CONNECTION FOR USER: vagrant
<127.0.0.1> REMOTE_MODULE setup
<127.0.0.1> EXEC ssh -C -tt -vvv -o UserKnownHostsFile=/dev/null -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/username/.ansible/cp/ansible-ssh-%h-%p-%r" -o StrictHostKeyChecking=no -o Port=2222 -o IdentityFile="/Users/username/Development/project/.vagrant/machines/default/virtualbox/private_key" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 127.0.0.1 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630 && echo $HOME/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630'
EXEC previous known host file not found for 127.0.0.1
<127.0.0.1> PUT /var/folders/f4/kcgc_d317118rhlhr2h4_n_40000gn/T/tmpy2ch6T TO /home/vagrant/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630/setup
<127.0.0.1> EXEC ssh -C -tt -vvv -o UserKnownHostsFile=/dev/null -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/username/.ansible/cp/ansible-ssh-%h-%p-%r" -o StrictHostKeyChecking=no -o Port=2222 -o IdentityFile="/Users/username/Development/project/.vagrant/machines/default/virtualbox/private_key" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 127.0.0.1 /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, key=lkggsnniefbgussqpseoiygntgmnyhib] password: " -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-lkggsnniefbgussqpseoiygntgmnyhib; LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630/setup; rm -rf /home/vagrant/.ansible/tmp/ansible-tmp-1430293931.91-167750843873630/ >/dev/null 2>&1'"'"''
EXEC previous known host file not found for 127.0.0.1

My Vagrantfile looks like this:

Vagrant.configure(2) do |config|

  config.dnsmasq.dnsmasqconf = '/usr/local/etc/dnsmasq.conf'
  config.dnsmasq.domain = 'local.project-name.nl'
  config.dnsmasq.ip = '192.168.10.249'
  config.dnsmasq.reload_command = 'sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist; sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist'

  config.vm.box = 'xezpeleta/wheezy64'
  config.vm.synced_folder './', '/var/www'
  config.vm.synced_folder './logs', '/var/logs'
  config.vm.network 'private_network', ip: '192.168.10.249'

  config.vm.provider 'virtualbox' do |v|
    v.cpus = 2
    v.memory = 1024
    v.name = 'project-name'
  end

  config.vm.provision :ansible do |ansible|
    ansible.playbook = 'vagrant/provision/vagrant.yml'
    ansible.verbose = 'vvvv'
  end

end

I already tried this answer. I also deleted the .vagrant folder which wasn't helping either.

Best Answer

Apparently your Ansible is trying to logon to 127.0.0.1:2222; but your vagrant machine seems to be listening at 192.168.10.249:22.

One way to solve this problem is to pass this to ansible-playbook:

--extra-vars="ansible_ssh_host=192.168.10.249 ansible_ssh_port=22"