28 pytań i odpowiedzi podczas wywiadu Terraform w czasie rzeczywistym

Oto 28 pytań i odpowiedzi podczas wywiadu Terraform w czasie rzeczywistym z listą i wyjaśnieniem ważnych poleceń często zadawanych podczas wywiadów.

Wzrost wykorzystania technologii chmury otworzył wiele możliwości w świecie DevOps. W przyszłości technologie chmurowe będą częstym tematem pytań do rozmów kwalifikacyjnych, a podstawowa wiedza na temat chmury i infrastruktury jako kodu, narzędzia IAC będą koniecznością dla ról DevOps.

Spis treści:

Co to jest Terraform?

Terraforma to jedno z najpopularniejszych narzędzi IAC, z którego korzysta każdy inżynier chmury. Pozwala nam zdefiniować zarówno zasoby w chmurze, jak i zasoby lokalne w plikach konfiguracyjnych czytelnych dla człowieka, a tym samym programowo udostępniać te zasoby. Najbardziej godną uwagi cechą Terraform jest to, że w przeciwieństwie do większości dostępnych narzędzi IAC, nie ogranicza się do jednego dostawcy chmury. Możesz używać Terraform do uruchamiania aplikacji na wielu platformach chmurowych jednocześnie.

Jeśli zastanawiasz się, jakie technologie obsługuje terraform, oto mała lista:

Aby kontynuować karierę jako inżynierowie DevOps, architekci chmury, programiści lub administratorzy, będziesz musiał zmierzyć się z pytaniami do rozmowy kwalifikacyjnej Terraform. Przygotowaliśmy listę najważniejszych pytań do rozmowy kwalifikacyjnej na temat Terraform, które powinny pomóc Ci poszerzyć swoją wiedzę na temat Terraform.

Ogólne pytania i odpowiedzi na wywiad dotyczący Terraform

#1. Co rozumiesz przez Terraform?

Terraform to narzędzie IAC o otwartym kodzie źródłowym stworzone przez HashiCorp. Służy do tworzenia, aktualizowania, usuwania i wersjonowania infrastruktury na wielu platformach chmurowych.

#2. Jakie są powody, aby wybrać Terraform dla DevOps?

Korzystanie z Terraform do udostępniania infrastruktury nie pozostawia miejsca na błędy ludzkie, co poprawia jakość, spójność i wydajność infrastruktury chmurowej i lokalnej. Terraform używa języka HCL, który jest dość podobny do JSON i łatwy do nauczenia się i używania. W przeciwieństwie do innych narzędzi IAC oferowanych przez dostawców chmury, takich jak Cloudformation for AWS, możemy używać Terraform z wieloma platformami chmurowymi jednocześnie. Pozwala to uniknąć konieczności uczenia się wielu narzędzi IAC i poprawia zakres współpracy.

#3. Jak działa Terraform?

Terraform używa wtyczek zwanych dostawcami Terraform do interakcji z interfejsami API na platformach w chmurze i udostępniania naszych zasobów. Dla użytkownika końcowego przepływ pracy w terraformie składa się z trzech kroków.

Napisz: Utwórz infrastrukturę jako kod.

Plan: podgląd zmian, które Terraform wprowadzi przed złożeniem wniosku.

Zastosuj: udostępnij infrastrukturę i zastosuj zmiany.

#4. Co rozumiesz przez chmurę Terraform?

Terraform Cloud to zdalne środowisko zoptymalizowane pod kątem przepływu pracy Terraform. Zapewnia funkcje, takie jak obszary robocze i blokowanie stanu, które umożliwiają współpracę osób w dużych zespołach.

#5. Co rozumiesz przez State w Terraform?

Jako narzędzie IAC, terraform powinien znać aktualny stan konfiguracji i infrastruktury, którymi zarządza. Terraform przechowuje te informacje w pliku zwanym plikiem stanu.

#6. Jakie są zalety Terraform State?

Stan Terraform umożliwia Terraform mapowanie rzeczywistych zasobów do konfiguracji, śledzenie metadanych i poprawę wydajności podczas planowania zmian w złożonych infrastrukturach. Jest to kluczowy element Terraformu.

7. Co rozumiesz przez Terraform Backend?

Backend Terraform to platforma, na której przechowywane są migawki stanu Terraform. Domyślnie Terraform używa zaplecza o nazwie lokalny do przechowywania stanu jako pliku lokalnego na dysku. Wszystkie inne obsługiwane backendy są pewnego rodzaju usługą zdalnego przechowywania.

#8. Kim jest dostawca w Terraform?

