2017-09-20 2 views
-1

Ich habe verschiedene Möglichkeiten zum Testen ansible Playbooks und stieß auf diesen Blog-Beitrag von Jeff Geerling.ansible nicht finden Rollen bei der Installation mit Pipenv

Replizieren sein genaues Beispiel funktioniert jedoch, wenn ich es zu replizieren, aber die Verwaltung von Python (und ansible) über eine pipenv installieren bekomme ich folgende Fehler

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 

Der Inhalt test.yml ist

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

, die yamllint in Ordnung passiert.

ansible.cfg enthält

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

Ich vermute, es ist etwas, mit in einem virtualenv sein zu tun, aber kann es nicht erklären.

Antwort

1

Die Rolle s Pfad ist der Pfad für alle Rollen s.

Ansible sucht nach einem Verzeichnis mit dem Namen der Rolle in roles_path. Wenn die Rolle ansible-test heißt, ist es ein Fehler, den Namen der Rolle in roles_path zu setzen.

Set roles_path auf diese Weise:

[defaults] 
roles_path = ../.. 

Und dafür sorgen, dass Sie im richtigen Verzeichnis sind, wenn Sie ansible-playbook nennen.

+0

Perfekt. Danke für die Erklärung! –

Verwandte Themen