Na stronie Sprawdzone metody sprawdzania poprawności: http://docs.ansible.com/ansible/playbooks_best_practices.html#top-level-playbooks-are-separated-by-role pokazuje przykład, w którym główny element witryny site.yml zawiera kilka innych podręczników najwyższego poziomu, webservers.yml i dbservers.yml. W tych książeczkach każdy zawiera wspólną rolę. Niektóre pliki inwentarza Mam wszystkie moje grupy uruchomione na jednym hoście. Kolejny plik inwentarzowy Mam hosta na grupę. W przypadku, gdy kiedykolwiek grupa jest na jednym hoście, jeśli uruchomię serwis site.yml, widzimy, że wspólną rolą jest gra dwa razy, jeden dla webservers.yml i jeden dla dbservers.yml.Sprawdzona metoda sprawdzania poprawności nie powtarza wspólnej roli.
Co to jest rozwiązanie, aby tego uniknąć? Domyślam się, że możesz wziąć wspólną rolę z webservers.yml i dbservers.yml, a zamiast tego w witrynie site.yml masz zadanie, które jest kierowane zarówno na wspólną rolę. Ale nie mogę indywidualnie udostępniać serwera WWW lub serwera baz danych ze wspólną.
Lubię to podejście i wydaje się mieć największy sens dla mnie. Jednak kiedy faktycznie próbuję to zaimplementować, to nie działa. Moja wspólna rola nadal działa wiele razy. Próbowałem jawnie ustawić allow_duplicates: no bez efektu. Wydaje się, że są inni ludzie z tym samym problemem? https://github.com/ansible/ansible/issues/5971 – user1087973