Générateur de modules Terraform

VérifiéSûr

Crée des modules Terraform standardisés avec une structure de fichiers optimale et des bonnes pratiques.

Spar Skills Guide Bot
DevOpsIntermédiaire
04/08/2026
Claude CodeCursorCodex
#terraform#infrastructure-as-code#module-scaffolding#aws#iac

Recommandé pour

Synthèse automatique

Ce skill génère l'ossature standard d'un nouveau module Terraform (main.tf, variables.tf, outputs.tf, versions.tf, README.md et exemple d'utilisation) en appliquant les conventions et bonnes pratiques Terraform.

Points forts

  • Produit une arborescence de fichiers normalisée et cohérente pour chaque nouveau module
  • Impose des variables typées avec descriptions, valeurs par défaut et règles de validation
  • Inclut les contraintes de version Terraform et provider dans versions.tf
  • Fournit une checklist de validation finale (formatage, tags, documentation, nommage)

Limites

  • Le contenu des ressources reste générique : le module produit doit être relu et complété selon le provider réel
  • Les tableaux Inputs/Outputs du README ne sont pas générés automatiquement (terraform-docs mentionné comme étape ultérieure)
  • Aucune exécution de terraform fmt, validate ou plan, et pas de tests Terratest
Quand l'utiliser

À utiliser lorsqu'on démarre un nouveau module Terraform ou qu'on veut uniformiser la structure de modules existants (VPC, ECS, S3, RDS).

Quand l'éviter

À éviter si l'on doit modifier un module existant complexe ou déboguer un plan Terraform, car le skill ne fait que scaffoldier une structure.

Analyse de sécurité

Sûr
Score qualité82/100

The skill only provides guidance for creating Terraform module files and templates. It does not declare or instruct use of any execution tools, network access, destructive commands, or data exfiltration. All actions are file scaffolding and best-practice documentation.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

AWS VPC module
Create a new Terraform module named vpc-main for AWS that provisions a VPC with public and private subnets, and include the standard file structure plus a basic example.
S3 module scaffold
Scaffold a Terraform module for an AWS S3 bucket with variables for versioning, encryption and custom tags, and generate versions.tf and a README with a usage example.
Standardize module layout
Set up the standard Terraform module structure (main.tf, variables.tf, outputs.tf, versions.tf, README.md) for a new RDS module and add an examples/basic/main.tf.

name: terraform-module-scaffolder description: Scaffolds new Terraform modules with standardized structure including main.tf, variables.tf, outputs.tf, versions.tf, and README.md. This skill should be used when users want to create a new Terraform module, set up module structure, or need templates for common infrastructure patterns like VPC, ECS, S3, or RDS modules.

Terraform Module Scaffolder

This skill helps create well-structured Terraform modules following best practices and conventions.

When to Use

Use this skill when:

  • Creating a new Terraform module from scratch
  • Setting up standardized module structure
  • Need templates for common AWS/Azure/GCP resources
  • Want to ensure module follows Terraform conventions

Module Structure

Generate modules with this standard structure:

module-name/
├── main.tf           # Primary resource definitions
├── variables.tf      # Input variables
├── outputs.tf        # Output values
├── versions.tf       # Provider and Terraform version constraints
├── README.md         # Module documentation
└── examples/         # Usage examples (optional)
    └── basic/
        └── main.tf

Instructions

1. Gather Requirements

Ask the user:

  • What is the module name?
  • What cloud provider (AWS, Azure, GCP, multi-cloud)?
  • What resources should the module create?
  • Any specific requirements or constraints?

2. Create Core Files

main.tf - Include:

  • Resource definitions with clear naming
  • Local values for computed attributes
  • Data sources if needed

variables.tf - Include:

  • Required variables first, then optional
  • Clear descriptions for each variable
  • Sensible defaults where appropriate
  • Type constraints (string, number, bool, list, map, object)
  • Validation rules for critical inputs

outputs.tf - Include:

  • Resource IDs and ARNs
  • Connection information (endpoints, URLs)
  • Computed attributes that other modules might need
  • Clear descriptions for each output

versions.tf - Include:

  • Terraform version constraint (use ~> for minor version)
  • Provider version constraints
  • Required providers block

README.md - Include:

  • Module description and purpose
  • Usage example
  • Requirements section
  • Inputs table (can be auto-generated later)
  • Outputs table (can be auto-generated later)

3. Apply Best Practices

  • Use consistent naming: resource_type-purpose (e.g., s3-logs, vpc-main)
  • Add tags to all taggable resources with variables for custom tags
  • Use terraform fmt formatting
  • Include lifecycle blocks where appropriate
  • Add depends_on only when implicit dependencies don't work
  • Use count or for_each for conditional resources

4. Add Example Usage

Create examples/basic/main.tf showing minimal working example:

module "example" {
  source = "../.."
  
  # Required variables
  name = "example"
  
  # Optional variables with common values
  tags = {
    Environment = "dev"
    ManagedBy   = "terraform"
  }
}

Validation Checklist

Before completing, verify:

  • [ ] All files use consistent formatting (terraform fmt)
  • [ ] Variables have descriptions and appropriate types
  • [ ] Outputs have descriptions
  • [ ] Version constraints are specified
  • [ ] README includes usage example
  • [ ] Module follows naming conventions
  • [ ] Tags are configurable via variables

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/terraform-module-scaffolder-mse7io4h' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/terraform-module-scaffolder-mse7io4h/download' --output '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md.part' && mv '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md.part' '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && test -s '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/terraform-module-scaffolder' && cp -R '.skill-downloads/terraform-module-scaffolder-mse7io4h' '.claude/skills/terraform-module-scaffolder'

Cursor
test -f '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && test -s '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/terraform-module-scaffolder' && cp -R '.skill-downloads/terraform-module-scaffolder-mse7io4h' '.cursor/skills/terraform-module-scaffolder'

Codex
test -f '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && test -s '.skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/terraform-module-scaffolder' && cp -R '.skill-downloads/terraform-module-scaffolder-mse7io4h' '.agents/skills/terraform-module-scaffolder'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/terraform-module-scaffolder-mse7io4h'

openskills read 'terraform-module-scaffolder-mse7io4h'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/terraform-module-scaffolder-mse7io4h/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires