Konfiguracja i skrypty programu Terraform
W tej lekcji przyjrzymy się konfiguracji i skryptom programu Terraform.
Dlaczego terraform?
Jako menedżer infrastruktury potrzebujesz narzędzia do aprowizowania infrastruktury platformy Azure i zarządzania nią. Chcesz również użyć infrastruktury jako kodu w plikach konfiguracji, które opisują topologię zasobów platformy Azure.
Narzędzie HashiCorp Terraform doskonale nadaje się do wdrażania infrastruktury u dostawców usług w chmurze. Zapewnia ona deweloperom spójne narzędzia do zarządzania każdą definicją infrastruktury.
Automatyzowanie zarządzania infrastrukturą
Korzystając z plików konfiguracji terraform opartych na szablonach, można definiować, aprowizować i konfigurować zasoby platformy Azure w powtarzalny i przewidywalny sposób. Ta automatyzacja oferuje kilka korzyści:
- Zmniejsza potencjał błędu ludzkiego podczas wdrażania infrastruktury i zarządzania nią.
- Wdraża ten sam szablon wielokrotnie w celu utworzenia identycznych środowisk programistycznych, testowych i produkcyjnych.
- Zmniejsza to koszt środowisk programistycznych i testowych, tworząc je na żądanie.
Omówienie zmian infrastruktury przed ich zastosowaniem
Ponieważ topologia zasobów staje się coraz bardziej złożona, zrozumienie znaczenia i wpływu zmian infrastruktury może być trudne.
Za pomocą narzędzia Terraform można zweryfikować i wyświetlić podgląd zmian infrastruktury przed ich zastosowaniem. Członkowie zespołu mogą efektywniej współpracować, rozumiejąc proponowane zmiany i ich wpływ na wczesnym etapie procesu programowania.
Pliki konfiguracji narzędzia Terraform
Pliki konfiguracji generują plan wykonania i co plan zrobi, aby osiągnąć żądany stan. Narzędzie Terraform może następnie skompilować opisaną infrastrukturę. W miarę zmiany konfiguracji program Terraform może określić, co się zmieniło, i utworzyć plany wykonywania przyrostowego.
Pliki konfiguracji programu Terraform używają własnego języka konfiguracji podobnego do kodu YAML, który został zaprojektowany w celu umożliwienia opisu infrastruktury.
Pliki konfiguracji są tworzone przy użyciu składni języka HCL (HashiCorp Configuration Language). Lista HCL jest deklaratywna, opisując zamierzony cel, a nie kroki osiągnięcia tego celu. Składnia listy HCL umożliwia określenie dostawcy usług w chmurze, takiego jak platforma Azure, oraz elementów tworzących infrastrukturę chmury.
Pliki konfiguracji są przechowywane jako pliki zwykłego tekstu z rozszerzeniem tf . Są to:
- main.tf: (wymagane) definiuje strukturę główną, wdrażając pełną infrastrukturę bezpośrednio lub za pomocą wywołań do modułów
- outputs.tf: identyfikuje każdą zwracaną wartość modułu Terraform
- variables.tf: definiuje zmienne w main.tf, niezależnie od tego, czy są one wymagane, czy nie
Moduły
Zasoby programu Terraform można zgrupować w module, który tworzy większą jednostkę konfiguracji. Te moduły to zestawy plików konfiguracji przechowywanych w jednym katalogu. Prosta konfiguracja składa się z jednego katalogu z co najmniej jednym plikiem tf .
Moduły oferują wiele korzyści. Na przykład moduły:
- Pomoc w organizowaniu projektu.
- Hermetyzowanie złożoności.
- Umożliwia ponowne użycie typowych zadań.
- Zapewnij spójność i upewnij się, że przestrzegasz dobrych rozwiązań.
Plik main.tf
Plik main.tf zawiera główny zestaw szczegółów konfiguracji modułu. Ten plik jest często nazywany planem programu Terraform. Plan narzędzia Terraform określa potrzebne zasoby infrastruktury. Możesz nazwać ten plik dowolną, ale zwykle nosi nazwę main.tf.
Przepływ pracy narzędzia Terraform
Program Terraform zaleca podstawowy przepływ pracy "inicjowanie, planowanie i stosowanie" na potrzeby automatyzacji. Ten przepływ pracy uruchamia wszystkie akcje ciągłej integracji/ciągłego wdrażania programu Terraform dla nowych i zaktualizowanych żądań ściągnięcia usługi Git.
Podstawowe akcje dla tego przepływu pracy to:
- Init: inicjowanie katalogu roboczego przy użyciu plików konfiguracji programu Terraform
- Plan: utwórz plan zmiany zasobów, aby był zgodny z bieżącą konfiguracją
- Zastosuj: zastosuj zmiany opisane w planie
Stan
Stan umożliwia programowi Terraform poznanie zasobów platformy Azure do dodawania, aktualizowania lub usuwania.
Narzędzie Terraform używa stanu do tworzenia planów i wprowadzania zmian w infrastrukturze. Przed dowolną operacją narzędzie Terraform wykonuje odświeżanie w celu zaktualizowania stanu przy użyciu rzeczywistej infrastruktury.
Stan jest domyślnie przechowywany w lokalnym pliku tekstowym o nazwie terraform.tfstate. Narzędzie Terraform zarządza tym plikiem przy użyciu akcji przepływu pracy zdefiniowanych w modułach.
Stan można również przechowywać zdalnie— podejście, które działa lepiej w środowisku zespołowym. Aby uzyskać więcej informacji na temat zdalnego zarządzania stanem, zobacz podsumowanie lekcji na końcu tego modułu.
Następne kroki
W następnej lekcji omówimy używanie narzędzia Terraform z usługą GitHub Actions lub Azure Pipelines w celu aprowizowania i wdrażania aplikacji.