DevOps Classroomnotes 29/Oct/2022

Terraform Provisioning

  • Terraform provisioning is used to perform extra operations after resources are created.
  • That could be generally executing scripts Refer Here
    Preview
  • There are three provisioners
  • To connect to the remote instance we need connection Refer Here
  • Lets install apache server in the ec2 instance created. The commands that needs to be executed on the remote are
sudo apt update
sudo apt install apache2 -y
  • Terraform provisioner will be run only when the resource is created.
  • Refer Here for the changes done to install nginx and add url as output
  • Lets make changes in remote-exec inline Refer Here and try to perform terraform apply. Terraform will not consider the changes in remote-exec as desired state, so nothing will be executed.
    Preview
  • Provisoner without a resource can be used to solve this problem
  • Lets add a null provider Refer Here
  • In the null resource create a triggers which maps to certain input from the user which triggers script execution
  • Refer Here for the changes.

Terraform state

  • As of now the terraform state is maintained in the local folder. when we try to execute the same infra from different system it also generates a new state file which means new resources will be provisioned again.
    Preview
  • solution for this is provided by terraform backends.
  • Refer Here for official docs
  • Backend is location where your state file gets stored.
  • Default backend is local. This is the reason why .tfstate is shown in local folder where we have templates.
  • Lets us s3 as backend

Terraform backend s3

  • The state file gets stored in aws s3.
  • But terraform s3 backend doesnot support locking. To perform locking terraform expects a dynamo db table to be created
  • Refer Here for the official docs
  • After adding backend information execute terraform init
    Preview
  • Refer Here for the changeset
  • Ensure you have terraform installed and configure on two nodes/systems
  • For the purposes of understand. screen shots with git bash is user2 and screenshots with powershell is user1
  • User1 execute terraform apply
    Preview
  • User2 also executes terraform apply
    Preview

Terraform Workspaces

  • Terraform workspaces allows us to create locking per workspace.
  • Each workspace can be considered as one environment
  • Refer Here for official docs and Refer Here to manage workspaces
  • Refer Here for cli options
    Preview
  • Create multiple workspaces depending on environments
  • Commands
terraform workspace --help

Exercise

  • Findout how to configure terraform aws provider to create resources in two regions

Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Wordpress Development Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube