我正在尝试在我的Mac上使用Vagrant和Ansible创建和配置Windows 7虚拟机。当我在Vagrantfile中不调用Ansible时,我能够运行"vagrant up"命令。
我正在使用以下playbook.yml文件:
---
- hosts: all
tasks:
- name: run win ping
win_ping:
当我在Vagrantfile中添加ansible代码时,出现以下错误。
GATHERING FACTS ***************************************************************
failed: [default] => {"failed": true, "parsed": false}
/bin/sh: /usr/bin/python: No such file or directory
在我看来,这个错误意味着它无法找到Python,因为它正在寻找Python,就好像它是一个Linux机器一样。
另外,我已经运行了
ansible windows -m win_ping
其中windows是由Vagrant启动的虚拟机的IP地址,所以我认为问题不是出在Ansible上,而是出在Vagrant如何调用Ansible上。
有人尝试过在Windows虚拟机上使用Vagrant + Ansible吗?是否有什么明显的问题我忽略了(也许是要传递给Ansible的选项)?
我正在使用Vagrant版本1.7.2和Ansible版本1.8.3。
which ansible
和which python
命令来检查它们的位置(尤其是后者)。此外,你能否在 vagrant 上下文之外运行ansible-playbook windows -m win_ping
命令并查看是否有效?看起来 vagrant 内部会调用ansible-playbook
命令:https://github.com/mitchellh/vagrant/blob/master/plugins/provisioners/ansible/provisioner.rb#L62 - Torben Knerrvagrant up --debug
命令是否能够提供更多的信息? - Torben Knerr