IaC z Terraform i GitHub Actions
Poznają Państwo integrację Terraform z workflows GitHub Actions w celu dostarczania i zarządzania infrastrukturą.
IaC z Terraform i GitHub Actions to bezpłatna lekcja DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Infrastruktura jako kod (IaC)
Witamy! W tej lekcji zagłębimy się w temat infrastruktury jako kodu (IaC). Takie podejście oznacza zarządzanie infrastrukturą i jej aprowizowanie, na przykład serwerami, bazami danych i sieciami, za pomocą kodu zamiast ręcznych czynności.
Można myśleć o tym jak o pisaniu oprogramowania dla infrastruktury. Zapewnia to wiele korzyści, między innymi spójność, powtarzalność i kontrolę wersji całej konfiguracji.
Poznaj Terraform do IaC
Jednym z najpopularniejszych narzędzi IaC jest Terraform — narzędzie open source opracowane przez HashiCorp.
Terraform pozwala definiować zasoby infrastruktury w czytelnych dla człowieka plikach konfiguracyjnych. Następnie używa tych plików do aprowizowania zasobów i zarządzania nimi u różnych dostawców chmurowych, takich jak AWS, Azure i GCP, oraz w innych usługach.
Składnia HCL Terraform
Terraform używa własnego deklaratywnego języka o nazwie HashiCorp Configuration Language (HCL). HCL został zaprojektowany tak, aby był łatwy do odczytywania i zapisywania, dzięki czemu definicje infrastruktury są przejrzyste.
Oto niewielki przykład HCL definiujący AWS VPC (Virtual Private Cloud):
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "my-vpc"
}
}Podstawowy workflow Terraform
Terraform korzysta ze spójnego, trzyetapowego workflow zarządzania infrastrukturą:
terraform init: Inicjalizuje katalog roboczy i pobiera niezbędne wtyczki dostawców.terraform plan: Generuje plan wykonania, pokazując zmiany, które Terraform wprowadzi w infrastrukturze.terraform apply: Wykonuje zmiany opisane w planie, aprowizując zasoby lub modyfikując je.
Automatyzacja za pomocą GitHub Actions
Integracja Terraform z GitHub Actions znacznie wzmacnia strategię IaC. Pozwala zautomatyzować kluczowe kroki potoku wdrażania infrastruktury.
Za pomocą GitHub Actions można:
- Automatycznie uruchamiać
terraform plandla każdego pull requesta. - Zapewniać przegląd i zatwierdzanie zmian w infrastrukturze.
- Automatyzować
terraform applyna potrzeby kontrolowanych wdrożeń.
Plik workflow Terraform
Workflow GitHub Actions dla Terraform definiuje się w pliku YAML znajdującym się w katalogu .github/workflows/ repozytorium. Ten plik określa, kiedy workflow jest uruchamiany i jakie kroki wykonuje.
Oto podstawowa struktura workflow, który może planować zmiany:
name: 'Terraform CI'
on:
pull_request:
branches:
- main
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
steps:
# Your workflow steps will go here
Konfiguracja Terraform i krok init
Przed wykonaniem poleceń Terraform workflow musi pobrać kod, skonfigurować Terraform CLI i zainicjalizować katalog roboczy.
Akcja hashicorp/setup-terraform ułatwia wykonanie tych czynności:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.x
- name: Terraform Init
run: terraform initKrok terraform plan
Polecenie terraform plan jest kluczowym krokiem każdego workflow IaC. Wykonuje próbne uruchomienie (dry run), aby określić działania niezbędne do osiągnięcia stanu docelowego zdefiniowanego w plikach konfiguracyjnych.
Ten krok pozwala przejrzeć proponowane zmiany, zanim cokolwiek zostanie faktycznie zmodyfikowane w środowisku chmurowym.
- name: Terraform Plan
run: terraform plan
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}Szybkie sprawdzenie: Terraform Plan
Zrozumienie podstawowych poleceń jest kluczowe do skutecznego używania Terraform w automatycznych workflow.
Kwestie związane z terraform apply
Polecenie terraform apply to moment, w którym dzieje się właściwa magia — wprowadza ono rzeczywiste zmiany w infrastrukturze.
W automatycznych potokach często stosuje się zasadę uruchamiania terraform apply dopiero po ręcznym przejrzeniu danych wyjściowych plan albo dopiero przy scalaniu do określonych gałęzi, na przykład main lub production. Zapobiega to przypadkowym lub niezatwierdzonym zmianom w infrastrukturze.
Podsumowanie IaC z Terraform i Actions
W tej lekcji poznali Państwo sposób, w jaki infrastruktura jako kod (IaC) pomaga zarządzać infrastrukturą za pomocą kodu. Skupiliśmy się na narzędziu Terraform jako wiodącym rozwiązaniu IaC, poznając jego składnię HCL oraz podstawowy workflow obejmujący init, plan, apply.
Poznali Państwo również sposób, w jaki GitHub Actions może automatyzować kroki terraform init i terraform plan, dzięki czemu wdrożenia infrastruktury są bezpieczniejsze, bardziej spójne i w pełni zintegrowane z potokami CI/CD.
Często zadawane pytania
Czy lekcja „IaC z Terraform i GitHub Actions” jest bezpłatna?
Tak — pełny tekst „IaC z Terraform i GitHub Actions” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „IaC z Terraform i GitHub Actions”?
Poznają Państwo integrację Terraform z workflows GitHub Actions w celu dostarczania i zarządzania infrastrukturą. Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 „IaC z Terraform i GitHub Actions”?
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 DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp 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
- IaC z Terraform i GitHub Actions
- Zarządzanie zasobami chmurowymi
- Automatyzacja aktualizacji infrastruktury
- Zarządzanie stanem Terraform i zdalnymi backendami