カスタムテンプレートのデプロイを利用したAzure VM作成手順(ダウンロードしたARMテンプレートを利用)

2019-11-27ARM Template,Azure,Virtual Machines

“カスタムテンプレートのデプロイ"を使用して、同じ状態のリソースを再デプロイする手順です。
リソース作成時の"Automationのテンプレートをダウンロードする"を利用して取得したARMテンプレートを使っています。

Azure Portalでリソースをデプロイする際、確認画面に"Automationのテンプレートをダウンロードする"というリンクが表示されます。
このリンクをクリックすると、対象リソースをデプロイするためのAzure ARMテンプレートファイルをダウンロードできます。
ダウンロードしたARMテンプレートを利用して、同じ設定状態でリソースを再度デプロイすることが可能です。

今回は、仮想マシン(Azure VM)を例に、"カスタムテンプレートのデプロイ"を使用した場合の手順を確認しています。

※本記事内ではAzure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※リソース名など、同じ設定を再利用できない場合があります。

スポンサーリンク

Azure Resource Manager(ARM) テンプレートについて

Azure Resource Manager(ARM)とは

Azure Resource Managerは、Azureのデプロイおよび管理を担うサービスです。
Azure内で使用するリソース(仮想マシン、ストレージアカウント、ネットワークなど)を一貫して定義・管理するためのレイヤー(層)として機能します。

Azure Resource Manager

一般的に、Azure Resource Managerは、リソースの作成・更新・削除といった操作を一元的に管理する役割を担っています。
Azure PortalやAPI経由でリソース管理要求を受け付け、実際のリソースを作成・管理することが可能となります。

Azure Resource Manager(ARM) テンプレートとは

Azure上のリソース構成を記述するためのJSON形式のファイルです。

ARM テンプレートとは

ARMテンプレートを利用することで、仮想マシンやストレージアカウント、ネットワークなど、Azureリソースの作成・構成をコードとして宣言的に定義できます。

ARMテンプレートを使うメリットは、インフラ環境を一貫性・再現性をもって素早く構築できる点にあります。
同じリソース構成を何度でも繰り返しデプロイしたり、バージョン管理や自動化の仕組みとの連携が容易になります。

Azure Resource Manager(ARM) テンプレートのエクスポート方法

ARMテンプレートをエクスポートする方法はいくつかあります。
Azureリソースの現在の状態(構成)を表現するためのARMテンプレートと、リソースデプロイメント時に使用するためのARMテンプレートがあります。
デプロイ履歴からも、リソース作成時に利用したARMテンプレートをダウンロードできます。

エクスポート方法 出力対象 出力内容
リソースグループにある"テンプレートのエクスポート"のメニューを使う リソースグループ内にあるリソースに関するARMテンプレート リソース状態(構成)に関するARMテンプレート
各リソースにある"テンプレートのエクスポート"のメニューを使う 該当リソースに関するARMテンプレートテンプレート リソース状態(構成)に関するARMテンプレート
リソースグループにある"デプロイ"のメニューを使う
(デプロイ履歴)
リソースデプロイ時のARMテンプレート
(過去にリソースグループ内でデプロイした内容)
デプロイメントに関するARMテンプレート
リソース作成時の"Automationのテンプレートをダウンロードする"を使う リソースデプロイ時のARMテンプレート デプロイメントに関するARMテンプレート

今回は、"Automation のテンプレートをダウンロードする"のリンクを利用してエクスポートしたARMテンプレートを用い、仮想マシンをデプロイします。
リソースグループのデプロイ画面からARMテンプレートをダウンロードする方法については、こちらで紹介しています。

PowerShellを使ったARMテンプレートのエクスポート方法については、こちらで紹介しています。

—広告—

Azure Resource Manager(ARM) テンプレートのエクスポートからカスタムデプロイまで

仮想マシン作成の確認画面から"Automation のテンプレートをダウンロードする"リンクを利用して、ARMテンプレートをダウンロードします。

”Automationのテンプレートをダウンロードする”を使ってARMテンプレートをエクスポート

“Automation のテンプレートをダウンロードする"を利用し、ARMテンプレートをエクスポートします。

