Book Image

Terraform Cookbook

By : Mikael Krief
Book Image

Terraform Cookbook

By: Mikael Krief

Overview of this book

HashiCorp Configuration Language (HCL) has changed how we define and provision a data center infrastructure with the launch of Terraform—one of the most popular and powerful products for building Infrastructure as Code. This practical guide will show you how to leverage HashiCorp's Terraform tool to manage a complex infrastructure with ease. Starting with recipes for setting up the environment, this book will gradually guide you in configuring, provisioning, collaborating, and building a multi-environment architecture. Unlike other books, you’ll also be able to explore recipes with real-world examples to provision your Azure infrastructure with Terraform. Once you’ve covered topics such as Azure Template, Azure CLI, Terraform configuration, and Terragrunt, you’ll delve into manual and automated testing with Terraform configurations. The next set of chapters will show you how to manage a balanced and efficient infrastructure and create reusable infrastructure with Terraform modules. Finally, you’ll explore the latest DevOps trends such as continuous integration and continuous delivery (CI/CD) and zero-downtime deployments. By the end of this book, you’ll have developed the skills you need to get the most value out of Terraform and manage your infrastructure effectively.
Table of Contents (10 chapters)

Building a workflow for Terraform modules using GitHub Actions

In the Sharing a Terraform module using GitHub recipe of this chapter, we studied how to publish a Terraform module in the Terraform public registry by putting its code on GitHub. Then, we learned in the Testing a Terraform module with Terratest recipe how to write and run module tests using Terratest.

We will go further in this recipe by studying the implementation of an automated module publishing workflow using GitHub Actions.

Getting ready

To start this recipe, you must have assimilated the two recipes, Sharing a Terraform module using GitHub and Testing a Terraform module with Terratest, which include all of the bases and artifacts necessary for this recipe.

In this recipe, we will use the module code we wrote in the Testing Terraform module code with Terratest recipe, the source code for which is available here: https://github.com/PacktPublishing/Terraform-Cookbook/tree/master/CHAP05/testing-terratest/module.

Also, we...