Terraform i Makefile

Wielu inżynierów zapomina, że narzędzia, z których korzystają, można w prosty sposób łączyć. Ja w ten sposób w projektach łączę często Terraform i Makefile. Pozwala mi to zautomatyzować proces wykonywania czynności oraz uniknąć prostych błędów, takich jak choćby literówki czy odwoływanie się do nieistniejących plików. Pokażę Ci teraz jakie to banalnie proste!

Czym jest Makefile?

Makefile to nic innego jak plik reguł dla programu make. Sam program make znany jest developerom, szczególnie jęz`yków kompilowalnych, ale nie tylko. Jest to na tyle elastyczna formuła, że sprawdza się w wielu zastosowaniach. W uproszczeniu jego działanie sprowadza się do wykonania zaplanowanego scenariusza składającego się z sekwencji komend. W tym  procesie wykorzystywane są reguły, pomiędzy którymi programista tworzy sieć zależności. Jedna reguła może zależeć od jednej lub więcej innych reguł. Cały skrypt zaś może być dość dowolnie parametryzowany.

Plikiem definicji tak utworzonego scenariusza jest plik Makefile, który przetwarza program make. Tak, jego składnia może być dość skomplikowana i zagmatwana w przypadku większych projektów. Natomiast gdy łączymy ze sobą Terraform i Makefile będziemy zazwyczaj operowali na bardzo prostych scenariuszach.

Jak połączyć Terraform i Makefile?

Gdy łączymy ze sobą Terraform i Makefile to zazwyczaj chcemy zautomatyzować przeprowadzenie takich operacji jak init, plan, apply oraz destroy. Wywołując te czynności z linii poleceń często musimy pamiętać o podaniu właściwych dodatkowych parametrów. Za pomocą narzędzie make czynności te sobie ułatwimy. 

Poniżej przykładowy plik Makefile, którego używam w swoich projektach

all: plan apply

plan:
	terraform get -update
	terraform plan -var-file terraform.tfvars -out terraform.tfplan

destroy:
	terraform plan -destroy -var-file terraform.tfvars -out terraform.tfplan
	terraform apply terraform.tfplan

apply:
	terraform apply -var-file terraform.tfvars

clean:
	rm -f terraform.tfplan
	rm -f terraform.tfstate
	rm -fR .terraform/

Dzięki tak przygotowanemu skryptowi mogę teraz operować poleceniami make plan oraz make apply aby zbudować opisane w skryptach Terraform środowisko. Zamiast tych dwóch poleceń mogę też wydać polecenie make all, które wykona obie czynności. Usunięcie środowiska uzyskuję przez wydanie polecenia make destroy, zaś za pomocą make clean czyszczę wszystkie pliki stanu.

E-BOOK

Zaczynasz swój pierwszy projekt związany z automatyzacją?

Ten e-book jest dla Ciebie! Zawiera sprawdzone podejście, które realizowałem w wielu projektach. Sprawdź co możesz zrobić, by odnieść sukces!


Subscribe
Powiadom o
guest

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

0 komentarzy
Inline Feedbacks
View all comments

ZdradziĆ Ci sekretY udanego projektu automatyzacji?

(link otwiera się w nowym oknie)