ARMテンプレートをエクスポート
仮想マシンをデプロイ時の確認画面です。
”Automationのテンプレートをダウンロードする”リンクを選択します。

テンプレートが表示されます。
“テンプレート"と"パラメーター"のタブがあります。
“テンプレート"タブには、リソース定義を記述したARMテンプレート本体が表示されます。

“パラメーター"のタブです。
ARMテンプレートで使用するパラメーターの内容が表示されます。
ダウンロードを選択すると、ARMテンプレートがZIP形式でダウンロードされます。

ダウンロードしたZIPファイルにはtemplate.jsonとparameters.jsonの2つのファイルが含まれる

ダウンロードしたZIPファイルには、template.jsonとparameters.jsonの2つのファイルが含まれます。

    • template.json
      • リソース作成内容を定義するARMテンプレート。
      • 仮想マシン、パブリックIP、ネットワークインターフェースなどのリソース定義が含まれる
    • parameters.json
      • template.jsonで利用されるパラメーターを定義するファイル
      • 仮想マシン名、パブリックIP名、ネットワークインターフェース名など、各リソースのパラメーターが含まれる

カスタムテンプレートのデプロイを使った場合の手順

ARMテンプレートを使ったデプロイ方法には、いくつかの手順があります。
今回は、Azureポータルの"カスタムテンプレートのデプロイ"機能を利用した手順を確認します。
test-vm-02という仮想マシンをデプロイした際にダウンロードしたARMテンプレートを流用し、一部変更を加えてtest-vm-03としてデプロイします。

カスタムテンプレートのデプロイ
カスタムテンプレートのデプロイを選択します。
テンプレートの選択タブが表示されます。
エディターで独自のテンプレートを作成するを選択します。
テンプレートの編集画面が表示されます。
ファイルの読み込みを選択します。
ダウンロードしておいた、template.jsonを選択します。
読み込まれた仮想マシンのARMテンプレートが表示されます。
内容を確認し、保存を選択します。
基本タブが表示されます。
この時点では、仮想マシンのパラメーターはまだ設定されていません。
パラメーターの編集を選択します。
パラメーターの編集画面が表示されます。
この時点では、各パラメーターの設定値はnullになっています。
ファイルの読み込みを選択します。
ダウンロードしておいた、parameters.jsonを選択します。
読み込まれた仮想マシンのパラメーターが表示されます。
内容を確認し、保存を選択します。
基本タブに戻ります。
インスタンスの詳細欄に、先ほど読み込んだパラメーターの設定値が反映されていることを確認できます。

仮想マシンをデプロイするリソースグループを選択します。

※プロジェクトの詳細に表示されているリソースグループは、個別に指定する必要があります。

必要に応じて、インスタンスの詳細で各パラメーターを変更します。
パスワードは再入力が必要です。
編集が完了したら、確認と作成を選択します。

※ダウンロードしたデプロイのパラメーターがそのまま入力されています。このままデプロイすると、同じ仮想マシン名(test-vm-02)でデプロイされてしまいます。

カスタム テンプレートの確認画面が表示されます。
内容を確認し、作成を選択します。

作成した仮想マシンの設定を確認

作成した仮想マシンの設定を比較します。
test-vm-03は、test-vm-02のデプロイ時に使用したARMテンプレートを利用してデプロイした仮想マシンです。
同じ設定内容でデプロイされていることが確認できます。

作成した仮想マシンの設定

—広告—

最後に

ARMテンプレートを使用した仮想マシンのデプロイ手順を確認しました。
ARMテンプレートを活用することで、同じ構成のリソースを簡単かつ効率的にデプロイできることが分かりました。

今回は仮想マシンを例にしましたが、他のAzureリソースについても同様に、テンプレートのダウンロードからカスタムデプロイまで対応可能です。
検証環境などで同じリソースを頻繁に削除・再作成する場合や、複数台の仮想マシンを一括でデプロイする場合などに、非常に便利な手法です。

引き続き、いろいろ試してみたいと思います。

テンプレートスペックを利用した場合の手順については、こちらで紹介しています。

Terraform利用した仮想マシンの作成手順は、こちらで紹介しています。

PowerShellを使ったARMテンプレートエクスポート手順は、こちらで紹介しています。

スポンサーリンク