我在Ubuntu Precise 64上安装了Ansible 1.2.3。
正在运行ansible-playbook -i ansible_hosts playbook.yml
给我这个错误:
ERROR: problem running ansible_hosts --list ([Errno 8] Exec format error)
以下是ansible_hosts
的内容:
[development]
localhost ansible_connection=local
和playbook.yml
:
---
- hosts: development
sudo: yes
tasks:
- name: install curl
apt: pkg=curl update_cache=yes
我该如何做到这一点?
答案 0 :(得分:20)
对我来说,通过删除ansible文件(playbook,库存等)的“执行”权限来解决问题:
find . -type f -exec chmod -x {} \;
答案 1 :(得分:10)
我有类似的问题:
$ ansible --version
ansible 1.5.4
$ ansible-playbook -i hosts main.yml
错误:运行问题/ mnt / d / Works / ansible-zipkin / hosts --list([Errno 8] Exec格式错误)
我对Debian / Ubuntu的步骤:
$ sudo apt-get purge ansible
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
$ ansible --version
ansible 2.2.1.0
$ ansible-playbook -i hosts main.yml
现在它有效!!!
答案 2 :(得分:5)
您必须删除ansible_hosts
chmod a-x ansible_hosts
如果这不起作用。尝试使用sudo
sudo chmod a-x ansible_hosts
答案 3 :(得分:2)
执行权限用于动态库存脚本,例如rax.py
。
这个特别是通过从RackSpace获取库存来构建库存。
如果您手动维护库存,则库存文件不应该是可执行的。
答案 4 :(得分:1)
我遇到了这个并使用shell
代替command
解决了这个问题。
答案 5 :(得分:0)
我只是在学习ansible。据我所知,似乎apt模块没有名为'pkg'的密钥。可能你正在寻找的是'名字'[1]
我认为,改变以下行
apt: pkg=curl update_cache=yes
带
apt: name=curl update_cache=yes
应该解决问题。
答案 6 :(得分:0)
这已通过ansible 2.0 https://github.com/ansible/ansible/issues/10068
修复