{"id":17168721,"url":"https://github.com/sanix-darker/terraform_learn","last_synced_at":"2026-07-13T22:31:20.776Z","repository":{"id":244068382,"uuid":"814177902","full_name":"Sanix-Darker/terraform_learn","owner":"Sanix-Darker","description":"terraform learn","archived":false,"fork":false,"pushed_at":"2024-06-12T13:43:35.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T23:38:00.855Z","etag":null,"topics":["learning","terraform","tutorial"],"latest_commit_sha":null,"homepage":"https://sanix-darker.github.io/terraform_learn/terraform.html","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sanix-Darker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-12T13:42:20.000Z","updated_at":"2024-06-12T13:44:56.000Z","dependencies_parsed_at":"2024-06-12T19:55:29.630Z","dependency_job_id":null,"html_url":"https://github.com/Sanix-Darker/terraform_learn","commit_stats":null,"previous_names":["sanix-darker/terraform_learn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sanix-Darker/terraform_learn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanix-Darker%2Fterraform_learn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanix-Darker%2Fterraform_learn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanix-Darker%2Fterraform_learn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanix-Darker%2Fterraform_learn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sanix-Darker","download_url":"https://codeload.github.com/Sanix-Darker/terraform_learn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanix-Darker%2Fterraform_learn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35439213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["learning","terraform","tutorial"],"created_at":"2024-10-14T23:12:41.153Z","updated_at":"2026-07-13T22:31:20.761Z","avatar_url":"https://github.com/Sanix-Darker.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Learning Map\n\n## LEARN MAP\n\n![map](./terraform.svg)\n\n[CHECK THE INTERACTIVE MAP](https://sanix-darker.github.io/terraform_learn/terraform.html)\n\n## CONCEPTS\n\n- What is Terraform?\n  - Infrastructure as Code (IaC)\n  - Declarative language\n- History of Terraform\n- Installation\n  - Using package manager (brew, apt, yum)\n  - Downloading from HashiCorp\n\n## Basic Concepts\n- Infrastructure as Code\n- Declarative Configuration\n- Providers\n- Resources\n- State Management\n  - State files\n  - Remote state\n\n## Configuration Language\n- HCL (HashiCorp Configuration Language)\n  - Syntax\n  - Variables\n    - Input variables\n    - Output variables\n  - Data types\n- Terraform Blocks\n  - Providers\n  - Resources\n  - Data sources\n  - Outputs\n- Terraform Commands\n  - init\n  - plan\n  - apply\n  - destroy\n\n## Providers\n- What are providers?\n- Popular Providers\n  - AWS\n  - Azure\n  - Google Cloud\n  - Kubernetes\n  - Docker\n- Configuring Providers\n  - Provider block\n  - Authentication\n\n## Resources and Data Sources\n- Defining Resources\n- Resource Attributes\n- Meta-Arguments\n  - depends_on\n  - count\n  - for_each\n- Data Sources\n  - Using data sources\n  - Data source attributes\n\n## Variables and Outputs\n- Input Variables\n  - Defining variables\n  - Variable types\n  - Default values\n  - Variable files\n- Output Variables\n  - Defining outputs\n  - Output values\n\n## State Management\n- Purpose of State\n- State Files\n- Remote State\n  - Backends\n    - Local\n    - S3\n    - Azure Storage\n    - Google Cloud Storage\n  - State locking\n  - State versioning\n- Managing State\n  - terraform state commands\n  - Importing existing resources\n\n## Modules\n- What are Modules?\n- Creating Modules\n- Using Modules\n  - Module sources\n  - Passing inputs to modules\n  - Module outputs\n- Public Module Registry\n  - Terraform Registry\n\n## Workspaces\n- Introduction to Workspaces\n- Using Workspaces\n  - Creating workspaces\n  - Switching workspaces\n\n## Provisioners\n- When to use Provisioners\n- Common Provisioners\n  - local-exec\n  - remote-exec\n\n## Advanced Concepts\n- Templating with Terraform\n  - Using the templatefile function\n- Dynamic Blocks\n- Terraform Functions\n  - Built-in functions\n  - Writing custom functions\n- Managing Dependencies\n  - Implicit and explicit dependencies\n- Handling Secrets\n  - Environment variables\n  - Vault integration\n\n## Best Practices\n- Code Organization\n- Version Control\n- DRY (Don't Repeat Yourself) principle\n- Module Reusability\n- Security considerations\n  - Storing secrets\n  - IAM roles and permissions\n- Testing\n  - Using terraform validate\n  - Integration testing with Terratest\n\n## Integrations\n- CI/CD with Terraform\n  - GitHub Actions\n  - GitLab CI\n  - Jenkins\n- Configuration Management\n  - Ansible\n  - Chef\n  - Puppet\n\n## Resources\n- Official Documentation\n- Tutorials and Courses\n  - HashiCorp Learn\n  - Udemy\n  - Coursera\n  - A Cloud Guru\n- Books\n  - \"Terraform: Up \u0026 Running\" by Yevgeniy Brikman\n  - \"Infrastructure as Code\" by Kief Morris\n- Online Communities\n  - Terraform Discuss\n  - Stack Overflow\n  - Reddit (r/Terraform)\n- Practice Projects\n  - Deploying a web application\n  - Setting up a VPC\n  - Automating infrastructure provisioning\n\n## Conclusion\n- Keeping up-to-date\n  - HashiCorp Blog\n  - Release notes\n  - Community events\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanix-darker%2Fterraform_learn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanix-darker%2Fterraform_learn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanix-darker%2Fterraform_learn/lists"}