Pierwsze kroki z Terraform

Od początku roku przygotowałem kilka labów typu PoC (Proof of Concept), webinariów oraz prezentacji, w ramach których używałem rozwiązań w chmurze Azure. Dema i testy mają jedną wspólną cechę – wykonuje się je z modyfikacjami wielokrotnie. W takich sytuacjach staram się korzystać ze zautomatyzowanych narzędzi do budowy infrastruktury. Do takich należy choćby Terraform. Zanim jednak pokażę Ci fragmenty konfiguracji budujących środowisko do wspomnianych projektów, zobacz, w jaki sposób Terraform zainstalować i uruchomić.

Czym jest Terraform?

Terraform to narzędzie stworzone przez firmę HashiCorp pozwalające na zarządzanie infrastrukturą IT w modelu Infrastructure as a Code (IaaC). Jest to podejście, w którym budowa infrastruktury odbywa się poprzez oprogramowanie, a nie ręczną konfigurację. Celem jest stworzenie spójnego i przewidywalnego środowiska na podstawie wprowadzonych parametrów. Opis tworzonego środowiska zdefiniowany jest w kodzie, i najczęściej przechowany w systemach kontroli wersji, na przykład repozytoriach Gita. 

Działanie Terrraforma opiera się na deklaratywnym modelu zarządzania. Jako administratorzy podajemy jaki stan chcemy osiągnąć i to od oprogramowania zależy, w jaki sposób cel zostanie osiągnięty. Nie musimy zatem martwić się jakie kolejne kroki musimy wykonać, aby osiągnąć zdefiniowany stan. 

Terraform

Instalacja Terraforma

W przeciwieństwie do wielu innych narzędzi do automatyzacji Terraform nie jest dostępny w postaci pakietów binarnych w dystrybucji Linuksa. Aby go zainstalować, wchodzimy na stronę terraform.io i pobramy binarny plik wykonywalny przygotowany dla naszego systemu operacyjnego. W przypadku takich dystrybucji jak FreeBSD i Linux zwracajmy uwagę, by wybrać odpowiednią platformę sprzętową – dostępne są wersje zarówno dla procesorów o architekturze i386, amd64, jak i arm. Pobrany plik wykonywalny umieszczamy w folderze, który znajduje się w ścieżce wpisanej w systemowej zmiennej PATH.

Terraform uruchamiamy z linii poleceń. Jeżeli używamy systemu Linux i powłoki bash lub zsh warto aktywować funkcję automatycznego uzupełniania nazw parametrów. Wystarczy, że wydamy polecenie terraform -install-autocomplete, a następnie zrestartujemy wiersz poleceń.

Projekt w Terraform

W skład projektu Terraform może wchodzić jeden lub więcej plików, w których zdefiniowane są zarówno zmienne środowiskowe, jak i definicje zasobów, czyli konfiguracji, która ma zostać stworzona. Pliki te mają rozszerzenie .tf. Działania opisane w nich mogą być wykonywane zarówno lokalnie, jak i na zdalnych systemach. Ich wykonywanie odbywa się za pomocą wtyczek, które pobierane są z serwerów Terraforma po wydaniu polecenia terraform init w głównym katalogu projektu. Aplikacja pobiera jedynie wtyczki, które są niezbędne do wykonania projektu.

Aby osiągnąć stan opisany w projekcie, musimy wydać najpierw polecenie terraform plan. Terraform dokonuje wtedy sprawdzenia, czy plik konfiguracyjny jest poprawny, a zaplanowane działania mogą być wdrożone i nie stoją w konflikcie do aktualnego stanu systemu. Takie sprawdzenie określa się jako dry run. Po poprawnej weryfikacji zaaplikujemy zmianę poleceniem terraform apply.

Terraform działa w sposób stanowy. Każdorazowa modyfikacja infrastruktury zapisywana jest do pliku stanu o nazwie terraform.tfstate. Pod żadnym pozorem nie powinniśmy tego pliku ręcznie edytować, a każda osoba czy system modyfikujący infrastrukturę za pomocą Terraforma musi dla naszego projektu mieć aktualną wersję pliku ze stanem zanim przystąpi do modyfikacji infroastruktury.

Stworzoną infrastrukturę w prosty sposób usuwamy wydając polecenie terraform destroy

W kolejnych artykułach pokażę Ci fragmenty kilku konfiguracji, które w ostatnim czasie wdrażałem.

Stawiasz już swoje pierwsze kroki w Terraform? Napisz do mnie jakie tematy dotyczące zarządzania infrastrukturą za pomocą tego narzędzia są dla Ciebie ciekawe i interesujące. Postaram się napisać o nich w kolejnych artykułach.


Subscribe
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

2 komentarzy
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
patryk
patryk
19/10/2020 20:02

Były kolejne artykuły o terraform? bo coś nie mogę znaleźć

ZdradziĆ Ci sekretY udanego projektu automatyzacji?

(link otwiera się w nowym oknie)