「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次  †
概要  †
- Azureでは、主にARM テンプレートを利用して、
インフラ~OS レイヤまでのインフラ構築の「自動化(IaC)」を行う
 
詳細  †
機能  †
入力  †
Resource Manager はテンプレートを解析し、
その構文を適切なリソース プロバイダの REST API 操作に変換する。
出力  †
既存のリソース グループのテンプレートの取得
- リソース グループの現在の状態をエクスポート
 
- 特定のデプロイに使用されたテンプレートを表示
 
構造  †
テンプレートとパラメタ・ファイルから構成される
テンプレート  †
作成するリソース群を指定する(template.json)。
パラメタ・ファイル  †
- 可変要素をパラメタ化する(parameters.json)。
 
- テンプレート実行時に外部から値を与える。
 
編集と実行  †
編集  †
VS Code に ARM Tools プラグインを入れ編集。
実行  †
ポータルから保存・実行すると便利。
※ ローカルで実行するには、PowerShellライブラリのインストールなど環境構築が必要になる。
作り方  †
Automation  †
- スクラッチで記載するのは難しいので、Automationを使用する。
 
- リソース作成時に引き抜く。
ポータルからのリソース作成時に、Automationオプションを確認 
- リソース作成後に引き抜く。
リソース・グループまたはリソースから、Automationスクリプトを出力 
- トレード・オフがあるので、
2つの方法を併用して作成する。
 | リソース作成時に引き抜く。 | リソース作成後に引き抜く。 | 
| GOOD | 綺麗な JSON が入手できる | 合体(依存関係、構成変更前)のJSONを入手できる。 | 
| BAD | ・単体(依存関係、構成変更前)のJSONしか入手できない。 ・パラメタライズされた状態の JSON しか入手できない。 | ・余分な値や、重複した出力がされることがある。 ・Resourcesによっては、JSON化出来ないモノがある。 ・パラメタライズされた状態の JSON しか入手できない。 | 
 
サンプル  †
ハブネットワークの ARMテンプレート作成
手順  †
仮想ネットワークの作成  †
リソース作成時のテンプレート引き抜き機能を使用する。
- 作成前に、Automation オプションを選択し、
ARM テンプレートとパラメタ・ファイルを引き抜く。 
- テンプレート内のパラメタ値を、具体値に書き換えていく。
- template.jsonのresourcesセクションの"[parameters('XXXX')]"を、
parameters.jsonのparametersセクションの具体値に変える。 
- 具体値に変えた、template.jsonのparametersセクションのパラメタを削除する。
 
 
- 動的に解決させた方がよいパラメタ
- リソース・グループ名(name)、リソースを作成する場所(location)
 
- "[parameters('XXXX')]"だった所を"[resourceGroup().XXXX]"に変更する。
(これでテンプレートを実行する際に与えられるパラメタを使用するらしい) 
 
- 引き抜き後、実際にリソースを作成する。
- 作成したテンプレートを Azure ポータルから登録し、展開をテスト
 
- 記述にバグがある場合には配置が失敗する → 配置が成功するまで、trial and error。
 
 
サブネットの作成  †
既存リソースからのテンプレート引き抜き機能を使用する(作成時は引き抜き不可)。
- 作成後に、Automation スクリプトを選択すると、
当該リソースが含まれるリソース・グループ全体を
ARM テンプレートとパラメタ・ファイルを引き抜く。 
- 引き抜かれたテンプレートの特徴と、綺麗なテンプレートに直していく際のコツ
- リソース・グループ全体が引き抜かれている
 
- 既定値や、現在の状態など、余分なパラメタ値が引き抜かれている。
 
 
ルートテーブルの作成  †
リソース依存関係の指定
VPN ゲートウェイの作成  †
テンプレートに含めるリソースの範囲
ファイアウォールの設定  †
既存リソースからのテンプレート引き抜き機能に対応していない場合の扱い方
診断ストレージの作成  †
グローバル一意リソースの取り扱い
変数(variables)の使い方
仮想マシンの作成  †
評価式の修正のコツ
参考  †
Microsoft Azure  †
Microsoft Docs  †
Qiita  †
- Azure Resource Manager テンプレートを
 
nakama  †
FgCF > ゼロトラスト型マルチクラウド IT 環境 > Azure による仮想データセンタ構築手法
- > 共通技術 > ネットワーク基盤の構成方法 > ARM テンプレートの利用方法
 
※ 体系はコチラ、pwdはコチラ
Tags: :インフラストラクチャ, :クラウド, :Azure, :IaC