ansible - 简单的ansible命令满足 "ERROR: The file hosts is marked as executable"

标签 ansible

ansible 的新手。

我使用ppa安装在ubuntu vm 14.04.1版本中安装了ansible

user@ubuntu:~$ ansible --version
ansible 1.7

并创建了 hosts文件与 localhost只要
user@ubuntu:~$ cat hosts
localhost

当我尝试运行这个简单的命令时
user@ubuntu:~$ ansible -i hosts all -m ping --ask-pass
SSH password:
ERROR: The file hosts is marked as executable, but failed to execute correctly. If this is not supposed to be an executable script, correct this with `chmod -x hosts`.

更新 当我按照说明删除 hosts 的执行模式时文件,它的工作原理。

但是这个消息对我来说还是很奇怪,为什么需要执行 hosts文件。

这有什么问题?

最佳答案

有几种类型的文件可以通过 -i 传递给 ansible。选项。

  • 库存文件 - a single ini formated inventory file
  • 返回 dynamic inventory 的脚本作为 json
  • 包含 (1) 和 (2) 组合的目录

  • 在您的情况下,Ansible 假设因为您在文件主机上设置了可执行位,所以它是动态 list 可执行文件。

    在需要发现要处理的主机的 IP 地址的情况下,使用动态 list 文件 (2) 是很常见的。一个例子是您需要查询某种目录服务或 API 以获取动态分组的主机列表。

    关于ansible - 简单的ansible命令满足 "ERROR: The file hosts is marked as executable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25458343/

    相关文章:

    bash - 如何使用 Ansible 创建新分区

    ansible - 如何在ansible上用OR很好地分割多行长条件?

    redis - 使用 Ansible 和 Docker 部署/运行 Redis 服务

    ansible - 映射嵌套结构的属性

    ansible - 如何使用 ansible 的剧本设置默认路径?

    amazon-web-services - Ansible - 包含来自远程主机的 vars 文件

    Ansible 查找插件 "password"未将密码保存在文件中

    docker - ansible docker_compose 网络

    yaml - 使用 ansible 打印 YAML 文件中缩进的变量值

    ansible 获取变量的 rpm 版本