- Home
- Skills
- Williamzujkowski
- Standards
- Infrastructure As Code
infrastructure-as-code_skill
- Python
13
GitHub Stars
2
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill williamzujkowski/standards --skill infrastructure-as-code- REFERENCE.md23.6 KB
- SKILL.md10.7 KB
Overview
This skill provides a compact, production-oriented Infrastructure as Code (IaC) reference using Terraform to provision, manage, and destroy cloud resources. It captures core commands, essential patterns (resources, modules, remote state), and a critical checklist to start reproducible, version-controlled infrastructure quickly. The guidance emphasizes safety, testing, and integration with CI/CD and monitoring systems.
How this skill works
The skill outlines the Terraform workflow: init, plan, apply, validate, format, and destroy, plus workspace and state operations for environment separation and collaboration. It details common patterns like basic resource blocks, module consumption, and S3-backed remote state with locking. The content also covers testing and automation points—linting, Terratest, drift detection—and practical CI/CD integration patterns.
When to use it
- Bootstrapping new cloud infrastructure with repeatability and version control
- Managing multiple environments using workspaces or separate state backends
- Modularizing reusable network, compute, and platform components
- Automating drift detection, testing, and CI/CD deployments
- Enforcing security and compliance via state encryption and linters
Best practices
- Pin provider and module versions to prevent unexpected upgrades
- Enable remote state with encryption and locking (e.g., S3 + DynamoDB)
- Use variables for environment-specific values and tag resources consistently
- Run terraform fmt and terraform validate in CI before merging
- Implement automated tests (Terratest) and linting (TFLint/Checkov)
- Never commit secrets; use secret managers and .gitignore for local files
Example use cases
- Create a VPC module consumed by multiple environments with parameterized CIDRs
- Deploy a web tier with autoscaling instances and tagged resources via a basic resource block
- Store Terraform state in S3 with DynamoDB locks to support team collaboration
- Automate daily drift detection and create scheduled remediation jobs
- Integrate Terraform runs into GitHub Actions or GitLab CI for gated applies
FAQ
Use a remote backend that supports locking (S3 + DynamoDB or Terraform Cloud) and require plan review before apply.
When should I build a module versus copying code?
Create a module when a configuration is reused across projects or environments; prefer modules for maintainability and versioning.