在使用pipenv安装时,ansible没有找到角色

时间:2017-09-20 11:04:53

标签: ansible virtualenv pipenv

我一直在研究测试ansible剧本的不同方法,并在Jeff Geerling上看到了这篇博文。

复制他的确切示例有效,但是,当我复制它但通过pipenv安装管理python(和ansible)时出现以下错误

ERROR! the role 'ansible-test' was not found in /Users/philip/Desktop/ansible-test/tests/roles:/Users/philip/ansible-test:/Users/philip/Desktop/ansible-test/tests

The error appears to have been in '/Users/philip/Desktop/ansible-test/tests/test.yml': line 4, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  roles:
    - ansible-test
      ^ here

test.yml的内容是

- hosts: localhost
  remote_user: root
  roles:
    - ansible-test

通过yamllint罚款。

ansible.cfg包含

[defaults]
roles_path = ../../ansible-test

我猜这与在Virtualenv中有关,但无法解释。

1 个答案:

答案 0 :(得分:1)

角色 s 路径是所有角色 s 的路径。

Ansible在roles_path中搜索具有角色名称的目录。如果角色名为ansible-test,则将角色名称放入roles_path是错误的。

以这种方式设置roles_path

[defaults]
roles_path = ../..

当您致电ansible-playbook时,请确保您位于正确的目录中。