【问题标题】:Ansible Roles - not seeing my tasks fileAnsible 角色 - 看不到我的任务文件
【发布时间】:2017-08-03 19:34:43
【问题描述】:

每当我在我的控制机器上运行我的剧本时,我只会看到这个:

PLAY RECAP *********************************************************************

所以我感觉 ansible 没有找到我的任务文件。这是我的目录结构(它是 Eclipse 中的一个 git 项目):

ansible
    ansible
        dockerhosts.yml
        hosts
        roles
            dockerhost
                tasks
                    main.yml

我的 dockerhosts.yml:

---
- hosts: integration
  roles: [dockerhost]
...

我的主机文件:

[integration]
192.168.1.8
192.168.1.9

还有我的 main.yml 文件:

- name: Install Docker CE from added Docker YUM repo
  remote_user: installer
  become: true
  become_user: root
  become_method: sudo
  command: yum -y install docker-ce

我在运行时没有明显的语法错误,但由于某种原因,它似乎找不到我的 main.yml 文件。我试图查看用户 ansible 在什么情况下运行,以防这是文件权限问题,但我没有找到任何东西。

我正在从 /ansible/ansible 目录运行 ansible-playbook dockerhosts.yml

我做错了什么?

【问题讨论】:

  • 我完全按照您在问题中指定的方式设置了一个 ansible/ 目录,并得到了正确的响应,所以它可能与您的本地配置有关?
  • 这让我想知道文件权限。我通过 RHEL 7 上的 YUM 包以 root 身份安装了 Ansible。我认为它应该没有任何问题。你对ansible/ 目录有什么权限?

标签: ansible ansible-inventory


【解决方案1】:

我有一个 hosts 文件,但它不在 /etc/ansible/hosts 默认位置。正如我在问题中所展示的,它实际上与 dockerhosts.yml 处于同一级别,因为这是一个 git 项目。

我使用了 -vvvv 标志,但这并没有告诉我太多。在运行ansible-playbook -h 之后,我尝试了-i 标志并运行ansible-playbook dockerhosts.yml -i hosts,这实际上做了一些事情。

它给了我 SSH 连接错误,但它不仅仅是我之前得到的空白 PLAY RECAP,这对我来说意味着它现在实际上正在运行任务。

【讨论】:

  • 是的,OP中的空白输出显然是因为缺少-i hosts,但在这种情况下你应该看到错误Host file not found: /etc/ansible/hosts
  • 当我执行 yum install ansible 时,在我的控制机器上安装了一个默认的 /etc/ansible/hosts 文件,所以我看到了该消息。
猜你喜欢
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2017-05-06
  • 2020-10-05
  • 2015-05-29
相关资源
最近更新 更多