Cursor Skill

setting-up-terraform

Set up Terraform infrastructure-as-code for cloud resources, including provider configuration, modules, state management, and CI integration.

LLM Mart · 0 points · 24 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download spencerpauly-awesome-cursor-skills-resources_setting-up-terraform-99cd265.zip · 1 KB
Part of spencerpauly/awesome-cursor-skills — 65 skills

Install

skills CLI npx skills add https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/setting-up-terraform
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install spencerpauly-awesome-cursor-skills@llmmart
Git git clone https://github.com/spencerpauly/awesome-cursor-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole spencerpauly/awesome-cursor-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Setup Terraform

Use this skill when the user asks to set up Terraform, infrastructure as code, cloud provisioning, or IaC.

Steps

  1. Initialize the project structure

    infra/
    ├── main.tf
    ├── variables.tf
    ├── outputs.tf
    ├── terraform.tfvars      # (gitignored)
    ├── providers.tf
    └── modules/
    
  2. Configure the provider — in providers.tf:

    terraform {
      required_version = ">= 1.5"
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = "~> 5.0"
        }
      }
      backend "s3" {
        bucket = "my-terraform-state"
        key    = "prod/terraform.tfstate"
        region = "us-east-1"
      }
    }
    
    provider "aws" {
      region = var.aws_region
    }
    

    Adapt the provider for the user's cloud (AWS, GCP, Azure).

  3. Define variables — in variables.tf, define inputs with types, descriptions, and defaults:

    variable "aws_region" {
      type        = string
      default     = "us-east-1"
      description = "AWS region for resources"
    }
    
    variable "environment" {
      type        = string
      description = "Deployment environment (dev, staging, prod)"
    }
    
  4. Create resources — in main.tf, define the infrastructure the user needs (VPC, RDS, ECS, S3, Lambda, etc.). Extract reusable patterns into modules under modules/.

  5. Configure remote state — use an S3 bucket (AWS), GCS bucket (GCP), or Azure Storage for state. Enable state locking with DynamoDB (AWS).

  6. Add to .gitignore

    *.tfstate
    *.tfstate.*
    .terraform/
    terraform.tfvars
    *.tfvars
    
  7. Add CI pipeline — create a GitHub Actions workflow that runs terraform fmt -check, terraform validate, and terraform plan on PRs, with terraform apply on merge to main (with approval gate).

Notes

  • Never commit state files or .tfvars with secrets.
  • Use workspaces or separate state files for dev/staging/prod.
  • Pin provider versions to avoid breaking changes.
  • Run terraform fmt before committing.
Files (awesome-cursor-skills)
  • SKILL.md 2.3 KB
    ---
    name: setting-up-terraform
    description: Set up Terraform infrastructure-as-code for cloud resources, including provider configuration, modules, state management, and CI integration.
    ---
    
    # Setup Terraform
    
    Use this skill when the user asks to set up Terraform, infrastructure as code, cloud provisioning, or IaC.
    
    ## Steps
    
    1. **Initialize the project structure**
    
       ```
       infra/
       ├── main.tf
       ├── variables.tf
       ├── outputs.tf
       ├── terraform.tfvars      # (gitignored)
       ├── providers.tf
       └── modules/
       ```
    
    2. **Configure the provider** — in `providers.tf`:
    
       ```hcl
       terraform {
         required_version = ">= 1.5"
         required_providers {
           aws = {
             source  = "hashicorp/aws"
             version = "~> 5.0"
           }
         }
         backend "s3" {
           bucket = "my-terraform-state"
           key    = "prod/terraform.tfstate"
           region = "us-east-1"
         }
       }
    
       provider "aws" {
         region = var.aws_region
       }
       ```
    
       Adapt the provider for the user's cloud (AWS, GCP, Azure).
    
    3. **Define variables** — in `variables.tf`, define inputs with types, descriptions, and defaults:
    
       ```hcl
       variable "aws_region" {
         type        = string
         default     = "us-east-1"
         description = "AWS region for resources"
       }
    
       variable "environment" {
         type        = string
         description = "Deployment environment (dev, staging, prod)"
       }
       ```
    
    4. **Create resources** — in `main.tf`, define the infrastructure the user needs (VPC, RDS, ECS, S3, Lambda, etc.). Extract reusable patterns into modules under `modules/`.
    
    5. **Configure remote state** — use an S3 bucket (AWS), GCS bucket (GCP), or Azure Storage for state. Enable state locking with DynamoDB (AWS).
    
    6. **Add to `.gitignore`**
    
       ```
       *.tfstate
       *.tfstate.*
       .terraform/
       terraform.tfvars
       *.tfvars
       ```
    
    7. **Add CI pipeline** — create a GitHub Actions workflow that runs `terraform fmt -check`, `terraform validate`, and `terraform plan` on PRs, with `terraform apply` on merge to main (with approval gate).
    
    ## Notes
    
    - Never commit state files or `.tfvars` with secrets.
    - Use workspaces or separate state files for dev/staging/prod.
    - Pin provider versions to avoid breaking changes.
    - Run `terraform fmt` before committing.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related