Awesome
Terramagic CLI
Terramagic is a command-line interface tool that makes it easy to create and manage Terraform projects.
Motivation
Creating a new Terraform project from scratch can be time-consuming and error-prone. With Terramagic, you can quickly generate a template for your project and customize it to your needs.
Requirements
Python 3.9 or higher
Installation
You can easily install Terramagic using pip:
pip3 install terramagic
Usage
Creating a new project
To create a new Terraform project, use the create command:
terramagic create --name <project_name>
For example, to create a project called "infra" automatically 3 environments are created ("development", "staging" and "production") and respective tfvars, run:
terramagic create --name infra
This will generate a new directory called "infra" with the following structure:
infra
├── backend.tf
├── environments
│ ├── development
│ │ └── development.tfvars
│ ├── production
│ │ └── production.tfvars
│ └── staging
│ └── staging.tfvars
├── main.tf
├── main.tfvars
├── modules
│ ├── cluster
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ └── variables.tf
│ ├── instance
│ │ ├── main.tf
│ │ ├── outputs.tf
│ │ └── variables.tf
│ └── vpc
│ ├── main.tf
│ ├── outputs.tf
│ └── variables.tf
├── outputs.tf
├── providers
│ └── provider.tf
└── variables.tf
You can then edit these files to define your infrastructure resources and variables.
Deleting a project
To delete an existing project, use the delete command and specify the project name:
terramagic delete --name <project_name>
For example, to delete the "myapp" project, run:
terramagic delete --name infra
Help For detailed information about available commands and options, run:
terramagic --help
This will display the following message:
Usage: terramagic [OPTIONS] COMMAND [ARGS]...
ClI tool to create Terraform project
Options:
-v, --version Show version
--help Show this message and exit.
Commands:
create Create a new Terraform project with specified name and environment
remove Delete the project
Enjoy using Terramagic to simplify your Terraform workflow!