Architektura projektu: role i inventory
Rozplanowanie kompletnego repozytorium wdrożeniowego.
Architektura projektu: role i inventory to bezpłatna lekcja Ansible Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ansible Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Cel projektu końcowego
Czas wdrożyć rzeczywistą aplikację wielowarstwową za pomocą wdrożenia kroczącego bez przestojów. Pierwszy krok: zaprojektowanie struktury projektu. 🚀
Myśl w kategoriach ról
Należy podzielić system na role: po jednej dla każdego obszaru, na przykład common, web, app, db i loadbalancer. Każda z nich jest niezależnie wielokrotnego użytku i można ją osobno testować.
Struktura najwyższego poziomu
Przejrzyste repozytorium przechowuje w katalogu głównym inventory, group_vars, roles oraz główny playbook site.yml, dzięki czemu każdy może szybko znaleźć potrzebne elementy.
deploy/
site.yml
inventory/
group_vars/
host_vars/
roles/site.yml spina całość
Główny playbook site.yml importuje plays poszczególnych warstw we właściwej kolejności. To pojedyncze polecenie wdraża cały stos.
- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.ymlMapowanie warstw na grupy
Państwa inventory definiuje osobną grupę dla każdej warstwy: lb, db, app i web. Każdy play wskazuje dokładnie te hosty, za które odpowiada.
[lb]
lb1
[web]
web1
web2
[app]
app1
app2
[db]
db1group_vars dla każdej warstwy
Ustawienia warstw należy przechowywać w group_vars: porty web, wersję app i dane uwierzytelniające db. Hosty dziedziczą je automatycznie, bez kopiowania.
group_vars/web.yml:
nginx_port: 80
upstream: app:8080host_vars dla wyjątków
Gdy jeden host różni się od pozostałych, należy umieścić nadpisania w host_vars. Na przykład główny db może zawierać ustawienia replikacji, których nie mają pozostałe hosty.
host_vars/db1.yml:
postgresql_role: primaryPrzypinanie wersji aplikacji
Wersję wydania należy przechowywać jako zmienną, a nie zakodowany na stałe ciąg znaków. Jeden punkt zmiany pozwala w kilka sekund przejść do nowszej wersji lub wrócić do poprzedniej.
group_vars/all.yml:
app_version: "2.4.1"Rozdzielanie środowisk
Należy utrzymywać osobne katalogi inventory dla każdego środowiska, aby staging i produkcja nigdy nie współdzieliły hostów. Te same role, inne cele.
inventory/
staging/hosts
production/hostsBlokowanie zależności
Zewnętrzne role Galaxy należy wymienić w requirements.yml, aby każdy członek zespołu i każde uruchomienie CI instalowało dokładnie ten sam kod automatyzacji.
roles:
- name: geerlingguy.nginx
version: 3.1.4Dobrze zaprojektowana architektura się opłaca
Przemyślany układ zmienia trudne wdrożenie w kilka przewidywalnych poleceń. Struktura przygotowana teraz oszczędzi późniejszego gaszenia pożarów. 🧱
Szybkie sprawdzenie
Umieśćmy prawidłowo jeden element konfiguracji.
Podsumowanie
Zaprojektowano repozytorium: role dla poszczególnych warstw, grupy inventory, group_vars i host_vars oraz site.yml uruchamiający całe wdrożenie. ✅
Często zadawane pytania
Czy lekcja „Architektura projektu: role i inventory” jest bezpłatna?
Tak — pełny tekst „Architektura projektu: role i inventory” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ansible Academy, przejdź na CoddyKit PRO. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Architektura projektu: role i inventory”?
Rozplanowanie kompletnego repozytorium wdrożeniowego. Ćwiczysz Ansible Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ansible Academy?
Nie wymagamy żadnego doświadczenia. Ansible Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Architektura projektu: role i inventory”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ansible Academy?
Tak. Każda lekcja Ansible Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Architektura projektu: role i inventory
- Udostępnianie, wzmacnianie i inicjalizacja hostów
- Wdrożenie kroczące za load balancerem
- Testy smoke, wycofywanie i powiadomienia