Azure Resource Manager テンプレートを使用してマルチ VM 環境と PaaS リソースを作成する

Azure Portal を使用すると、簡単に VM を作成してラボに追加することができます。 この方法は、一度に 1 つの VM を作成する場合に適してします。 ところが、環境に複数の VM が含まれる場合は、各 VM を個別に作成する必要があります。 多層 Web アプリや SharePoint ファームのようなシナリオでは、シングル ステップで複数の VM を作成できるメカニズムが必要です。 Azure Resource Manager テンプレートを使用することで、Azure のソリューションのインフラストラクチャと構成を定義して、複数の VM を一貫した状態で繰り返しデプロイできるようになりました。 この機能には次のような利点があります。

  • Azure Resource Manager テンプレートが、ソース管理リポジトリ (GitHub や Team Services Git) から直接読み込まれます。
  • 構成したら、ユーザーは、他の種類の VM ベースを使用してできることとして Azure Portal から Azure Resource Manager テンプレートを選択して環境を作成できます。
  • Azure PaaS のリソースを、IaaS VM だけでなく Azure Resource Manager テンプレートから環境にプロビジョニングできます。
  • 環境のコストを、他の種類のベースによって作成された個々の VM だけでなくラボで追跡できます。
  • PaaS のリソースが作成され、コスト管理に表示されます。ただし、VM の自動シャットダウンは PaaS リソースに適用されません。
  • ユーザーは、単一のラボの VM と同じ VM ポリシー コントロールをさまざまな環境で使用できます。

Resource Manager テンプレートを使用してラボのすべてのリソースを単一の操作でデプロイ、更新、または削除することには多くの利点があります。詳細については、こちらでご確認ください。

注意

より多くのラボの VM を作成するためのベースとして Resource Manager テンプレートを使用する場合、マルチ VM を作成するか、単一 VM を作成するかでいくつかの違いがあることに注意してください。 その違いについては、「Use a virtual machine's Azure Resource Manager template」(仮想マシンの Azure Resource Manager テンプレートを使用する) で詳しく説明しています。

Azure Resource Manager テンプレート リポジトリを構成する

コードとしてのインフラストラクチャとコードとしての構成のベスト プラクティスの 1 つとして、環境テンプレートをソース管理で管理する必要があります。 Azure DevTest Labs は、このベスト プラクティスに従って、GitHub または VSTS の Git リポジトリから直接すべての Azure Resource Manager テンプレートを読み込みます。 その結果、Resource Manager のテンプレートは、テスト環境から運用環境まで、リリース サイクル全体で使用することができます。

この場合、リポジトリ内で Azure Resource Manager テンプレートを整理するために従わなければならないルールがいくつかあります。

  • マスター テンプレート ファイルの名前を azuredeploy.json にする必要があります。

    主要な Azure Resource Manager テンプレート ファイル

  • パラメーター ファイルで定義したパラメーター値を使用する場合は、パラメーター ファイルの名前を azuredeploy.parameters.json にする必要があります。

  • _artifactsLocation_artifactsLocationSasToken のパラメーターを使用すると、parametersLink URI の値を構築できるため、DevTest Labs で入れ子にされたテンプレートを自動的に管理できるようになります。 詳細については、「How Azure DevTest Labs makes nested Resource Manager template deployments easier for testing environments」(Azure DevTest Labs を使用してテスト環境での入れ子にされた Resource Manager テンプレートのデプロイを簡単にする方法) を参照してください。
  • メタデータを定義して、テンプレートの表示名と説明を指定することができます。 このメタデータは、metadata.json はという名前のファイルに格納する必要があります。 次のメタデータ ファイルの例で、表示名と説明を指定する方法を示します。
{

"itemDisplayName": "<your template name>",

"description": "<description of the template>"

}

