Terraform is not a cloud-agnostic tool It’s not a magic wand that gives you power over all clouds and systems. It embraces all major Cloud Providers and provides a common language to orchestrate your infrastructure resources.
Terraform
● A provisioning declarative tool that based on Infrastructure as a Code paradigm
● Uses own syntax - HCL (Hashicorp Configuration Language)
● Written in Golang
● Helps to evolve you infrastructure, safely and predictably
● Applies Graph Theory to IaaC
● Terraform is a multipurpose composition tool:
○ Composes multiple tiers (SaaS/PaaS/IaaS)
○ A plugin-based architecture model
● Open-source. Backed by Hashicorp company and Hashicorp Tao (Guide/Principles/Design)
Terraform Core: Init
1. This command will never delete your existing configuration or state.
2. Checkpoint → https://checkpoint.hashicorp.com/
3. .terraformrc → enable plugin_cache_dir, disable checkpoint
4. Parsing configurations, a syntax check
5. Checking for provisioners/providers (by precedence, only once)→ “.”, terraform_bin_dir, terraform.d/plugins/linux_amd64 .terraform/plugins/linux_amd64
6. File lock.json contains sha-512 plugin hashes (.terraform)
7. Loading backend config ( if it’s available, local instead ) Backend Initialization: Storage for Terraform state file. example
Terraform Core: Plan + Apply
1. Starting Plugins: Provisioners/Providers
2. Building graph a. Terraform core traverses each vertex and requests each provider using parallelism 3. Providers syntax check: resource validation
4. If backend ==
Comments
Post a Comment