Official HashiCorp Registry 1 contains several Terraform Providers#.
Terraform Registry
-
Terraform Providers
There are several #HashiCorp Terraform providers available from HashiCorp either through official support, verified, or community support. They can be downloaded from Terraform Registry# as a Terraform Plugins# if needed and stored into the local directory
.terraform/plugins/
.We could put a constraint on the Provider’s version used for the current project. Normally, in the Terraform Registry#, they will provide the configuration# to use the chosen version after pressing the “Use Provider” button. It could look like the following:
-
HashiCorp Terraform
A usual Terraform workflow should start with initialising the project and identify the Terraform Providers# to be used for the target environment using the command
terraform init
(initialise phase). Then, dry-run or test blueprint for each target environment by laying out the action that will be carried out with the commandterraform plan
(planning phase). Finally, apply the blueprint and make necessary changes for the target environment accordingly by runningterraform apply
(apply phase). Bothterraform plan
andterraform apply
change the state of Terraform. The state of the resources is recorded in the fileterraform.tfstate
. If there is a disparity between current environment and the blueprint such as missing plugins#, Terraform will fix it in order to adhere to the specified requirements. Otherwise, one could simply runterraform refresh
to synchronise the state of Terraform and the underlying infrastructure. We can import resources that is created manually or providers that is outside Terraform Registry# (from other #Infrastructure as Code (IaC) tools).Terraform is an #open source automation tool used for #Infrastructure as Code (IaC) which is available in multiple platforms such as Windows, Apple and Linux. It can manage on-premise server, Cloud Computing# (AWS, Azure, Google Could Platform), #Virtual Machine (VM) (VMWare), Version Control System (VCS) and protocol (HTTP, TLS, Domain Name Server (DNS)) using Terraform Providers# available in Terraform Registry#.