Terraform workspaces
Software development requires multiple environments. You develop software within your workspace, deploy it into the development environment, unit test it, and then promote the tested code to a test environment. Your QA team will test the code extensively in the test environment, and once all test cases pass, you can promote your code to production.
That means you must maintain a similar infrastructure in all environments. With an IaC tool such as Terraform, infrastructure is represented as code, and we must manage our code to fit multiple environments. But Terraform isn’t just code; it also contains state files, and we must maintain state files for every environment.
Suppose you want to create three resource groups, terraform-exercise-dev
, terraform-exercise-test
, and terraform-exercise-prod
. Each resource group will contain a similar set of infrastructure with similar properties. For example, each resource group includes an Ubuntu Virtual Machine...