Installing Terraform and configure

 Installing Terraform

Install yum-config-manager to manage your repositories.

$ sudo yum install -y yum-utils

Use yum-config-manager to add the official HashiCorp Linux repository.

$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

Install.

$ sudo yum -y install terraform

TIP: Now that you have added the HashiCorp repository, you can install Vault, Consul, Nomad and Packer with the same command.

Verify the installation

Verify that the installation worked by opening a new terminal session and listing Terraform's available subcommands.

$ terraform -help

Usage: terraform [-version] [-help] <command> [args]

The available commands for execution are listed below.

The most common, useful commands are shown first, followed by

less common or more advanced commands. If you're just getting

started with Terraform, stick with the common commands. For the

other commands, please read the help and docs before usage.

##...

Add any subcommand to terraform -help to learn more about what it does and available options.

$ terraform -help plan

Troubleshoot

If you get an error that terraform could not be found, your PATH environment variable was not set up properly. Please go back and ensure that your PATH variable contains the directory where Terraform was installed.

Enable tab completion

If you use either Bash or Zsh, you can enable tab completion for Terraform commands. To enable autocomplete, first ensure that a config file exists for your chosen shell.

Bash

$ touch ~/.bashrc

Then install the autocomplete package.

$ terraform -install-autocomplete

Once the autocomplete support is installed, you will need to restart your shell.

Download Docker.

After you install Terraform and Docker on your local machine, start Docker Desktop.

$ open -a Docker

Create a directory named learn-terraform-docker-container.

$ mkdir test-terraform-docker-container

Then, navigate into it.

$ cd test-terraform-docker-container

create and Paste the following Terraform configuration into a file and name it main.tf

Mac or Linux

terraform {

  required_providers {

    docker = {

      source  = "kreuzwerker/docker"

      version = "~> 2.13.0"

    }

  }

}


provider "docker" {}


resource "docker_image" "nginx" {

  name         = "nginx:latest"

  keep_locally = false

}


resource "docker_container" "nginx" {

  image = docker_image.nginx.latest

  name  = "tutorial"

  ports {

    internal = 80

    external = 8000

  }

}

Initialize the project, which downloads a plugin that allows Terraform to interact with Docker.

$ terraform init

Provision the NGINX server container with apply. When Terraform asks you to confirm type yes and press ENTER.

$ terraform apply

Verify the existence of the NGINX container by visiting localhost:8000 in your web browser or running docker ps to see the container.

NGINX running in Docker via Terraform

$ docker ps

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                    NAMES

425d5ee58619        e791337790a6              "nginx -g 'daemon of…"   20 seconds ago      Up 19 seconds       0.0.0.0:8000->80/tcp     tutorial

To stop the container, run terraform destroy.

$ terraform destroy

You've now provisioned and destroyed an NGINX webserver with Terraform.



Comments

Popular posts from this blog

Installing metabase on ec2 linux server as a service file.

Elastic search Kibana

Launching EC2 using Terraform | Installing Grafana and promotues using Terraform.