运行ansible-playbook时出错

时间:2013-08-22 16:19:57

标签: ubuntu ansible

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

我该如何做到这一点?

7 个答案:

答案 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

应该解决问题。

价: http://docs.ansible.com/apt_module.html

答案 6 :(得分:0)

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

修复