LINUX

Cómo instalar Terraform en CentOS 7 / Ubuntu 18.04

Cómo instalar terraform en centos y ubuntu

Terraform es un software que le permite administrar los recursos de la infraestructura de la nube desde el código de manera eficiente. Puede usar Terraform para construir, cambiar y versionar la infraestructura implementada en proveedores de nube patentados o en su propia infraestructura local.

Es compatible con proveedores de servicios en la nube como AWS, Google Cloud Platform, Azure y muchos otros.

Terraform se distribuye como un paquete binario para todas las plataformas y arquitecturas compatibles. Terraform se ejecuta como un único binario denominado terraform. Cualquier otro archivo del paquete se puede eliminar de forma segura.

En este tutorial aprenderemos a:

– instalar terraform en CentOS 7
– instalar terraform en Ubuntu 18.04
– escribir un script de plantilla de terraform para AWS Cloud (Amazon Web Services)
– ejecutar terraform y construir una infraestructura funcional en la nube

Instalar Terraform en Centos 7

A continuación, veremos cómo podemos instalar Terraform en la distribución CentOS 7.

Primero, necesitará actualizar su sistema y paquetes a la versión actual:

$ sudo yum update

A continuación, instalaremos wget y descomprimiremos los paquetes si aún no están instalados:

$ sudo yum install wget unzip

Ahora estamos listos para descargar Terraform zip para Linux del sitio web oficial. En el momento de escribir este artículo, la versión actual de Terraform era 0.11.13.

$ wget https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_linux_amd64.zip

A continuación, descomprimiremos el archivo para / usr / local / bin /

$ sudo unzip ./terraform_0.11.13_linux_amd64.zip -d /usr/local/bin/

Todo listo. Lo único que queda ahora es comprobar si terraform se ha instalado correctamente, con el siguiente comando:

$ terraform -v

Instalar Terraform en Ubuntu 18.04

Para actualizar el sistema y los paquetes, puede utilizar el actualizador de software integrado o actualizar manualmente el sistema con:

$ sudo apt-get update

Nuevamente, instalaremos wget y descomprimiremos los paquetes si aún no están instalados:

$ sudo apt-get install wget unzip

También a continuación, ejecutaremos los mismos comandos que hicimos con CentOS 7:

$ wget https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_linux_amd64.zip
$ sudo unzip ./terraform_0.11.13_linux_amd64.zip -d /usr/local/bin/

Y finalmente, para probar si nuestra instalación fue exitosa:

$ terraform -v

Escribir un archivo de script de plantilla para Terraform

Ahora, cuando hemos aprendido cómo instalar con éxito el software Terraform tanto en CentOS 7 como en Ubuntu 18.04, podemos crear un archivo de script de plantilla y configurar la infraestructura, por ejemplo, en AWS Cloud (Amazon Web Services).

Terraform usa archivos de plantilla .tf para configurar la infraestructura de nube deseada y usa código escrito en un lenguaje llamado HCL. En este tutorial crearemos un archivo de plantilla llamado ‘terraform.tf’.

$ nano terraform.tf

Ahora debemos agregar nuestras credenciales al archivo terraform.tf, el nombre del proveedor de configuración y las instrucciones sobre qué debe hacer terraform. Ingrese su clave pública y secreta de AWS para que se vea así:

provider "aws" {
  region     = "us-west-2"
  access_key = "accesskey"
  secret_key = "secretkey"
}

resource "aws_instance" "example" {
  ami = "ami-8803e0f0"
  instance_type = "t2.micro"
}

Guarde el archivo y proceda a la inicialización de Terraform.

A continuación, debemos inicializar Terraform:

$ terraform init

Initializing provider plugins...
- Checking for available provider plugins on https://releases.hashicorp.com...
- Downloading plugin for provider "aws" (2.1.0)...

The following providers do not have any version constraints in configuration,
so the latest version was installed.

To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.

* provider.aws: version = "~> 2.1"

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

Ahora estamos básicamente listos para comenzar. Utilizando la terraform plan comando podemos simular el proceso sin crear nada en AWS:

$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.


------------------------------------------------------------------------

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
      id:                           
      ami:                          "ami-8803e0f0"
      arn:                          
      associate_public_ip_address:  
      availability_zone:            
      cpu_core_count:               
      cpu_threads_per_core:         
      ebs_block_device.#:           
      ephemeral_block_device.#:     
      get_password_data:            "false"
      host_id:                      
      instance_state:               
      instance_type:                "t2.micro"
      ipv6_address_count:           
      ipv6_addresses.#:             
      key_name:                     
      network_interface.#:          
      network_interface_id:         
      password_data:                
      placement_group:              
      primary_network_interface_id: 
      private_dns:                  
      private_ip:                   
      public_dns:                   
      public_ip:                    
      root_block_device.#:          
      security_groups.#:            
      source_dest_check:            "true"
      subnet_id:                    
      tenancy:                      
      volume_tags.%:                
      vpc_security_group_ids.#:     


Plan: 1 to add, 0 to change, 0 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

Ejecutando Terraform para crear una instancia en AWS

Si estamos satisfechos con el plan actual probado, ejecutamos terraform apply para crear realmente nuestra infraestructura en AWS:

$ terraform apply

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
      id:                           
      ami:                          "ami-8803e0f0"
      arn:                          
      associate_public_ip_address:  
...

Se le pedirá que confirme la acción actual escribiendo «sí»:

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

Después de unos minutos, la instancia se creará y se ejecutará:

...
  source_dest_check:            "" => "true"
  subnet_id:                    "" => ""
  tenancy:                      "" => ""
  volume_tags.%:                "" => ""
  vpc_security_group_ids.#:     "" => ""
aws_instance.example: Still creating... (10s elapsed)
aws_instance.example: Still creating... (20s elapsed)
aws_instance.example: Still creating... (30s elapsed)
aws_instance.example: Still creating... (40s elapsed)
aws_instance.example: Creation complete after 43s (ID: i-07977d913a7264459)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Como puede ver cuando abre la consola de AWS, nuestra instancia está en funcionamiento:

instancia de aws terrraform

Tenga en cuenta que Terraform recuerda el estado de su infraestructura, por lo que si cambia el plan y lo solicita nuevamente, actualizará su infraestructura en la nube existente.

Lo último que nos queda por hacer es ver cómo podemos terminar y eliminar nuestro plan. Es una acción muy simple con terraform destroy comando (se le pedirá nuevamente que confirme su acción):

$ terraform destroy
aws_instance.example: Refreshing state... (ID: i-07977d913a7264459)

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  - destroy

Terraform will perform the following actions:

  - aws_instance.example


Plan: 0 to add, 0 to change, 1 to destroy.

Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes

aws_instance.example: Destroying... (ID: i-07977d913a7264459)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 10s elapsed)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 20s elapsed)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 30s elapsed)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 40s elapsed)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 50s elapsed)
aws_instance.example: Still destroying... (ID: i-07977d913a7264459, 1m0s elapsed)
aws_instance.example: Destruction complete after 1m6s

Destroy complete! Resources: 1 destroyed.

Y eso es todo por este tutorial. Aprendimos cómo instalar Terraform en CentOS 7 y Ubuntu 18.04, crear un archivo de plantilla, crear y destruir instancias en AWS.

Espero que esta información ayude a algunos de ustedes, y también no dude en publicar sus comentarios y preguntas a continuación.

Leer también:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar