In this blog, we will explore a tool called 'Terraformer,' which aids in exporting existing cloud infrastructure as Terraform code (Reverse Terraform).
Terraformer generates tf, JSON, and tfstate files from the existing infrastructure, allowing us to utilize the generated Terraform code for new infrastructure.
Requirements:
1.Linux VM(I am using Mac)
2. Cloud account (I am using Azure)
3. latest terraform
Step 1 : Install Terraformer
Execute the below commands to install terraformer,
export PROVIDER=azure
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-darwin-amd64"
chmod +x terraformer-${PROVIDER}-darwin-amd64
mv terraformer-${PROVIDER}-darwin-amd64 /usr/local/bin/terraformer
terraformer -v
terraform -v
There are various installation methods are available here,
https://github.com/GoogleCloudPlatform/terraformer
Step 2: Download the Cloud provider plugin
Create versions.tf file to download the cloud plugin, here Azure is used, so the azurearm plugin is required for terraformer
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=3.59.0"
}
}
}
Above is the azure versions.tf file, we can change it accordingly to your cloud provider.
Execute the below command to download the plugin,
terraform init
Step 3: Cloud Provider authentication
We need to login with the cloud account in the terminal, Below command is for azure.
az login
export ARM_SUBSCRIPTION_ID=<yourazuresubscriptionid>
In my Azure account, I have the following resources, We will download them with Terraformer.
Step 4 : Terraformer execution
Use The below command to download the terraform code from the existing infrastructure.
Syntax : terraformer import azure -R <resourcegrpname> -r <Servicename>
terraformer import azure -R devopsart-testrg -r storage_account
With this command, am downloading only the storage account. Once the command is successful. There will be a folder called "generated". under that, we can see our storage account related to terraform code.
And here is the output of "storage_account.tf"
by using this download terraform code, we can create a new storage account by changing the parameters in the terraform code.
That's all. We have installed Terraformer and experimented with it
Note: Currently this tool supports a few Azure services.
Reference: https://github.com/GoogleCloudPlatform/terraformer
Post a Comment