ARMテンプレートのダウンロードからAzure VMのカスタムデプロイまでやってみた
Azure Portalでリソースをデプロイする際、作成前の確認画面にで”Automationのテンプレートをダウンロードする”というリンクがあります。
リンクをクリックするとリソースをデプロイする為のAzure ARMテンプレートファイルを作成する事が出来ます。
このダウンロードしたARMテンプレートを使って同じリソースを再度デプロイする事が出来ます。
今回はAzure VM(仮想マシン)を例にダウンロードしたARMテンプレートを使って同じ構成で再デプロイ(カスタムデプロイ)を試してみました。
またテンプレート機能を使ったデプロイも併せて試してみました。
※2022年7月に記事を刷新しました。
Azure Resource Manger(ARM)テンプレートについて
Azure Resource Manger(ARM)て何
Azure Resource Manager は、Azure のデプロイおよび管理サービスになります。
Azureのリソースを定義するレイヤー(層)で一貫性を担保するものと記載されています。
自分は、Azure PortalやAPI経由でリソースを作成する要求を受けて作成するAzureの機能と理解しています。
Azure Resource Manger(ARM)テンプレートって何
Azure上のリソースを定義したJSONファイルになります。
ARMテンプレートを使うとAzure上にデプロイするリソースをコードとして定義出来ます。
ARMテンプレートを使うと同じリソースを反復して作成する事が出来ます。
Azure Resource Manger(ARM)テンプレートのエクスポート方法
ARMテンプレートをエクスポートする方法にはいくつかの方法があります。
Azureリソース状態(構成)を示すARMテンプレートとデプロイメントに関するARMテンプレートがあります。
エクスポート方法 | 出力対象 | 出力内容 |
リソースグループのリソースメニューにあるテンプレートのエクスポートを使う | リソースグループ内にあるリソースに関するARMテンプレート | リソース状態(構成)に関するARMテンプレート |
各リソースのリソースメニューにあるテンプレートのエクスポートを使う | 該当リソースに関するARMテンプレートテンプレート | リソース状態(構成)に関するARMテンプレート |
リソースグループのリソースメニューにあるデプロイを使う | リソースデプロイ時のARMテンプレート (過去にリソースグループ内でデプロイした内容) |
デプロイメントに関するARMテンプレート |
Automationのテンプレートをダウンロードするを使う | リソースデプロイ時のARMテンプレート | デプロイメントに関するARMテンプレート |
今回は”Automationのテンプレートをダウンロードする”のリンクを使ってエクスポートしたARMテンプレートを使って仮想マシンをデプロイします。
リソースグループのデプロイからARMテンプレートをダウンロードする方法についてはこちらで確認しています。
併せて見て頂けると大変有難いです。
PowerShellを使ったARMテンプレートについてはこちらに纏めています。
ーーー
Azure Resource Manger(ARM)テンプレートのエクスポートからカスタムデプロイまで
今回は仮想マシン作成確認画面から”Automationのテンプレートをダウンロードする”を使ってARMテンプレートをダウンロードしてみます。
”Automationのテンプレートをダウンロードする”を使ってみる
”Automationのテンプレートをダウンロードする”を使ってARMテンプレートをエクスポートしてみます。
template.jsonとparameters.jsonの2ファイルがダウンロードされる
ダウンロードされたZIPには2つのファイルが含まれます。
- template.json
- リソース作成内容を定義するARMテンプレート
- 今回の場合は仮想マシン、パブリックIP、ネットワークインターフェースのリソース定義が含まれます
- parameters.json
- template.jsonのパラメータを定義するARMテンプレート
- 今回の場合は仮想マシン名、パブリックIP名、ネットワークインターフェース名など各リソースのパラメータが含まれます
カスタムテンプレートのデプロイ
ARMテンプレートを使ったデプロイにはいくつか方法があります。
今回はカスタムテンプレートのデプロイを使ってやってみます。
test-vm-02デプロイ時にダウンロードしたARMテンプレートをtest-vm-03にしてデプロイする想定です。
作成されたリソースを確認
作成されたリソースを比較してみます。
test-vm-02がAzure Portalを使ってデプロイしたAzure VMになります。
test-vm-03がtest-vm-02デプロイ時のARMテンプレートを使ってデプロイしたAzure VMになります。
同じ内容でデプロイされている事が確認出来ます。
デプロイ後の比較 | |
テンプレートのサービスを使って仮想マシンをデプロイ
Azureサービスにテンプレートがあります。
これはリソースのARMテンプレートをAzure上に保管しておくサービスになります。
※2022年7月現在はテンプレートの仕様の方が推奨となっています。
テンプレートに仮想マシンARMテンプレートを保管
ダウンロードした仮想マシンのARMテンプレートを登録します。
テンプレートに登録 | |
テンプレートを選択します。 | |
作成を選択します。 | |
今回はVM-Templateと言う名前で保管します。 説明には後でわかるような内容を記載します。 |
|
ARMテンプレートの登録になります。 ダウンロードしたtemplate.jsonの内容を貼り付けます。 追加を選択します。 |
|
テンプレートの登録はこれで完了です。 |
テンプレートに登録された内容を使ってデプロイ
登録したテンプレートを使って仮想マシンをデプロイします。
最後に
ARMテンプレートを使った仮想マシンのデプロイをやってみました。
ARMテンプレートを使うと簡単に同じ内容のリソースをデプロイする事が出来ました。
今回は仮想マシンですが他のAzureリソースでも同様にダウンロードからカスタムデプロイまでする事が出来ます。
検証環境などで同じリソースを削除、作成する場合や、複数台仮想マシンをデプロイする場合などにとても便利かと思います。
Terraform利用した仮想マシンのデプロイはこちら。
PowerShellを使ったARMテンプレートエクスポートはこちらに纏めています。