Pracuję nad kilkoma poradnikami Ansible, aby rozwinąć nową instancję serwera. Istnieje około 15 różnych podręczników, które muszę uruchomić w określonej kolejności, aby pomyślnie uruchomić serwer.
Moją początkową myślą było napisanie wykonującego się skryptu powłoki ansible-playbook playbook_name.yml
i skopiowanie go z jednego wpisu dla każdego podręcznika, który muszę uruchomić.
Czy istnieje mądrzejszy / lepszy sposób, aby to zrobić za pomocą głównego podręcznika, a jeśli tak, to jak by to wyglądało (przykłady są doceniane).
Mógłbym napisać jeden monolityczny poradnik, który to wszystko robi, ale niektóre gry uruchamiane są najpierw jako root, a później jako użytkownik sudo.
ansible
ansible-playbook
nulltek
źródło
źródło
become:
część na końcu każdego bloku. Może być jednak konieczne utworzenie nowej gry, aby przełączyć użytkownika połączenia z użytkownika root na użytkownika sudo.Odpowiedzi:
Zbuduj wiele podrozdziałów i agreguj je za pomocą instrukcji dołączania.
Jeśli twoje podręczniki muszą być uruchamiane w kolejności i jeśli wszystkie są obowiązkowe, zbuduj główny i dołącz pliki z zadaniami. Poradnik powinien zawsze być procesem zamkniętym.
źródło
- include : books/*.yml
include
to, że jest przestarzałe. docs.ansible.com/ansible/latest/playbooks_reuse.html Myślę, żeimport_playbook: foo
to właściwy sposób, ale nie jestem zbyt doświadczony.W przypadku nowszych wersji Ansilbe możesz budować wiele podrozdziałów i agregować je za pomocą instrukcji import_playbook:
źródło