How to run specific terraform resource, module, target?
Terraform file always grows as you span your infrastructure and add multiple servers to your cloud-hosted infrastructure.
But imagine you have terraform file which contains lots of resources but you only do not want to apply the complete terraform configuration but instead, you just want to run one specific or some specific resource out of your Terraform configuration.
So to run specific resources in terraform you should use
-target=resource which will help you to target specific resources instead of applying complete terraform configuration.
-target=resource not only helps you to run or apply a single resource but with
-target=resource you also run more than one resource.
Table of Content
- Terraform apply single resource using -target=resource
- Terraform apply multiple resources using -target=resource
1. Terraform apply single resource using -target=resource
Here is terraform apply for command for running/applying single resource -
1terraform apply -target=module.module-1.aws_instance.ec2_example
Let breakdown the command furthermore to understand it -
module- In case if you are using modules in your terraform project then you should add the prefix
moduel-1- It is the name of my module in which my terraform resource reside.(Refer to the diagram below for more clarity)
aws_instance- This is the instance type that I am targetting to run or apply
ec2_example- It is the name of my instance which I am targetting to run or apply
1.1 If you do not have a module inside your terraform project
In case if you do not have any module inside your terraform project then you simply need to remove the keyword
Here is an example command for it -
1terraform apply -target=aws_instance.ec2_example
As you do not have any module inside your terraform project so in such cases you will only have
main.tf and you can directly pass the reference of the resource along with its name into the
2. Terraform apply multiple resource using -target=resource
In the step-1 we have seen how to run specific terraform resources but What if you want to run more than one resource?.
Well, you can still use terraform
-target=resource and specific multiple
Here is an example command for specifying multiple resources -
1terraform apply -target=module.module-1.aws_instance.ec2_module_1 -target=module.module-2.aws_instance.ec2_module_2
The above contains two modules named - module-1, module-2 and their respective resources.
Here are couple of pictures which will help you to better understand the scenarios with multiple modules and resources
Read More - Terragrunt -
Posts in this Series
- Use Terraform to manage AWS IAM Policies, Roles and Users
- How to split Your Terraform main.tf File into Multiple Files
- How to use Terraform variable within variable
- Mastering the Terraform Lookup Function for Dynamic Keys
- Copy files to EC2 and S3 bucket using Terraform
- Troubleshooting Error creating EC2 Subnet InvalidSubnet Range The CIDR is Invalid
- Troubleshooting InvalidParameter Security group and subnet belong to different networks
- Managing strings in Terraform: A comprehensive guide
- How to use terraform depends_on meta argument?
- What is user_data in Terraform?
- Why you should not store terraform state file(.tfstate) inside Git Repository?
- How to import existing resource using terraform import comand?
- Terraform - A detailed guide on setting up ALB(Application Load Balancer) and SSL?
- Testing Infrastructure as Code with Terraform?
- How to remove a resource from Terraform state?
- What is Terraform null Resource?
- In terraform how to skip creation of resource if the resource already exist?
- How to setup Virtual machine on Google Cloud Platform
- How to use Terraform locals?
- Terraform Guide - Docker Containers & AWS ECR(elastic container registry)?
- How to generate SSH key in Terraform using tls_private_key?
- How to fix-Terraform Error acquiring the state lock ConditionalCheckFiledException?
- Terraform Template - A complete guide?
- How to use Terragrunt?
- Terraform and AWS Multi account Setup?
- Terraform and AWS credentials handling?
- How to fix-error configuring S3 Backend no valid credential sources for S3 Backend found?
- Terraform state locking using DynamoDB (aws_dynamodb_table)?
- Managing Terraform states?
- Securing AWS secrets using HashiCorp Vault with Terraform?
- How to use Workspaces in Terraform?
- How to run specific terraform resource, module, target?
- How Terraform modules works?
- Secure AWS EC2s & GCP VMs with Terraform SSH Keys!
- What is terraform provisioner?
- Is terraform destroy needed before terraform apply?
- How to fix terraform error Your query returned no results. Please change your search criteria and try again?
- How to use Terraform Data sources?
- How to use Terraform resource meta arguments?
- How to use Terraform Dynamic blocks?
- Terraform - How to nuke AWS resources and save additional AWS infrastructure cost?
- Understanding terraform count, for_each and for loop?
- How to use Terraform output values?
- How to fix error configuring Terraform AWS Provider error validating provider credentials error calling sts GetCallerIdentity SignatureDoesNotMatch?
- How to fix Invalid function argument on line in provider credentials file google Invalid value for path parameter no file exists
- How to fix error value for undeclared variable a variable named was assigned on the command line?
- What is variable.tf and terraform.tfvars?
- How to use Terraform Variables - Locals,Input,Output
- Terraform create EC2 Instance on AWS
- How to fix Error creating service account googleapi Error 403 Identity and Access Management (IAM) API has not been used in project before or it is disabled
- Install terraform on Ubuntu 20.04, CentOS 8, MacOS, Windows 10, Fedora 33, Red hat 8 and Solaris 11