import-infrastructure-as-code
Reverse-engineer live Azure infrastructure into Terraform code using Azure Verified Modules.
- Discovers Azure resources across subscription, resource group, or specific resource ID scopes using Azure CLI, then maps dependencies and generates AVM-based Terraform configuration
- Requires reading each AVM module's README before code generation to identify required inputs, child resource ownership, and exact variable names that differ from raw
azurerm_*provider arguments - Generates import blocks by inspecting downloaded module source code to derive correct resource addresses, accounting for provider type (azurerm vs azapi), sub-module nesting, and count/for_each patterns
- Produces
providers.tf,main.tf,variables.tf,outputs.tf, and documentation files (exported-resources.json,EXPORTED-ARCHITECTURE.md) with full validation viaterraform plan - Validates live resource properties against AVM module defaults to prevent configuration drift, explicitly setting any differing values in the generated configuration
Import Infrastructure as Code (Azure -> Terraform with AVM)
Convert existing Azure infrastructure into maintainable Terraform code using discovery data and Azure Verified Modules.
When to Use This Skill
Use this skill when the user asks to:
- Import existing Azure resources into Terraform
- Generate IaC from live Azure environments
- Handle any Azure resource type supported by AVM (and document justified non-AVM fallbacks)
- Recreate infrastructure from a subscription or resource group
- Map dependencies between discovered Azure resources
- Use AVM modules instead of handwritten
azurerm_*resources
Prerequisites
- Azure CLI installed and authenticated (
az login) - Access to the target subscription or resource group
More from github/awesome-copilot
git-commit
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
30.2Kgh-cli
GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.
21.2Kdocumentation-writer
Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.
17.4Kprd
Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.
17.4Kexcalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
16.4Krefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
16.1K