GNU/Linux >> Znalost Linux >  >> Linux

Co je Terraform a jak jej nainstalovat a používat na AWS EC2

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

  1. Účet AWS (vytvořte si jej, pokud jej nemáte).
  2. Instance EC2 (Kliknutím sem se dozvíte, jak vytvořit instanci EC2)
  3. Kořenový přístup k serverům.
  4. '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

  1. Nainstalujte Terraform 
  2. Zapište konfigurační soubory Terraform.
  3. Vytvořte VPC pomocí konfiguračních souborů Terraform
  4. 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.


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Co je příkaz cURL a jak jej používat?

  3. Jak nainstalovat a používat Flatpak v Linuxu

  1. Co je to chroot jail a jak jej používat?

  2. Jak nainstalovat a používat Traceroute v Linuxu

  3. Co je Build-Essential-Ubuntu, jak jej nainstalovat a používat?

  1. Jak nainstalovat a používat telnet na Kali Linux

  2. Jak nainstalovat a používat Terraform na CentOS 8

  3. Jak spustit instanci AWS EC2 pomocí Terraform