2015-05-11 11 views

Odpowiedz

6

Bruce zauważył, że jest to zakodowane na stałe. Ale mam również problem z tym zachowaniem, ponieważ mój IDE wyświetla nazwę pliku w zakładce i miałem kiedyś zakładki o nazwie "main.yml".

Moja standardowa konfiguracja jest mieć dwa pliki:

  • main.yml
  • role-name .yml

W main.yml po prostu jest include zadanie do roli nazwa-roli.yml. Oprócz tego obsługuję tagi, ponieważ chcę, aby wszystkie moje role były oznaczone swoim imieniem.

--- 

- include: role-name.yml 
    tags: role-name 

... 
+0

Podejście podobne również tutaj - main.yml zawiera moje "Mogę faktycznie zobaczyć, nad czym pracuję, bazując tylko na pliku nazwanym" plikiem yaml. Biorąc pod uwagę, że żaden inny kod nie jest wymieniony w pliku main.yml innym niż trasa do pliku o lepszym nazwie, poza początkowym tworzeniem nie są one nigdy zmieniane, więc nigdy nie są mylące. – PhillipHolmes

+0

najlepsza opcja (bez łatania Ansible) Widziałem, to dziwne, że to jest względne do katalogu ról, a nie pliku main.yml. Czy masz jakieś wskazówki dotyczące robienia ./vars/main.yml mniej głupiego? – ThorSummoner

3

Niestety nie ma sposobu, aby to zrobić. Nazwa main.yml jest zakodowana na stałe w źródłowym źródle ansibli. (Jeśli naprawdę zależy, poszukaj funkcji _resolve_main w this file).

zadania Role zawsze będzie w pliku roles/<rolename>/tasks/main.yml, zmienne w roles/<rolename>/vars/main.yml, itd. Ponieważ droga, że ​​każdy plik mieszka zapewnia pełne szczegółów nazwy roli celu, nie ma potrzeby zmiany nazwy z main.yml. Po prostu skończyłoby się coś w rodzaju roles/<rolename>/tasks/<rolename>.yml, które jest zbędne.

Wszystko to jest udokumentowane w dokumencie Best Practices firmy Ansible.

+3

Dlaczego nie można skończyć ze ścieżkami jak 'ról//tasks.yml'? IMO, byłoby miło móc skorzystać z takiego uproszczenia. Czy są jakieś ukryte pułapki? –

2

Jako obejście można Symlink dogodnie nazwie rolename_tasks.yml do main.yml ...