【问题标题】:Error when running ansible-playbook运行 ansible-playbook 时出错
【发布时间】:2013-08-22 16:19:56
【问题描述】:

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

我怎样才能做到这一点?

【问题讨论】:

    标签: ubuntu ansible


    【解决方案1】:

    对我来说,问题是通过删除 ansible 文件(剧本、清单等)的“执行”权限来解决的:

    find . -type f -exec chmod -x {} \;
    

    【讨论】:

    • 这对我有用。为什么不能对这些文件拥有执行权限?
    • 好问题。不确定
    • 执行权限告诉 ansible 您正在尝试希望库存文件是动态的:stackoverflow.com/questions/26859360/…
    • 为我工作,运行命令后开始出现问题:sudo vagrant up --provision
    【解决方案2】:

    我也有类似的问题:

    $ 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
    

    现在可以了!!!

    【讨论】:

      【解决方案3】:

      你必须删除ansible_hosts的执行权限

      chmod a-x ansible_hosts
      

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

      sudo chmod a-x ansible_hosts
      

      【讨论】:

      • 另外请记住,在 vagrant 中,如果这些文件安装在 Windows (config.vm.synced_folder) 中,则 chmod 不起作用。我结束了整个文件夹的复制,以便我可以在清单文件上运行 chmod。
      • 对,如果你是在Windows系统上运行vagrant,那么你将无法直接在/vagrant共享文件夹下运行chmod。在这种情况下,你需要复制/移动文件远离 /vagrant 目录。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我遇到了这个问题并通过使用shell 而不是command 解决了它。

        【讨论】:

          【解决方案6】:

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

          我认为,更改以下行

          apt: pkg=curl update_cache=yes 
          

          与

          apt: name=curl update_cache=yes
          

          应该能解决问题。

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2018-02-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-06-04
              • 1970-01-01
              • 2013-12-09
              相关资源
              最近更新 更多