A curated list of resources on HashiCorp's Terraform.
Your contributions are welcome!
Contents
Official Resources
Community
Books
Tutorials and Blog Posts
- A Comprehensive Guide to Terraform
- Easily Deploy A Seneca Microservice to ECS with Wercker and Terraform: Part I-III
- Tutorial: How to Use Terraform to Deploy OpenStack Workloads
- Write your own Terraform provider: Part 1
- The Segment AWS Stack
- Terraform: Beyond the Basics with AWS
- Deploying Discourse with Terraform
- How we deploy from Slack using Jenkins, Terraform, Docker and Ansible
- Bootstrapping Docker Infrastructure With Terraform
- Two Weeks with Terraform
- Using modules in Terraform
- Terraform Modules for Fun and Profit
- Using Terraform for Cloud Deployments - Part 1
- Terraform, VPC, and why you want a tfstate file per env
- Sharing data between Terraform configurations
Community Modules
- segmentio/stack - A set of Terraform modules for configuring production infrastructure with AWS, Docker, and ECS.
- terraform-ecs-jenkins - Provisions Jenkins on AWS ECS using Terraform.
- tf_aws_bastion_s3_keys - A Terraform module for creating bastion host on AWS EC2.
- terraform-static-website-s3-cloudfront - Terraform template to create static website on AWS S3 & Cloudfront based on variables.
- tf_aws_vpc_only - A Terraform module to provide only VPC (without subnets) in AWS.
- tf_aws_asg_elb - A Terraform Module for creating an Auto-Scaling Group and Launch Configuration for use with an Elastic Load Balancer.
- tf_aws_availability_zones_cfn - Get availability zones for your AWS region/account from Cloudformation.
- tf_aws_ubuntu_ami - Easy way to lookup Ubuntu AMIs with Terraform.
- tf_aws_sg - A Terraform module with a collection of common security group settings.
- tf_aws_coreos_ami - An easy way to lookup CoreOS AMIs with terraform.
- tf_aws_private_subnet_nat_gateway - A Terraform module to create private subnets with NAT Gateway in AWS.
- tf_aws_rds - A Terraform Template for RDS.
- tf_aws_vpc - A terraform module to provide a VPC in AWS.
- tf_aws_availability_zones - Lists of AZs your account has access to.
- tf_aws_virttype - Lookup the virtualization types (hvm or pv) supported for AWS instance types.
- tf_aws_nat - NAT instances for AWS.
- rancher-terraform-digitalocean - Terraform module for a rancher server on digitalocean.
Tools
- Atlantis - A unified workflow for collaborating on Terraform through GitHub.
- terraform-docs - A quick utility to generate docs from terraform modules.
- terraform.py - Ansible dynamic inventory script for parsing Terraform state files.
- terraform-provisioner - A tool for managing multiple provisions of the same Terraform scripts.
- terraboot - DSL to generate a terraform configuration and run it.
- terraform-provider-pingdom - Terraform provider to manage pingdom resources.
- terragrunt - Terragrunt is a thin wrapper for Terraform that supports locking for Terraform state and enforces best practices.
- tfenv - Terraform version manager inspired by rbenv.
Talks and Podcasts
- Orchestrating Containers with Terraform and Consul
- Automating Infrastructure at HashiCorp with Mitchell Hashimoto
- Building Scalable, Repeatable Infrastructure in the Cloud with Terraform
- Evolving Your Infrastructure with Terraform
- Going Multi-Cloud with Terraform and Nomad
- Running a Terraform Environment at Scale
- Terraforming the Composable World
- State of Terraform Providerland
- Untangling Terraform Through Refactoring
- Terraform Modules and Continuous Deployments
- Terraform At Scale
- Production ChaosMonkey with Terraform
- Templating your Terraform
- Terraform w/ Lee Trout
- Using Terraform to Build a Hybrid Cloud
License
To the extent possible under law, Shuaib Yunus has waived all copyright and related or neighboring rights to this work.