Co obejmiemy?
W tym przewodniku zobaczymy, w jaki sposób możemy zapewnić instancję AWS RDS DB za pomocą Terraform. Zacznijmy najpierw od instalacji Terraform na Ubuntu 20.04.
Instalowanie Terraform
Hashicorp zapewnia oficjalny pakiet Terraform dla Ubuntu/Debian, Centos/Rhel, Fedora i Amazon Linux. Oprócz tego utrzymuje również skompilowane wstępnie binarne i można go również opracować ze źródła. Do tego przewodnika używamy domyślnego pakietu dostarczonego przez repozytorium pakietu Debian, aby zainstalować Terraform na Ubuntu 20.04.
Krok 1. Pierwsza instalacja Gnupg, Oprogramowanie-properties-common i pakiety Curl w celu weryfikacji podpisu GPG Hashicorp i zainstalowania wymaganego repozytorium:
$ sudo apt-get aktualizacja && sudo apt-get install -y gnupg oprogramowanie-properties-common curl
Krok 2. Teraz dodaj Hashicorp GPG Klucz za pomocą polecenia:
$ curl -fssl https: // apt.wydania.Hashicorp.com/gpg | sudo apt-key add -
Krok 3. Kontynuuj, dodając wymagane repozytorium:
$ sudo apt-add-repozytory „deb [arch = amd64] https: // apt.wydania.Hashicorp.com $ (lsb_release -cs) main ”
Krok 4. Na koniec uruchom polecenie aktualizacji, aby dodać repozytorium i zainstaluj Terraform:
$ sudo apt-get aktualizacja && sudo apt-get instaluj terraform
Krok 5. Sprawdź, czy Terraform jest zainstalowany przez uruchamianie polecenia:
$ terraform -version
Budowanie infrastruktury AWS RDS za pomocą Terraform
Teraz, gdy zainstalowaliśmy Terraform na naszym komputerze lokalnym, możemy kontynuować nasze zadanie pracy z AWS. Jak wspomniano wcześniej, Terraform używa kilku plików konfiguracyjnych dla zasobów dostawczych i każdy z tych plików musi być umieszczony w odpowiednim folderze/katalogu roboczym. Utwórzmy katalog w tym celu:
Krok 1. Zrób folder zawierający pliki konfiguracyjne i zmień katalog na ten folder:
$ mkdir linuxhint-terraform && cd Linuxhint-Terraform
Krok 2. Zrobić 'główny.tf„Plik, który będzie zawierał definicję naszej infrastruktury:
$ nano main.tf
Teraz umieść w nim następującą konfigurację:
Terraform
wymagane_providers
AWS =
Źródło = "Hashicorp/AWS"
wersja = "~> 3.27 "
wymagane_wersja = "> = 0.14.9 "
Dostawca „AWS”
region = „US-West-2”
access_key = „Your-Access-Key”
secret_key = „Your-Secret-Key”
Zasób „aws_db_instance” „rds_instance”
alokated_storage = 20
identyfikator = "rds-terraform"
Storage_Type = "GP2"
silnik = „mysql”
Engine_version = "8.0.27 "
instance_class = "db.T2.mikro "
name = "Your-DB-Nazwa"
Nazwa użytkownika = „Twoja nazwa DB”
hasło = „Twoje hasło”
Publicly_Accessible = true
skip_final_snapshot = true
tagi =
Name = "ExamplerdsServerInstance"
Ten plik zawiera całą konfigurację do wdrożenia za pomocą TerraForm, wystarczy zastąpić odważny tekst własnymi szczegółami konfiguracji. Zbadajmy każdą z sekcji użytych w powyższym pliku:
1. Terraform: definiuje ustawienia Terraform. „Wymagani dostawcy” definiuje dostawcę do użycia z Terraform, a „źródło” jest opcjonalnym parametrem nazwy hosta, przestrzeni nazw i typu dostawcy. W powyższym kodzie źródło jest zdefiniowane jako „Hashicorp/AWS”, które podobnie jak wszyscy dostawcy są instalowane z rejestru Terraform. Powyższy dostawca wskazuje 'rejestr.Terraform.IO/HASHICORP/AWS '.
Atrybut wersji definiuje wersję dostawcy, której chcesz użyć.
2. Dostawca: określa to, z którą platformą chmurową będziesz wchodzić w interakcje (AWS, Azure, GCP itp.). Kontroluje to również region, w którym wdrażasz zasoby i poświadczenia bezpieczeństwa dla użytkownika.
3. Zasób: obejmuje komponenty, które budują infrastrukturę taką jak bazy danych, pamięć, sieć itp. Pierwszy ciąg, tutaj „AWS_INSTANCE„Definiuje typ zasobu, a drugi definiuje niestandardową nazwę, której chcesz użyć. Te dwa są połączone, aby utworzyć unikalny identyfikator tego zasobu, oto jest 'AWS_INSTANCE.RDS_INSTANCE'. W ten sam sposób możemy również dołączyć rozmiary maszyn, nazwy obrazów dysku lub identyfikatory VPC.
Aby zweryfikować lub zweryfikować konfigurację, użyj polecenia:
$ Terraform potwierdza
Inicjowanie katalogu Terraform
Aby pobrać i zainstalować dostawcę, który zdefiniowaliśmy w naszej konfiguracji i innych plikach, musimy zainicjować katalog zawierający ten plik:
$ Terraform init
Z powyższego obrazu, nasz w tym Polecenie się udało i są tutaj również nowe pliki. Jest też jeszcze jedno polecenie „Plan Terraform”, chociaż używanie go nie jest obowiązkowe, ale na przykład ma pewne korzyści.:
Terraform nie wspomina o tym poleceniu w swojej dokumentacji, ponieważ kiedy uruchomisz polecenie „Terraform”, ten sam plan zostanie ponownie przedstawiony.
Budowanie infrastruktury
Aby zbudować naszą infrastrukturę, użyj polecenia:
$ Terraform Zastosuj
To najpierw wyprowadzi plan wykonania opisujący zadania Terraform, aby wprowadzić stan infrastruktury do tej zdefiniowanej w pliku konfiguracyjnym. Po tym zatrzyma się i poprosi o potwierdzenie planu kontynuowania. Jeśli wszystko jest ustawione tak, jak chcesz, wpisz „tak”, aby kontynuować:
Jeśli jesteś gotowy na kontynuację, wpisz „Tak”.
Ukończenie procesu zajmie trochę czasu. Po zakończeniu tego procesu pojawi się poniższa wiadomość:
W Twojej konsoli zarządzania AWS instancja RDS zostanie wymieniona:
Niszczenie zasobów
Po zakończeniu i nie potrzebujesz już utworzonych zasobów AWS, możesz po prostu je usunąć za pomocą polecenia:
$ Terraform niszczy
Wniosek
W tym przewodniku dowiedzieliśmy się o udostępnianiu instancji RDS na AWS za pomocą Terraform. Możesz także spróbować skonfigurować instancję EC2 w ten sam sposób.