Skip to main content
generating-infrastructure-as-code Execute use when generating infrastructure as code configurations. Trigger with phrases like "create Terraform config", "generate CloudFormation template", "write Pulumi code", or "IaC for AWS/GCP/Azure". Produces production-ready code for Terraform, CloudFormation, Pulumi, ARM templates, and CDK across multiple cloud providers.
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill generating-infrastructure-as-code ai automation claude-code devops mcp ai-agents
Generating Infrastructure as Code
Overview
Generate production-ready infrastructure as code for Terraform, CloudFormation, Pulumi, ARM templates, and AWS CDK. Produce modular, well-structured configurations with proper variable definitions, outputs, remote state management, and deployment guidance for AWS, GCP, and Azure cloud stacks.
Prerequisites
Target cloud provider CLI installed and authenticated (aws, gcloud, az)
IaC tool installed: Terraform 1.0+, Pulumi 3+, AWS CDK, or relevant SDK
Cloud credentials configured with permissions to create the target resources
Understanding of the desired infrastructure architecture (compute, networking, storage, database)
Version control repository for storing IaC configurations
Instructions
Identify the IaC tool and cloud provider based on the project requirements and existing codebase
Scan the project for existing IaC files to understand current patterns and conventions
Define the modular file structure: separate files for providers, networking, compute, storage, and databases
Generate the provider configuration with version pinning and remote backend for state storage
Define input variables with types, descriptions, defaults, and validation rules for all configurable values
Write resource definitions following cloud provider best practices: encryption enabled, logging configured, least-privilege IAM
Add outputs for resource identifiers, endpoints, and connection strings needed by other modules or applications
Configure remote state backend: S3 + DynamoDB for Terraform, Pulumi Cloud, or CloudFormation stack exports
Create environment-specific variable files (terraform.tfvars, dev.tfvars, prod.tfvars) for multi-environment deployment
Validate with terraform validate, terraform plan, or equivalent tool-specific linting
Output
IaC configuration files organized by resource type or module
Variable definition files with documented inputs and sensible defaults
Output definitions for cross-module references and application configuration
Backend configuration for remote state storage
Environment-specific variable files for dev, staging, and production
Deployment instructions with prerequisite setup and apply commands
Error Handling Error Cause Solution Invalid HCL syntaxMalformed Terraform configuration Run terraform validate to identify the error; check bracket matching and attribute syntax Unable to authenticate with cloud providerMissing or expired credentials Run aws configure, gcloud auth login, or az login to refresh credentials Resource already existsTrying to create a resource that exists outside of IaC management Use terraform import to bring the existing resource under management Error acquiring state lockAnother process holding the state lock Wait for the other process to finish; use terraform force-unlock <ID> if the lock is stale Dependency cycle detectedResources referencing each other circularly Refactor to remove the cycle; use data sources or depends_on to establish explicit ordering
Examples
"Generate Terraform for a production VPC on AWS with public/private subnets across 3 AZs, NAT gateways, VPC flow logs, and an EKS cluster."
"Create a CloudFormation template for an S3 bucket with versioning, server-side encryption (KMS), public access block, and lifecycle rules."
"Write Pulumi TypeScript code for a GCP Cloud Run service with a custom domain, Cloud SQL database, and Secret Manager integration."
Resources Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).