Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/atulkamble/terraform-cheat-sheet
Terraform Commands Cheatsheet © 2021
https://github.com/atulkamble/terraform-cheat-sheet
aws azure cheatsheet cloud cloudnative gcp hashicorp hashicorp-terraform terraform
Last synced: about 1 month ago
JSON representation
Terraform Commands Cheatsheet © 2021
- Host: GitHub
- URL: https://github.com/atulkamble/terraform-cheat-sheet
- Owner: atulkamble
- License: apache-2.0
- Created: 2021-06-08T19:11:05.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-06-07T12:47:52.000Z (over 2 years ago)
- Last Synced: 2024-09-24T04:14:30.867Z (about 1 month ago)
- Topics: aws, azure, cheatsheet, cloud, cloudnative, gcp, hashicorp, hashicorp-terraform, terraform
- Homepage: https://atulkamble.github.io/Terraform-Cheat-Sheet/
- Size: 24.4 KB
- Stars: 4
- Watchers: 3
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
### Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
# [Terraform-Commands-Cheatsheet](https://atulkamble.github.io/Terraform-Commands-Cheatsheet/)
No need to run in terror from Terraform. Close that search engine tab and check out ultimate Terraform Cheatsheet by [Atul Kamble](https://atulkamble.github.io/).# Terraform Command Lines
- Terraform CLI tricks
```markdown terraform -install-autocomplete``` #Setup tab auto-completion, requires logging back in### Format and Validate Terraform code
- ```terraform fmt``` #format code per HCL canonical standard
- ```terraform validate``` #validate code for syntax
- ```terraform validate -backend=false``` #validate code skip backend validation### Initialize your Terraform working directory
- ```terraform init``` #initialize directory, pull down providers
- ```terraform init -get-plugins=false``` #initialize directory, do not download plugins
- ```terraform init -verify-plugins=false``` #initialize directory, do not verify plugins for Hashicorp signature### Plan, Deploy and Cleanup Infrastructure
- ```terraform apply --auto-approve``` #apply changes without being prompted to enter “yes”
- ```terraform destroy --auto-approve``` #destroy/cleanup deployment without being prompted for “yes”
- ```terraform plan -out plan.out``` #output the deployment plan to plan.out
- ```terraform apply plan.out``` #use the plan.out plan file to deploy infrastructure
- ```terraform plan -destroy``` #outputs a destroy plan
- ```terraform apply -target=aws_instance.my_ec2``` #only apply/deploy changes to the targeted resource
- ```terraform apply -var my_region_variable=us-east-1``` #pass a variable via command-line while applying a configuration
- ```terraform apply -lock=true``` #lock the state file so it can’t be modified by any other Terraform apply or modification action(possible only where backend allows locking)
- ```terraform apply refresh=false``` # do not reconcile state file with real-world resources(helpful with large complex deployments for saving deployment time)
- ```terraform apply --parallelism=5``` #number of simultaneous resource operations
- ```terraform refresh``` #reconcile the state in Terraform state file with real-world resources
- ```terraform providers``` #get information about providers used in current configuration### Terraform Workspaces
- ```terraform workspace new mynewworkspace``` #create a new workspace
- ```terraform workspace select default``` #change to the selected workspace
- ```terraform workspace list``` #list out all workspaces### Terraform State Manipulation
- ```terraform state show aws_instance.my_ec2``` #show details stored in Terraform state for the resource
- ```terraform state pull > terraform.tfstate``` #download and output terraform state to a file
- ```terraform state mv aws_iam_role.my_ssm_role module.custom_module``` #move a resource tracked via state to different module
- ```terraform state replace-provider hashicorp/aws registry.custom.com/aws``` #replace an existing provider with another
- ```terraform state list``` #list out all the resources tracked via the current state file
- ```terraform state rm aws_instance.myinstace``` #unmanage a resource, delete it from Terraform state file### Terraform Import And Outputs
- ```terraform import aws_instance.new_ec2_instance i-abcd1234``` #import EC2 instance with id i-abcd1234 into the Terraform resource named “new_ec2_instance” of type “aws_instance”
- ```terraform import 'aws_instance.new_ec2_instance[0]' i-abcd1234``` #same as above, imports a real-world resource into an instance of Terraform resource
- ```terraform output``` #list all outputs as stated in code
- ```terraform output instance_public_ip``` # list out a specific declared output
- ```terraform output -json``` #list all outputs in JSON format### Terraform Miscelleneous commands
- ```terraform version``` #display Terraform binary version, also warns if version is old
- ```terraform get -update=true``` #download and update modules in the “root” module.### Terraform Console(Test out Terraform interpolations)
- ```echo 'join(",",["foo","bar"])' | terraform console``` #echo an expression into terraform console and see its expected result as output
- ```echo '1 + 5' | terraform console``` #Terraform console also has an interactive CLI just enter “terraform console”
- ```echo "aws_instance.my_ec2.public_ip" | terraform console``` #display the Public IP against the “my_ec2” Terraform resource as seen in the Terraform state file### Terraform Graph(Dependency Graphing)
- ```terraform graph | dot -Tpng > graph.png``` #produce a PNG diagrams showing relationship and dependencies between Terraform resource in your configuration/code### Terraform Taint/Untaint(mark/unmark resource for recreation -> delete and then recreate)
- ```terraform taint aws_instance.my_ec2``` #taints resource to be recreated on next apply
- ```terraform untaint aws_instance.my_ec2``` #Remove taint from a resource
- ```terraform force-unlock LOCK_ID``` #forcefully unlock a locked state file, LOCK_ID provided when locking the State file beforehand### Terraform Cloud
- ```terraform login``` #obtain and save API token for Terraform cloud
- ```terraform logout``` #Log out of Terraform Cloud, defaults to hostname app.terraform.io# Technical Author Profile (Study Guide + Notes):
- [LinkedIn: atuljkamble](https://www.linkedin.com/in/atuljkamble)
- [Twitter: atul_kamble](https://www.twitter.com/atul_kamble)
- [Github: atulkamble](https://www.github.com/atulkamble)
- [Medium: atuljkamble](https://atuljkamble.medium.com/)
- [HashNode: atulkamble](https://hashnode.com/@atulkamble)
- [Dev: atulkamble](https://dev.to/atulkamble)
- [Twitch: atulkamble](https://www.twitch.tv/atulkamble)
- [Kaggle: atuljkamble](https://www.kaggle.com/atuljkamble)
- [GitLab: atulkamble](https://gitlab.com/atulkamble)