Skip to content

Learning to build an Azure lab environment using Terraform.

License

Notifications You must be signed in to change notification settings

bentman/TerraformAzure

Repository files navigation

Azure with Terraform Learning Journey! WIP

Build Azure lab environments using Terraform. Journey into mastering infrastructure as code by creating a real-world cloud architecture that can also be used as a learning lab. Gain hands-on experience with tools like GitHub, Azure DevOps pipelines, and configuring virtual machines. This project focuses on incremental learning to develop skills one step at a time. 🚀🌐🧭

Bonus Tips

  • Start with smaller, independent modules for easier testing and debugging.
    • EXAMPLE 1: .\v-network.md (Lab Network - Base for remaining modules)
    • EXAMPLE 2: .\modules\vm-jumpbox (Windows Client and Linux Desktop)
      • NOTE: Full automation of jumpbox capabilities are "WIP"
    • EXAMPLE 3: .\modules\vm-dc1 (Domain Controller with Dev Tools)
    • EXAMPLE 4: .\modules\sql-ha (Domain Controller w/ SQL Always On Cluster)
  • Utilize Terraform state management for consistent deployments.
  • Follow IaC best practices for clean and maintainable code.
  • Look for *.md files, comments ('#'), and instructions (more '#' & '/') throughout!

Ready to Start?

... me too!

Step 1: Set Up Your Toolkit

Step 2: Deploy Network & Virtual Machines

Step 3: Connect & Automate

  • Link your Azure account with your GitHub repository.
  • Set up GitHub Actions for automated workflows.
  • Connect your GitHub repository with Azure DevOps.
  • Prepare Azure DevOps for pipeline creation and Terraform integration.

Step 4: Build Your Foundation

  • Write a YAML pipeline for Terraform deployments and test it.
  • Use Terraform to create and destroy a sub-tenant for controlled deployments.
  • Apply simple configurations like Azure AD, storage blobs, or basic applications (e.g., WordPress).
  • Destroy them afterwards for a solid foundation.

Step 5: Learn & Expand

  • With each apply/destroy cycle, build upon previous components, creating a more complex lab.
  • Use Git branches to manage different stages of your lab's evolution.
  • Continuously learn and add new features, exploring advanced Terraform techniques and community resources.

Helpful Links

Contributions

Contributions are welcome! Please open an issue or submit a pull request if you have suggestions or enhancements.

License

This script is distributed without any warranty; use at your own risk. This project is licensed under the GNU General Public License v3. See GNU GPL v3 for details.

About

Learning to build an Azure lab environment using Terraform.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published