Domyślnie, funkcja Ansible szuka zadań dla roli w pliku main.yml. Mam zbyt wiele plików main.yml i chciałbym zmienić nazwę na rolename.yml lub coś, co jest bardziej unikalne. Jak mogę zmienić domyślne zachowanie Ansible, aby używać pliku rolename.yml zamiast tasks/main.yml?Zmień nazwę ról/nazwa_grupy/zadań/main.yml na rolename.yml w Ansible
Odpowiedz
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
...
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.
Dlaczego nie można skończyć ze ścieżkami jak 'ról/
Jako obejście można Symlink dogodnie nazwie rolename_tasks.yml
do main.yml
...
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
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