En aquesta secció, aprendrem a crear la nostra primera configuració de Terraform. Aquest procés inclou la creació d'un fitxer de configuració, la inicialització del directori de treball, la planificació de la infraestructura i l'aplicació dels canvis.
Objectius
- Crear un fitxer de configuració de Terraform.
- Inicialitzar el directori de treball de Terraform.
- Executar el pla de Terraform.
- Aplicar la configuració per crear recursos.
Requisits previs
- Terraform instal·lat al vostre sistema (vegeu el mòdul 1.2).
- Un compte en un proveïdor de núvol (AWS, Azure, GCP, etc.).
Passos per a la primera configuració
- Crear un fitxer de configuració de Terraform
Comencem creant un fitxer de configuració de Terraform. Aquest fitxer utilitza la sintaxi HCL (HashiCorp Configuration Language) per definir la infraestructura.
Exemple de fitxer de configuració (main.tf
)
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "ExampleInstance" } }
Explicació del codi:
provider "aws"
: Defineix el proveïdor que utilitzarem (AWS en aquest cas) i la regió.resource "aws_instance" "example"
: Defineix un recurs d'instància EC2 a AWS.ami
: Identificador de la imatge d'Amazon Machine (AMI) que utilitzarem.instance_type
: Tipus d'instància (t2.micro en aquest cas).tags
: Etiquetes per identificar l'instància.
- Inicialitzar el directori de treball de Terraform
Abans de poder utilitzar Terraform, hem d'inicialitzar el directori de treball. Això descarregarà els connectors necessaris per al proveïdor especificat.
Comanda per inicialitzar Terraform
Sortida esperada:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/aws... - Installing hashicorp/aws v3.27.0... - Installed hashicorp/aws v3.27.0 (signed by HashiCorp) Terraform has been successfully initialized!
- Executar el pla de Terraform
El següent pas és crear un pla d'execució. Això ens permet veure quins canvis es faran a la infraestructura abans d'aplicar-los.
Comanda per crear un pla
Sortida esperada:
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # aws_instance.example will be created + resource "aws_instance" "example" { + ami = "ami-0c55b159cbfafe1f0" + instance_type = "t2.micro" + tags = { + "Name" = "ExampleInstance" } } Plan: 1 to add, 0 to change, 0 to destroy.
- Aplicar la configuració
Finalment, aplicarem la configuració per crear els recursos definits.
Comanda per aplicar la configuració
Sortida esperada:
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # aws_instance.example will be created + resource "aws_instance" "example" { + ami = "ami-0c55b159cbfafe1f0" + instance_type = "t2.micro" + tags = { + "Name" = "ExampleInstance" } } Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes aws_instance.example: Creating... aws_instance.example: Still creating... [10s elapsed] aws_instance.example: Creation complete after 20s [id=i-0abcd1234efgh5678] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Exercici pràctic
Objectiu
Crear una instància EC2 a AWS utilitzant Terraform.
Passos
- Crear un fitxer
main.tf
amb la configuració següent:provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "ExampleInstance" } }
- Inicialitzar el directori de treball amb
terraform init
. - Crear un pla d'execució amb
terraform plan
. - Aplicar la configuració amb
terraform apply
.
Solució
Seguiu els passos descrits anteriorment per completar l'exercici.
Resum
En aquesta secció, hem après a crear la nostra primera configuració de Terraform. Hem creat un fitxer de configuració, inicialitzat el directori de treball, creat un pla d'execució i aplicat la configuració per crear una instància EC2 a AWS. Aquest és el primer pas per gestionar la infraestructura com a codi amb Terraform. En les següents seccions, aprofundirem en altres aspectes i funcionalitats de Terraform.
Curs de Terraform
Mòdul 1: Introducció a Terraform
- Què és Terraform?
- Instal·lant Terraform
- Conceptes bàsics de Terraform
- Primera configuració de Terraform
Mòdul 2: Llenguatge de configuració de Terraform
Mòdul 3: Gestió de l'estat
Mòdul 4: Mòduls de Terraform
Mòdul 5: Proveïment de recursos
- Conceptes bàsics de proveïment
- Proveïment de recursos AWS
- Proveïment de recursos Azure
- Proveïment de recursos GCP
Mòdul 6: Funcionalitats avançades de Terraform
Mòdul 7: Millors pràctiques de Terraform
- Organització del codi
- Control de versions
- Proves del codi de Terraform
- Millors pràctiques de seguretat
Mòdul 8: Terraform en CI/CD
- Integració de Terraform amb CI/CD
- Automatització de Terraform amb Jenkins
- Ús de Terraform amb GitHub Actions
- Terraform Cloud i Enterprise