新的ansible。
我使用ppa安装在ubuntu vm 14.04.1版本中安装了ansible
user@ubuntu:~$ ansible --version
ansible 1.7
仅使用hosts
localhost
文件
user@ubuntu:~$ cat hosts
localhost
当我尝试运行这个简单的命令时
user@ubuntu:~$ ansible -i hosts all -m ping --ask-pass
SSH password:
ERROR: The file hosts is marked as executable, but failed to execute correctly. If this is not supposed to be an executable script, correct this with `chmod -x hosts`.
UPDATE 当我按照指令删除hosts
文件的执行模式时,它可以正常工作。
但是这条消息对我来说仍然很奇怪,为什么需要执行hosts
文件。
这有什么问题?
答案 0 :(得分:9)
可以使用-i
选项将几种类型的文件传递给ansible。
在你的情况下,Ansible认为因为你在文件 hosts 上设置了可执行位,所以它是一个动态库存可执行文件。
在需要发现要使用的主机的IP地址的情况下,使用动态库存文件(2)是很常见的。例如,您需要查询某种目录服务或API,以获取即时分组的主机列表。
答案 1 :(得分:0)
对于这个讨厌的错误消息:
错误:文件库存标记为可执行,但未通过 正确执行。如果这不应该是可执行脚本, 使用
chmod -x inventory
更正此内容。
我找到了解决方案here
在Vagrantfile中,我添加了这个:
srv.vm.synced_folder '.', '/vagrant', :mount_options => ["fmode=666"]