Terraform je nástroj „Infrastruktura jako kód (IaC)“. Slouží k bezpečnému aopakovatelnémubudování, správě a změnám infrastruktury způsobem.
Používá se ke správě prostředí s konfiguračním jazykem zvaným HashiCorp Configuration Language (HCL) pro lidsky čitelné, automatizované nasazení.
Terraform lze použít ke správě infrastruktury na více cloudech, jako jsou AWS, GCP a další. Terraform vytváří stavový soubor, který je zdrojem pravdy pro konfigurace prostředků. To znamená, že kdykoli jsou vytvořeny prostředky, tento stavový soubor je aktualizován podle stavu vytvářených prostředků.
V tomto článku uvidíme kroky k instalaci Terraformu na Ubuntu a jeho použití k vytvoření VPC v cloudu AWS.
Chcete-li se dozvědět více o Terraformu, klikněte sem.
Předpoklady
- Účet AWS (vytvořte si jej, pokud jej nemáte).
- Instance EC2 (Kliknutím sem se dozvíte, jak vytvořit instanci EC2)
- Kořenový přístup k serverům.
- 'access_key' &'secret_key' uživatele AWS IAM. (Kliknutím sem se dozvíte, jak vytvořit uživatele IAM pomocí 'access_key' a 'secret_key' na AWS, )
Co uděláme
- Nainstalujte Terraform
- Zapište konfigurační soubory Terraform.
- Vytvořte VPC pomocí konfiguračních souborů Terraform
- Smažte vytvořené VPC pomocí Terraform
Instalovat Terraform
Instalace Terraformu je docela jednoduchá a přímočará. Zde můžete najít vhodný balíček pro váš systém.
Před stažením souboru nainstalujme pomocí následujících příkazů balíčky 'wget' a 'unzip', pokud nejsou v systému dostupné.
apt-get update -y
apt-get install wget unzip -y
Pojďme vytvořit vyhrazený adresář 'terraform' pod '/opt/', kde si můžeme stáhnout balíček
cd /opt/
mkdir terraform
cd terraform/
Stáhněte si balíček terraform pomocí příkazu „wget“ a rozbalte jej.
wget https://releases.hashicorp.com/terraform/0.12.18/terraform_0.12.18_linux_amd64.zip
rozbalit terraform_0.12.18_linux_amd64.zip
ls -lt
Jakmile rozbalíte balíček, který jste si stáhli, uvidíte binární 'terraform'. Přesuňte tento binární soubor do /usr/local/bin/.
Můžete ověřit, zda byla instalace úspěšná nebo ne, pomocí příkazu terraform, ale zkontrolujte jeho verzi.
mv terraform /usr/local/bin/
terraform -v
Zápis konfiguračních souborů Terraform
Vytvořte vyhrazený adresář, kde můžete vytvářet konfigurační soubory terraform
mkdir terraform
cd terraform/
Použijte editor podle svého výběru a zkopírujte a vložte následující konfigurace, abyste vytvořili proměnné.tf, terraform.tfvars a main.tf
Vytvořte soubor 'main.tf', který je zodpovědný za vytvoření VPC na AWS. Následující konfigurace vytvoří VPC, internetovou bránu, tabulku směrování, zónu dostupnosti a skupinu zabezpečení. Tento main.tf bude číst hodnoty proměnných z variables.tf a terraform.tfvars.
vim main.tf
provider "aws" {
region = "${var.region}"
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
}
resource "aws_vpc" "vpc" {
cidr_block = "10.0.0.0/16"
}
resource "aws_internet_gateway" "gateway" {
vpc_id = "${aws_vpc.vpc.id}"
}
resource "aws_route" "route" {
route_table_id = "${aws_vpc.vpc.main_route_table_id}"
destination_cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.gateway.id}"
}
data "aws_availability_zones" "available" {}
resource "aws_subnet" "main" {
count = "${length(data.aws_availability_zones.available.names)}"
vpc_id = "${aws_vpc.vpc.id}"
cidr_block = "10.0.${count.index}.0/24"
map_public_ip_on_launch = true
availability_zone = "${element(data.aws_availability_zones.available.names, count.index)}"
}
resource "aws_security_group" "default" {
name = "http-https-allow"
description = "Allow incoming HTTP and HTTPS and Connections"
vpc_id = "${aws_vpc.vpc.id}"
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
Vytvořte 'variables.tf', který obsahuje deklaraci proměnných.
vim variables.tf
variable "access_key" {
description = "Access key to AWS console"
}
variable "secret_key" {
description = "Secret key to AWS console"
}
variable "region" {
description = "Region of AWS VPC"
}
Vytvořte 'terraform.tfvars', která obsahuje definici proměnné definované ve výše uvedeném souboru.
vim teraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XDX32PVJ6"
secret_key = "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"
Nyní byste měli mít 3 soubory, viz, variables.tf, terraform.tfvars a main.tf
Vytvořte VPC pomocí konfiguračních souborů Terraform
Prvním příkazem, který se má použít, je 'terraform init'. Tento příkaz stáhne a nainstaluje pluginy pro poskytovatele používané v rámci konfigurace. V našem případě je to aws.
terraform init
Druhý příkaz, který se má použít, je 'terraform plan'. Tento příkaz se používá k zobrazení změn, ke kterým dojde v infrastruktuře.
plán terraform
příkaz 'terraform apply' vytvoří prostředky na aws uvedeném v souboru main.tf. Budete vyzváni, abyste poskytli svůj vstup pro vytvoření zdrojů.
platí teraform
Můžete přejít do konzole AWS VPC a ověřit, zda je VPC vytvořen.
Smazat vytvořené VPC pomocí Terraform
Pokud znáte další požadované zdroje, které jste vytvořili pomocí konfigurace uvedené v souboru main.tf, můžete všechny tyto zdroje smazat pomocí příkazu „terraform destroy“.
terraform zničit
Závěr
V tomto článku jsme viděli kroky k instalaci Terraformu. Viděli jsme také požadovanou konfiguraci k vytvoření VPC spolu s několika dalšími souvisejícími zdroji. Nyní jsme také obeznámeni s deklarací a definicí proměnných.