https://github.com/sanix-darker/terraform_learn
terraform learn
https://github.com/sanix-darker/terraform_learn
learning terraform tutorial
Last synced: 6 months ago
JSON representation
terraform learn
- Host: GitHub
- URL: https://github.com/sanix-darker/terraform_learn
- Owner: Sanix-Darker
- Created: 2024-06-12T13:42:20.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-12T13:43:35.000Z (almost 2 years ago)
- Last Synced: 2025-01-29T23:27:52.618Z (about 1 year ago)
- Topics: learning, terraform, tutorial
- Language: HTML
- Homepage: https://sanix-darker.github.io/terraform_learn/terraform.html
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Terraform Learning Map
## LEARN MAP

[CHECK THE INTERACTIVE MAP](https://sanix-darker.github.io/terraform_learn/terraform.html)
## CONCEPTS
- What is Terraform?
- Infrastructure as Code (IaC)
- Declarative language
- History of Terraform
- Installation
- Using package manager (brew, apt, yum)
- Downloading from HashiCorp
## Basic Concepts
- Infrastructure as Code
- Declarative Configuration
- Providers
- Resources
- State Management
- State files
- Remote state
## Configuration Language
- HCL (HashiCorp Configuration Language)
- Syntax
- Variables
- Input variables
- Output variables
- Data types
- Terraform Blocks
- Providers
- Resources
- Data sources
- Outputs
- Terraform Commands
- init
- plan
- apply
- destroy
## Providers
- What are providers?
- Popular Providers
- AWS
- Azure
- Google Cloud
- Kubernetes
- Docker
- Configuring Providers
- Provider block
- Authentication
## Resources and Data Sources
- Defining Resources
- Resource Attributes
- Meta-Arguments
- depends_on
- count
- for_each
- Data Sources
- Using data sources
- Data source attributes
## Variables and Outputs
- Input Variables
- Defining variables
- Variable types
- Default values
- Variable files
- Output Variables
- Defining outputs
- Output values
## State Management
- Purpose of State
- State Files
- Remote State
- Backends
- Local
- S3
- Azure Storage
- Google Cloud Storage
- State locking
- State versioning
- Managing State
- terraform state commands
- Importing existing resources
## Modules
- What are Modules?
- Creating Modules
- Using Modules
- Module sources
- Passing inputs to modules
- Module outputs
- Public Module Registry
- Terraform Registry
## Workspaces
- Introduction to Workspaces
- Using Workspaces
- Creating workspaces
- Switching workspaces
## Provisioners
- When to use Provisioners
- Common Provisioners
- local-exec
- remote-exec
## Advanced Concepts
- Templating with Terraform
- Using the templatefile function
- Dynamic Blocks
- Terraform Functions
- Built-in functions
- Writing custom functions
- Managing Dependencies
- Implicit and explicit dependencies
- Handling Secrets
- Environment variables
- Vault integration
## Best Practices
- Code Organization
- Version Control
- DRY (Don't Repeat Yourself) principle
- Module Reusability
- Security considerations
- Storing secrets
- IAM roles and permissions
- Testing
- Using terraform validate
- Integration testing with Terratest
## Integrations
- CI/CD with Terraform
- GitHub Actions
- GitLab CI
- Jenkins
- Configuration Management
- Ansible
- Chef
- Puppet
## Resources
- Official Documentation
- Tutorials and Courses
- HashiCorp Learn
- Udemy
- Coursera
- A Cloud Guru
- Books
- "Terraform: Up & Running" by Yevgeniy Brikman
- "Infrastructure as Code" by Kief Morris
- Online Communities
- Terraform Discuss
- Stack Overflow
- Reddit (r/Terraform)
- Practice Projects
- Deploying a web application
- Setting up a VPC
- Automating infrastructure provisioning
## Conclusion
- Keeping up-to-date
- HashiCorp Blog
- Release notes
- Community events