Terraform
- Terraform helps in IaC (Infrastructure as Code)
- From Terraform, Infrastructure can be created in almost all the virtual environments (AWS, Azure, VmWare, VirtualBox etc)
- Terraform is developed in GO Language.
- Like Packer, Terraform is also a single executable.
- Terraform templates are written in Custom DSL. This DSL mostly looks like JSON.
- Terraform templates end with .tf extension
Installation
- Windows:
choco install terraform
- Linux:
- Download the terraform from here
- unzip the file to some folder. Add this folder to PATH environment variable (use export command and add this statement to /etc/environment or .bashrc)
Terraform in CD Pipelines (DevOps)
Concepts
- Terraform has list of providers supported. Each Provider provides resources and data sources.
- Provider: Provider is used to create infrastructure in particular virtual environments. Refer Here for the complete list. Some of the popular providers are
- AWS
- Azure
- OpenStack
- VmWare
- Resource: Resource is part of the infrastructure create on the provider. Every Provider provides resources.
- DataSource: <will be defining soon. not now>
- Variables: To give options for the user to enter different values to resources.
- Provisioners: Terraform supports various provisioners like shell, Chef, Powershell