Mastering Terraform Commands

Terraform is a powerful tool used for managing infrastructure as code. To effectively manage your infrastructure, it's essential to understand and master the various Terraform commands available. In this guide, we'll explore the most commonly used Terraform commands and provide examples of how to use them in your daily workflow.

  1. terraform init:

     csharpCopy codeterraform init
    

    This command initializes a working directory containing Terraform configuration files. It downloads any required plugins and sets up the working directory for Terraform operations.

  2. terraform plan:

     Copy codeterraform plan
    

    The terraform plan command generates an execution plan, outlining the actions Terraform will take to achieve the desired state defined in the configuration files. It's a critical step before applying any changes to your infrastructure.

  3. terraform apply:

     Copy codeterraform apply
    

    After reviewing the plan, the terraform apply command applies the changes described in the Terraform configuration to your infrastructure. It creates, updates, or deletes resources as necessary.

  4. terraform destroy:

     Copy codeterraform destroy
    

    The terraform destroy command is used to destroy all resources described in the Terraform configuration. It's essential to use this command carefully, as it will irreversibly delete infrastructure resources.

  5. terraform validate:

     Copy codeterraform validate
    

    This command checks the syntax and validity of Terraform configuration files, ensuring they adhere to the expected format and structure.

  6. terraform refresh:

     Copy codeterraform refresh
    

    The terraform refresh command updates the state file against real resources in the provider. It fetches the latest state of the infrastructure without making any changes.

  7. terraform output:

     luaCopy codeterraform output
    

    Use the terraform output command to display the output values from the Terraform state. It shows the values of any defined output variables.

  8. terraform state list:

     perlCopy codeterraform state list
    

    This command lists resources within the Terraform state, providing visibility into the current state of your infrastructure.

  9. terraform show:

     sqlCopy codeterraform show
    

    The terraform show command displays a human-readable output of the current state or a specific resource's state, allowing you to inspect the details of your infrastructure.

  10. terraform import:

    arduinoCopy codeterraform import
    

    With the terraform import command, you can import existing infrastructure into Terraform state, enabling you to manage it using Terraform.

  1. terraform fmt:

    bashCopy codeterraform fmt
    

    The terraform fmt command rewrites Terraform configuration files to a canonical format, ensuring consistency and readability across the codebase.

  2. terraform graph:

    Copy codeterraform graph
    

    Use the terraform graph command to generate a visual representation of the Terraform dependency graph. It provides insights into the relationships between resources and modules.

  3. terraform providers:

    Copy codeterraform providers
    

    The terraform providers command prints a tree of the providers used in the configuration, helping you understand which providers are being utilized.

  4. terraform workspace list:

    Copy codeterraform workspace list
    

    This command lists available workspaces, allowing you to manage multiple environments and configurations within a single Terraform project.

  5. terraform workspace select:

    csharpCopy codeterraform workspace select
    

    With the terraform workspace select command, you can switch to another existing workspace, enabling you to work on different configurations independently.

  6. terraform workspace new:

    arduinoCopy codeterraform workspace new
    

    Use the terraform workspace new command to create a new workspace, providing a clean environment for separate configurations or environments.

  7. terraform workspace delete:

    arduinoCopy codeterraform workspace delete
    

    The terraform workspace delete command deletes an existing workspace, allowing you to remove unnecessary or outdated environments from your project.

  8. terraform state mv:

    bashCopy codeterraform state mv
    

    With the terraform state mv command, you can move an item in the state, facilitating reorganization and management of Terraform resources.

  9. terraform state pull:

    perlCopy codeterraform state pull
    

    The terraform state pull command pulls the state from a remote backend, enabling you to synchronize state across different environments or team members.

  10. terraform state push:

    perlCopy codeterraform state push
    

    Use the terraform state push command to push the state to a remote backend, ensuring that the latest state is stored securely and accessible to all collaborators.

  11. terraform state rm:

    bashCopy codeterraform state rm
    

    This command removes items from the state, allowing you to clean up obsolete or unwanted resources from the Terraform state.

  12. terraform taint:

    Copy codeterraform taint
    

    The terraform taint command manually marks a resource for recreation, forcing Terraform to destroy and recreate it during the next apply operation.

  13. terraform untaint:

    Copy codeterraform untaint
    

    With the terraform untaint command, you can remove the 'tainted' state from a resource, allowing Terraform to manage it normally again.

  14. terraform login:

    Copy codeterraform login
    

    Use the terraform login command to save credentials for Terraform Cloud, enabling seamless authentication and access to remote services.

  15. terraform logout:

    bashCopy codeterraform logout
    

    The terraform logout command removes credentials for Terraform Cloud, ensuring secure access control and preventing unauthorized usage.

  16. terraform force-unlock:

    Copy codeterraform force-unlock
    

    This command releases a locked state, allowing you to unlock and regain control over a Terraform state that is stuck in a locked state.

  17. terraform plan -out:

    csharpCopy codeterraform plan -out=plan.tfplan
    

    The terraform plan -out command saves the generated plan to a file, allowing you to review and apply the plan at a later time.

  18. terraform apply -auto-approve:

    arduinoCopy codeterraform apply -auto-approve
    

    Use the terraform apply -auto-approve command to automatically apply changes without requiring manual approval, streamlining the deployment process.

  19. terraform apply -target=resource:

    Copy codeterraform apply -target=resource
    

    With the terraform apply -target command, you can apply changes only to a specific resource, ensuring targeted updates without affecting other resources.

  20. terraform destroy -target=resource:

    Copy codeterraform destroy -target=resource
    

    The terraform destroy -target command destroys a specific resource, allowing you to remove individual resources without affecting the rest of the infrastructure.

  21. terraform apply -var="key=value":

    csharpCopy codeterraform apply -var="key=value"
    

    This command sets a variable's value directly in the command line, providing flexibility and customization during Terraform execution.

  22. terraform apply -var-file=filename.tfvars:

    csharpCopy codeterraform apply -var-file=filename.tfvars
    

    The terraform apply -var-file command specifies a file containing variable definitions, allowing you to manage variables externally from the configuration files.

  23. terraform apply -var-file=filename.auto.tfvars:

    arduinoCopy codeterraform apply -var-file=filename.auto.tfvars
    

    With the terraform apply -var-file command, Terraform automatically loads variables from a file, simplifying the management of variable values.