Dostawcy w Terraform to wtyczki, które umożliwiają Terraform interakcję z dostawcami chmury, dostawcami SaaS i innymi interfejsami API. Na przykład, jeśli planujemy używać Terraform do udostępniania infrastruktury na AWS, będziemy musieli zadeklarować dostawcę AWS w naszych plikach konfiguracyjnych.

#9. Kto utrzymuje dostawców Terraform?

Dostawcy są dystrybuowani oddzielnie od samego Terraform. Jako użytkownik Terraform każdy może rozwijać własnych dostawców. Istnieje kilka standardowych dostawców, którzy są bezpośrednio utrzymywani przez Hashicorp.

#10. Co to jest Strażnik?

Posterunek to polityka jako narzędzie kodu używane do wymuszania standardowych konfiguracji dla zasobów wdrażanych przez Terraform. Może być używany przez organizacje do celów zgodności i zarządzania.

# 11. Co rozumiesz przez moduły w Terraform?

Moduł Terraform to standardowy kontener dla wielu zasobów używanych razem do udostępniania i konfigurowania zasobów. Na przykład możesz utworzyć „moduł VPC” dla swojej organizacji, który udostępnia standardową VPC i inne zasoby, takie jak podsieci i bramy internetowe. Moduły mogą być udostępniane publicznie za pośrednictwem rejestru modułów publicznych i prywatnie za pośrednictwem rejestru modułów prywatnych.

#12. Jakie są korzyści z zastosowania modułów w terraformie?

Moduły Terraform pozwalają nam na tworzenie logicznej abstrakcji na szczycie zestawu zasobów. Korzystanie z modułów pozwala nam na utrzymanie i ponowne wykorzystanie standardowej konfiguracji zasobów. Można je wersjonować i udostępniać członkom zespołów w celu udostępnienia zasobów w standardowy sposób.

#13. Co to jest rejestr modułu prywatnego?

Funkcja Private Module Registry Terraform Cloud pozwala nam udostępniać moduły Terraform w całej naszej organizacji.

Zaawansowane pytania i odpowiedzi do wywiadu Terraform

# 14. Jak możemy eksportować dane z jednego modułu do drugiego?

Możemy eksportować dane z modułu, definiując bloki wyjściowe w plikach konfiguracyjnych modułu. Dane te można następnie przesłać jako parametr do modułu docelowego.

#13. Jak zdefiniować zależności w Terraformie?

Terraform ma wbudowane zarządzanie zależnościami. Terraform ma dwa rodzaje zależności między zasobami – niejawne i jawne zależności.

Niejawne zależności, jak sama nazwa wskazuje, są automatycznie wykrywane przez Terraform. Dzieje się tak, gdy dane wyjściowe „zasobu A” są używane w „zasobie B”. Terraform automatycznie wykrywa, że ​​„zasób B” musi zostać utworzony dopiero po „zasobie A”

Zależności jawne można określić w przypadkach, gdy dwa zasoby są wewnętrznie zależne od siebie bez współdzielenia jakichkolwiek danych wyjściowych. Można to zrobić za pomocą parametru depend_on w bloku konfiguracyjnym.

# 14. Co to są dostawcy w Terraform?

Provisioners to zasoby Terraform używane do wykonywania skryptów w ramach tworzenia lub niszczenia zasobów. W Terraform istnieją dwa typy Provisionerów:

  • local-exec: Wywołuje skrypt na komputerze z programem Terraform.
  • remote-exec: Wywołuje skrypt na zdalnym zasobie po jego utworzeniu.

Provisioners mają być używane tylko w ostateczności w Terraform.

#15. Co to jest zewnętrzny blok danych w Terraform?

Podobnie jak w przypadku dostawcy local-exec, do uruchamiania skryptów na komputerach z programem Terraform można użyć zewnętrznego bloku danych. Różnica między dostawcą a zewnętrznym blokiem danych polega na tym, że skrypty w zewnętrznym bloku danych mogą zwracać dane w formacie JSON, podczas gdy dostawcy nie mogą zwracać żadnych danych wyjściowych. Należy zauważyć, że zewnętrzne bloki danych są również ostatecznością i nie powinny być używane, jeśli istnieje lepsza alternatywa.

#16. W jaki sposób dwie osoby korzystające z chmury Terraform mogą tworzyć dwa różne zestawy infrastruktury przy użyciu tego samego katalogu roboczego?

Używając różnych przestrzeni roboczych. Ci użytkownicy mogą uruchamiać Terraform w dwóch oddzielnych obszarach roboczych. Każdy obszar roboczy ma swój własny plik stanu, więc dopóki zasoby się nie nakładają, obaj użytkownicy mogą pomyślnie udostępnić dwa różne zestawy infrastruktury przy użyciu tego samego kodu.

#17. Co się stanie, gdy wielu inżynierów rozpocznie wdrażanie infrastruktury przy użyciu tego samego pliku stanu?

