winget install --id=Microsoft.Azure.AztfExport -e
Microsoft Azure Export for Terraform imports the resources that are supported by the Terraform AzureRM provider into the Terraform state, and generates the corresponding Terraform configuration. Both the Terraform state and configuration are expected to be consistent with the resources' remote state, i.e., terraform plan shows no diff. The user then is able to use Terraform to manage these resources.
A tool to bring your existing Azure resources under the management of Terraform.
Azure Export for Terraform exports supported resources into Terraform state and generate the corresponding Terraform configuration. Both the Terraform state and configuration are expected to be consistent with the resources' remote state, i.e., terraform plan
shows no diff. The user then is able to use Terraform to manage these resources.
It supports both the Terraform AzureRM provider and the Terraform AzAPI provider.
The Terraform configurations generated by aztfexport
are not meant to be comprehensive and do not ensure that the infrastructure can be fully reproduced from said generated configurations. For details, please see limitations).
Precompiled binaries and Window MSI are available at Releases.
go install github.com/Azure/aztfexport@latest
winget install aztfexport
brew install aztfexport
Supported versions:
Import the Microsoft repository key:
rpm --import https://packages.microsoft.com/keys/microsoft.asc
Add packages-microsoft-com-prod
repository:
ver=8 # or 9
dnf install -y https://packages.microsoft.com/config/rhel/${ver}/packages-microsoft-prod.rpm
Install:
dnf install aztfexport
Supported versions:
Import the Microsoft repository key:
curl -sSL https://packages.microsoft.com/keys/microsoft.asc > /etc/apt/trusted.gpg.d/microsoft.asc
Add packages-microsoft-com-prod
repository:
ver=20.04 # or 22.04
apt-add-repository https://packages.microsoft.com/ubuntu/${ver}/prod
Install:
apt-get install aztfexport
yay -S aztfexport
aztfexport
requires a terraform
executable installed in the $PATH
with version >= v0.12
.
aztfexport
leverages aztft
to identify the Terraform resource type corresponding to an Azure resource ID. Then it runs terraform import
under the hood to import each resource. Afterwards, it runs tfadd
to generate the Terraform HCL code for each imported resource.
Read the Azure Export documentation which covers scenarios and usage.
aztfexport
will create a configuration file at $HOME/.aztfexport/config.json
. This file is aim to be managed by command aztfexport config [subcommand]
, which includes following subcommands:
get
: Get a config itemset
: Set a config itemshow
: Show the full configurationCurrently, the following config items are supported:
installation_id
: A UUID created on first run. If there is Azure CLI or Azure Powershell installed on the current machine, the UUID will be the same value among these tools. Otherwise, a new one will be created. This is used as an identifier in the telemetry trace.telemetry_enabled
: Enables telemetry. We use telemetry to identify issues and areas for improvement, in order to optimize this tool for better performance, reliability, and user experience. If you wish to disable our telemetry, set this to false.Visit this page on the Azure Export for Terraform documentation that discusses the currently known limitations of the tool.