AzureCLIでリソースのテンプレートをダウンロードしてみました。
AzureCLIでリソースのテンプレートをダウンロードする
テンプレートのダウンロードには az group export コマンドを利用します。
仮想マシン(VirtualMachine)のテンプレートDL
今回はダウンロードした情報をカレントディレクトリのjsonファイルに書き込みます。
# 変数を定義(仮想マシン)
$rg_name = "Test-RG"
$resource_name = "test-vm"
$resource_type = "Microsoft.Compute/virtualMachines"
# 対象のリソースのIDを取得
$resource_id = $(az resource show `
--resource-group $rg_name `
--name $resource_name `
--resource-type $resource_type `
--query id `
--output tsv)
# リソースのテンプレートをカレントディレクトリにダウンロード
az group export --resource-group $rg_name --resource-ids $resource_id > $resource_name".json"
仮想ネットワーク(VirtualNetwork)のテンプレートDL
以下のコマンドで仮想ネットワークのテンプレートをダウンロードできます。
# 変数を定義(仮想ネットワーク)
$rg_name = "Test-RG"
$resource_name = "vnet-test"
$resource_type = "Microsoft.Network/virtualNetworks"
# 対象のリソースのIDを取得
$resource_id = $(az resource show `
--resource-group $rg_name `
--name $resource_name `
--resource-type $resource_type `
--query id `
--output tsv)
# リソースのテンプレートをカレントディレクトリにダウンロード
az group export --resource-group $rg_name --resource-ids $resource_id > $resource_name".json"
AzureFirewallのテンプレートDL
以下のコマンドでAzureFirewallのテンプレートをダウンロードできます。
# 変数を定義(AzureFirewall)
$rg_name = "Test-RG"
$resource_name = "afw-test"
$resource_type = "Microsoft.Network/azureFirewalls"
# 対象のリソースのIDを取得
$resource_id = $(az resource show `
--resource-group $rg_name `
--name $resource_name `
--resource-type $resource_type `
--query id `
--output tsv)
# リソースのテンプレートをカレントディレクトリにダウンロード
az group export --resource-group $rg_name --resource-ids $resource_id > $resource_name".json"
[参考] リソースグループ自体のテンプレートを取得
リソースグループ自体のテンプレートを取得することもできます。
$rg_name = "Test-RG"
az group export --resource-group $rg_name > $rg_name".json"