0Pricing
Ansible Academy · Lekcja

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.yml

Mapowanie 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]
db1

group_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:8080

host_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: primary

Przypinanie 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/hosts

Blokowanie 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.4

Dobrze 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

  1. Architektura projektu: role i inventory
  2. Udostępnianie, wzmacnianie i inicjalizacja hostów
  3. Wdrożenie kroczące za load balancerem
  4. Testy smoke, wycofywanie i powiadomienia
← Powrót do Ansible Academy