Catégorie 04SKILLS

Terraform Skill

Terraform IaC — infrastructure Drupal as Code

Installation
Linux/macOS (tfenv)git clone https://github.com/tfutils/tfenv.git ~/.tfenv echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bashrc tfenv install latest && tfenv use latest
macOS (Homebrew)brew tap hashicorp/tap && brew install hashicorp/tap/terraform
Skill Claude — Globalmkdir -p ~/.claude/skills/terraform
SKL
À propos

Skill Claude pour provisionner l'infrastructure d'hébergement Drupal avec Terraform. Couvre les providers AWS/GCP/Hetzner, la gestion du state (remote backend S3/GCS), les modules réutilisables, les workspaces pour les environnements, et les patterns spécifiques Drupal (RDS, ElastiCache, EFS, CloudFront).

Commandes
CommandeDescription
terraform initInitialiser le dossier et télécharger les providers
terraform plan -out=tfplanPrévisualiser les changements (sauvegarder le plan)
terraform apply tfplanAppliquer le plan préalablement calculé
terraform state listLister toutes les ressources dans le state
terraform destroy -target=resourceDétruire une ressource spécifique (précaution !)
terraform workspace new stagingCréer un workspace pour l'environnement staging
terraform fmt -recursiveFormater tout le code Terraform selon le standard
terraform validateValider la syntaxe et la cohérence des fichiers
Exemples
RDS MariaDB pour DrupalCODE
"Génère un module Terraform 'drupal-db' pour AWS qui crée :
- aws_db_subnet_group avec les subnets privés
- aws_db_instance MariaDB 10.11, Multi-AZ en prod
- aws_security_group permettant le port 3306 depuis les EC2 du VPC
- aws_ssm_parameter pour stocker le DATABASE_URL de manière sécurisée
Variables : env, instance_class, allocated_storage, multi_az"
EFS pour les fichiers Drupal partagésCODE
"Génère les ressources Terraform pour un EFS AWS utilisé par Drupal :
- aws_efs_file_system avec chiffrement at-rest
- aws_efs_mount_target dans chaque AZ du VPC
- aws_efs_access_point pour le dossier sites/default/files
- aws_security_group autorisant NFS (port 2049) depuis les EC2
- Output : efs_id et efs_dns pour le montage dans user_data"
Pipeline CI Terraform (GitLab)CODE
"Génère un stage GitLab CI pour Terraform qui :
1. Stage 'terraform:validate' : terraform fmt -check && terraform validate
2. Stage 'terraform:plan' sur toute branche : plan avec artifact tfplan
3. Stage 'terraform:apply' sur main uniquement, manuel : apply tfplan
Variables CI : AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, TF_VAR_env"