12

我已经在 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

我怎样才能使这项工作?

4

7 回答 7

21

对我来说,通过删除 ansible 文件(剧本、库存等)的“执行”权限解决了这个问题:

find . -type f -exec chmod -x {} \;
于 2014-06-10T10:35:36.873 回答
11

我有一个类似的问题:

$ ansible --version

安可 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

现在可以了!!!

于 2017-02-27T10:42:16.457 回答
5

你必须删除执行权ansible_hosts

chmod a-x ansible_hosts

如果这不起作用。用 sudo 试试

sudo chmod a-x ansible_hosts
于 2015-08-21T15:40:23.537 回答
2

执行权限用于动态清单脚本,例如rax.py. 这个特别是通过从 RackSpace 获取库存来建立库存。如果您手动维护库存,您的库存文件不应该是可执行的。

于 2014-09-17T14:44:53.770 回答
1

我遇到了这个问题,并通过使用shell而不是command.

于 2016-04-23T22:23:43.923 回答
0

我只是在学习ansible。据我所知,apt 模块似乎没有名为“pkg”的键。可能,您正在寻找的是“名称”[1]

我想,改变以下行

apt: pkg=curl update_cache=yes 

apt: name=curl update_cache=yes

应该解决问题。

参考: http ://docs.ansible.com/apt_module.html

于 2014-06-05T05:15:30.450 回答
0

这已通过 ansible 2.0 https://github.com/ansible/ansible/issues/10068修复

于 2016-05-02T10:01:40.243 回答