Terraform ma bardzo ważną funkcję zwaną „blokadą stanu”. Ta funkcja zapewnia, że ​​podczas uruchamiania nie zostaną wprowadzone żadne zmiany w pliku stanu, i zapobiega uszkodzeniu pliku stanu. Należy zauważyć, że nie wszystkie zaplecza Terraform obsługują funkcję blokowania stanu. Powinieneś wybrać odpowiedni backend, jeśli ta funkcja jest wymagana.

#18. Co to jest zasób null w Terraform?

Zasób terraform zerowy to konfiguracja, która działa jak standardowy blok zasobów terraform, ale nie tworzy żadnych zasobów. Może to brzmieć jak dziwny i bezużyteczny zasób, ale może być przydatny w różnych sytuacjach, aby obejść ograniczenia w Terraform.

# 19. Jak używać tego samego dostawcy w Terraform z różnymi konfiguracjami?

Używając argumentu alias w bloku dostawcy.

#20. Masz plik konfiguracyjny Terraform bez zasobów. Co się stanie po uruchomieniu polecenia terraform apply?

Terraform zniszczy wszystkie zasoby. Rozpoczęcie pustego przejazdu poleceniem terraform apply jest dokładnie takie samo, jak uruchomienie terraform destroy run.

#21. Co się stanie, jeśli zasób został pomyślnie utworzony w terraformie, ale nie powiodło się podczas aprowizacji?

Jest to mało prawdopodobny scenariusz, ale gdy tak się stanie, zasób jest oznaczany jako skażony i można go odtworzyć, ponownie uruchamiając przebieg terraformowania.

#22. Która wartość zmiennej TF_LOG zapewnia NAJBARDZIEJ szczegółowe rejestrowanie?

TRACE jest najbardziej szczegółową i domyślną wartością zmiennej TF_LOG.

#23. Jak zaimportować istniejące zasoby w Terraform Management?

Za pomocą polecenia importu Terraform.

#24. Jakiego polecenia można użyć do podglądu planu wykonania terraformu?

Polecenie terraform plan generuje plan wykonania zmian, które Terraform dokona w infrastrukturze.

#25. Którego polecenia można użyć do pogodzenia stanu Terraform z rzeczywistą infrastrukturą świata rzeczywistego?

Polecenie terraform apply -refresh-only służy do uzgadniania stanu Terraform z rzeczywistą infrastrukturą świata rzeczywistego. Jest to nowa alternatywa dla polecenia odświeżania terraform, które jest obecnie przestarzałe.

#26. Którego polecenia można użyć do przełączania się między obszarami roboczymi podczas korzystania z Terraform Cloud?

Polecenie terraform workspace select służy do wyboru innego obszaru roboczego.

#27. Które polecenie służy do sprawdzania poprawności składni plików konfiguracyjnych terraform?

Polecenie terraform validate służy do sprawdzania, czy konfiguracja jest poprawna składniowo i wewnętrznie spójna.

#28. Które polecenie służy do tworzenia nowych obszarów roboczych w chmurze Terraform?

Polecenie terraform workspace new służy do tworzenia nowego obszaru roboczego.

Kilka innych ważnych poleceń dotyczących terraformowania podczas wywiadów technicznych.

  • terraform init: inicjuje zdalne backendy; pobiera dostawców i moduły zdalne zdefiniowane w Twojej konfiguracji.
  • terraform init -upgrade: służy do uaktualniania istniejących pobranych dostawców.
  • plan terraform: generuje plan wykonania tworzenia lub aktualizacji infrastruktury.
  • terraform apply: tworzy lub aktualizuje infrastrukturę po zażądaniu potwierdzenia od użytkownika.
  • terraform apply – auto-approve: tworzy lub aktualizuje infrastrukturę; etap zatwierdzania przez użytkownika jest pomijany.
  • zniszczenie terraform: usuwa infrastrukturę po zażądaniu potwierdzenia od użytkownika.
  • zniszczenie terraform – automatyczne zatwierdzanie: usuwa infrastrukturę; etap zatwierdzania przez użytkownika jest pomijany.
  • terraform fmt: skanuje bieżący katalog w poszukiwaniu plików konfiguracyjnych i formatuje je zgodnie z kanonicznym stylem i formatem HCP.
  • terraform fmt –recursive: skanuje bieżący katalog oraz podkatalogi w poszukiwaniu plików konfiguracyjnych i formatuje je zgodnie z kanonicznym stylem i formatem HCP.
  • terraform show: zapewnia czytelne dla człowieka dane wyjściowe z pliku stanu lub planu.

Mam nadzieję, że powyższe informacje pomogą Ci w zdobyciu pracy Terraform.