我试图运行一个Ansible的手册,但它似乎是在“收集事实”冻结。 这是输出:
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
我的Vagrantfile看起来像这样:
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
我已经试过这个答案 。 我也删除了.vagrant文件夹,这也没有帮助。
显然你的Ansible正在尝试login到127.0.0.1:2222; 但是你的stream浪机似乎在听192.168.10.249:22。
解决这个问题的一个方法就是把它传递给ansible-playbook :
--extra-vars="ansible_ssh_host=192.168.10.249 ansible_ssh_port=22"