我已经在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
我怎样才能做到这一点?
对我来说,这个问题是通过删除可解析文件(剧本、清单等)的"执行"权限来解决的:
find . -type f -exec chmod -x {} ;
我有一个类似的问题:
$ ansible --version
ansible 1.5.4
$ ansible-playbook -i hosts main.yml
错误:运行/mnt/d/Works/ansible zipkin/hosts--list时出现问题([Erno 8]Exec格式错误)
我的Debian/Ubuuntu:步骤
$ 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
现在它工作了!!!
您必须删除ansible_hosts
的执行权限
chmod a-x ansible_hosts
如果这不起作用。用sudo 试试
sudo chmod a-x ansible_hosts
执行权限用于动态清单脚本,例如rax.py
。这一个特别通过从RackSpace获取库存来构建库存。如果您手动维护库存,则库存文件不应是可执行的。
我遇到了这个问题,并使用shell
而不是command
解决了它。
我只是在学习ansible。据我所知,apt模块似乎没有名为"pkg"的密钥。可能,您要查找的是"名称"[1]
我想,改变
apt: pkg=curl update_cache=yes
带有
apt: name=curl update_cache=yes
应该解决问题。
参考编号:http://docs.ansible.com/apt_module.html
ansible 2.0修复了此问题https://github.com/ansible/ansible/issues/10068