有安莎错误的流浪汉

时间:2015-04-06 16:57:55

标签: vagrant ansible ansible-playbook vagrantfile

如果我有带有ansible配置的Vagrantfile:

Vagrant.configure(2) do |config|
  config.vm.box = 'hashicorp/precise32'
  config.vm.network "forwarded_port", guest: 80, host: 8080

  config.vm.provision :ansible do |ansible|
    ansible.playbook = "playbook.yml"
    ansible.inventory_path = "hosts"
    ansible.limit = 'all'
    ansible.sudo = true
  end

end

我的主机文件非常简单:

[local]
web ansible_connection=local

和playbook.yml是:

---
- hosts: local
  sudo: true
  remote_user: vagrant
  tasks:
  - name: update apt cache
    apt: update_cache=yes

  - name: install apache
    apt: name=apache2 state=present

当我开始流浪汉时,我得到了错误:

failed: [web] => {"failed": true, "parsed": false}
[sudo via ansible, key=daxgehmwoinwalgbzunaiovnrpajwbmj] password:

问题是什么?

1 个答案:

答案 0 :(得分:0)

发生错误是因为ansible正在假设基于密钥的ssh身份验证,但是您的流浪者正在创建VM是使用基于密码的身份验证。

有两种方法可以解决这个问题。

您可以将您的ansible剧本作为

运行
ansible-playbook playbook.yml --ask-pass

这将告诉ansible不要假设基于密钥的身份验证,而是使用基于密码的ssh身份验证并在执行前询问一个。