次の手順では、Azure Portal を使用してラボにリポジトリを追加する方法を説明します。

  1. Azure ポータルにサインインします。
  2. [その他のサービス] を選択し、一覧の [DevTest Labs] を選択します。
  3. ラボの一覧で目的のラボを選択します。
  4. ラボのブレードで、[Configuration and Policies (構成とポリシー)] を選択します。

    構成とポリシー

  5. [Configuration and Policies (構成とポリシー)] の設定一覧で、[リポジトリ] を選択します。 [リポジトリ] ブレードには、ラボに追加されたリポジトリが一覧表示されます。 Public Repo という名前のリポジトリがすべてのラボに自動的に生成され、複数の VM アーティファクトを格納する DevTest ラボ GitHub リポジトリに接続され、使用されます。

    Public Repo

  6. [追加+] を選択し、Azure Resource Manager テンプレートのリポジトリを追加します。

  7. 2 つ目の [リポジトリ] ブレードが開いたら、必要な情報を次のように入力します。

    • 名前 - ラボで使用するリポジトリ名を入力します。
    • Git クローン URL - GitHub または Visual Studio Team Services の GIT HTTPS クローン URL を入力します。
    • 分岐 - Azure Resource Manager テンプレートの定義にアクセスするための分岐名を入力します。
    • 個人用アクセス トークン - 個人用アクセス トークンは、リポジトリに安全にアクセスするために使用されます。 Visual Studio Team Services からトークンを取得するには、<自分の名前>、[マイ プロファイル]、[セキュリティ]、[Public access token (パブリック アクセス トークン)] の順に選択します。 GitHub からトークンを入手するには、アバターを選択した後に、[設定]、[Public access token (パブリック アクセス トークン)] の順に選択します。
    • フォルダー パス - 2 つの入力フィールドのいずれかを使用して、アーティファクトの定義 (最初の入力フィールド) または Azure Resource Manager テンプレートの定義に、フォワード スラッシュ (/) で始まり、Git クローン URI に対して相対的なフォルダー パスを入力します。

      Public Repo

  8. すべての必須フィールドを入力し、検証に合格したら、[保存] を選択します。

次のセクションでは、Azure Resource Manager テンプレートから環境を作成する手順を説明します。

Azure Resource Manager テンプレートから環境を作成する

ラボで Azure Resource Manager テンプレート リポジトリが構成されると、ラボのユーザーは Azure Portal で次の手順を使用して環境を作成できます。

  1. Azure Portal にサインインします。
  2. [その他のサービス] を選択し、一覧の [DevTest Labs] を選択します。
  3. ラボの一覧で目的のラボを選択します。
  4. ラボのブレードで、[追加+] を選択します。
  5. [ベースの選択] ブレードに、使用できるベース イメージが表示されます。Azure Resource Manager テンプレートがその先頭に表示されます。 目的の Azure Resource Manager テンプレートを選択します。

    ベースの選択

  6. [追加] ブレードで、[環境名] に値を入力します。 環境名は、ラボでユーザーに表示される内容です。 その他の入力フィールドは、Azure Resource Manager テンプレートで定義します。 既定値がテンプレートで定義されている場合、または azuredeploy.parameter.json ファイルが存在する場合は、これらの入力フィールドに既定値が表示されます。 "セキュリティで保護された文字列" 型のパラメーターの場合、ラボの個人のシークレット ストアに格納されたシークレットを使用することができます。

    [追加] ブレード

    注意

    値を指定した場合でも、空の値として表示されるパラメーター値がいくつかあります。 そのため、ユーザーが Azure Resource Manager テンプレートでこれらの値をパラメーターに割り当てた場合でも、DevTest Labs で値が表示されません。代わりに、環境の作成時にラボのユーザーが値を入力する必要がある場所には、入力フィールドが空白で示されます。

    • GEN-UNIQUE
    • GEN-UNIQUE-[N]
    • GEN-SSH-PUB-KEY
    • GEN-PASSWORD
  7. [追加] を選択して環境を作成します。 環境でプロビジョニングが開始され、[仮想マシン] の一覧に状態が即座に表示されます。 Azure Resource Manager テンプレートで定義されているすべてのリソースをプロビジョニングするために、新しいリソース グループがラボによって自動的に作成されます。

  8. 環境が作成されたら、[仮想マシン] の一覧で環境を選択してリソース グループ ブレードを開き、環境内にプロビジョニングされたすべてのリソースを参照します。

    [仮想マシン] の一覧

    環境にプロビジョニングされている VM の一覧を単に表示するために環境を展開することもできます。

    [仮想マシン] の一覧

  9. 任意の環境をクリックして、アーティファクトの適用、データ ディスクのアタッチ、自動シャット ダウン時刻の変更など、使用可能なアクションを参照します。

    環境のアクション

次のステップ