Azure Resource Manager テンプレートを使用してマルチ VM 環境と PaaS リソースを作成するCreate multi-VM environments and PaaS resources with Azure Resource Manager templates

Azure Portal を使用すると、簡単に VM を作成してラボに追加することができます。The Azure portal enables you to easily create and add a VM to a lab. この方法は、一度に 1 つの VM を作成する場合に適してします。This works well for creating one VM at a time. ところが、環境に複数の VM が含まれる場合は、各 VM を個別に作成する必要があります。However, if the environment contains multiple VMs, each VM must be individually created. 多層 Web アプリや SharePoint ファームのようなシナリオでは、シングル ステップで複数の VM を作成できるメカニズムが必要です。For scenarios such as a multi-tier Web app or a SharePoint farm, a mechanism is needed to allow for the creation of multiple VMs in a single step. Azure Resource Manager テンプレートを使用することで、Azure のソリューションのインフラストラクチャと構成を定義して、複数の VM を一貫した状態で繰り返しデプロイできるようになりました。By using Azure Resource Manager templates, you can now define the infrastructure and configuration of your Azure solution and repeatedly deploy multiple VMs in a consistent state. この機能には次のような利点があります。This feature provides the following benefits:

  • Azure Resource Manager テンプレートが、ソース管理リポジトリ (GitHub や Team Services Git) から直接読み込まれます。Azure Resource Manager templates are loaded directly from your source control repository (GitHub or Team Services Git).
  • 構成したら、ユーザーは、他の種類の VM ベースを使用する場合と同様に、Azure Portal から Azure Resource Manager テンプレートを選択して環境を作成できます。Once configured, your users can create an environment by picking an Azure Resource Manager template from the Azure portal, just as they do with other types of VM bases.
  • Azure PaaS のリソースを、IaaS VM だけでなく Azure Resource Manager テンプレートから環境にプロビジョニングできます。Azure PaaS resources can be provisioned in an environment from an Azure Resource Manager template in addition to IaaS VMs.
  • 環境のコストを、他の種類のベースによって作成された個々の VM だけでなくラボで追跡できます。The cost of environments can be tracked in the lab in addition to individual VMs created by other types of bases.
  • PaaS のリソースが作成され、コスト管理に表示されます。ただし、VM の自動シャットダウンは PaaS リソースに適用されません。PaaS resources are created and will appear in cost tracking; however, VM auto shutdown does not apply to PaaS resources.
  • ユーザーは、単一のラボの VM と同じ VM ポリシー コントロールをさまざまな環境で使用できます。Users have the same VM policy control for environments as they have for single-lab VMs.

Resource Manager テンプレートを使用してラボのすべてのリソースを単一の操作でデプロイ、更新、または削除することには多くの利点があります。詳細については、こちらでご確認ください。Learn more about the many benefits of using Resource Manager templates to deploy, update, or delete all of your lab resources in a single operation.

注意

より多くのラボの VM を作成するためのベースとして Resource Manager テンプレートを使用する場合、マルチ VM を作成するか、単一 VM を作成するかでいくつかの違いがあることに注意してください。When you use a Resource Manager template as a basis to create more lab VMs, there are some differences to keep in mind whether you are creating Multi-VMs or single-VMs. その違いについては、仮想マシンの Azure Resource Manager テンプレートの使用に関するページで詳しく説明しています。Use a virtual machine's Azure Resource Manager template explains these differences in greater detail.

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

コードとしてのインフラストラクチャとコードとしての構成のベスト プラクティスの 1 つとして、環境テンプレートをソース管理で管理する必要があります。As one of the best practices with infrastructure-as-code and configuration-as-code, environment templates should be managed in source control. Azure DevTest Labs は、このベスト プラクティスに従って、GitHub または VSTS の Git リポジトリから直接すべての Azure Resource Manager テンプレートを読み込みます。Azure DevTest Labs follows this practice and loads all Azure Resource Manager templates directly from your GitHub or VSTS Git repositories. その結果、Resource Manager のテンプレートは、テスト環境から運用環境まで、リリース サイクル全体で使用することができます。As a result, Resource Manager templates can be used across the entire release cycle, from the test environment to the production environment.

この場合、リポジトリ内で Azure Resource Manager テンプレートを整理するために従わなければならないルールがいくつかあります。There are a couple of rules to follow to organize your Azure Resource Manager templates in a repository:

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

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

  • パラメーター ファイルで定義したパラメーター値を使用する場合は、パラメーター ファイルの名前を azuredeploy.parameters.json にする必要があります。If you want to use parameter values defined in a parameter file, the parameter file must be named azuredeploy.parameters.json.

  • _artifactsLocation_artifactsLocationSasToken のパラメーターを使用すると、parametersLink URI の値を構築できるため、DevTest Labs で入れ子にされたテンプレートを自動的に管理できるようになります。You can use the parameters _artifactsLocation and _artifactsLocationSasToken to construct the parametersLink URI value, allowing DevTest Labs to automatically manage nested templates. 詳細については、「How Azure DevTest Labs makes nested Resource Manager template deployments easier for testing environments」(Azure DevTest Labs を使用してテスト環境での入れ子にされた Resource Manager テンプレートのデプロイを簡単にする方法) を参照してください。See How Azure DevTest Labs makes nested Resource Manager template deployments easier for testing environments for more information.
  • メタデータを定義して、テンプレートの表示名と説明を指定することができます。Metadata can be defined to specify the template display name and description. このメタデータは、metadata.json はという名前のファイルに格納する必要があります。This metadata must be in a file named metadata.json. 次のメタデータ ファイルの例で、表示名と説明を指定する方法を示します。The following example metadata file illustrates how to specify the display name and description:
{

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

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

}

次の手順では、Azure Portal を使用してラボにリポジトリを追加する方法を説明します。The following steps guide you through adding a repository to your lab using the Azure portal.

  1. Azure ポータルにサインインします。Sign in to the Azure portal.
  2. [その他のサービス] を選択し、一覧の [DevTest Labs] を選択します。Select More Services, and then select DevTest Labs from the list.
  3. ラボの一覧で目的のラボを選択します。From the list of labs, select the desired lab.
  4. ラボの [概要] ウィンドウで、[構成とポリシー] を選択します。On the lab's Overview pane, select Configuration and Policies.

    構成とポリシー

  5. [Configuration and Policies (構成とポリシー)] の設定一覧で、[リポジトリ] を選択します。From the Configuration and Policies settings list, select Repositories. [リポジトリ] ウィンドウには、ラボに追加されたリポジトリが一覧表示されます。The Repositories pane lists the repositories that have been added to the lab. Public Repo という名前のリポジトリがすべてのラボに自動的に生成され、複数の VM アーティファクトを格納する DevTest ラボ GitHub リポジトリに接続され、使用されます。A repository named Public Repo is automatically generated for all labs, and connects to the DevTest Labs GitHub repo that contains several VM artifacts for your use.

    Public Repo

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

  7. 2 つ目の [リポジトリ] ウィンドウが開いたら、必要な情報を次のように入力します。When the second Repositories pane opens, enter the necessary information as follows:

    • 名前 - ラボで使用するリポジトリ名を入力します。Name - Enter the repository name that is used in the lab.
    • Git クローン URL - GitHub または Visual Studio Team Services の GIT HTTPS クローン URL を入力します。Git clone URL - Enter the GIT HTTPS clone URL from GitHub or Visual Studio Team Services.
    • 分岐 - Azure Resource Manager テンプレートの定義にアクセスするための分岐名を入力します。Branch - Enter the branch name to access your Azure Resource Manager template definitions.
    • 個人用アクセス トークン - 個人用アクセス トークンは、リポジトリに安全にアクセスするために使用されます。Personal access token - The personal access token is used to securely access your repository. Visual Studio Team Services からトークンを取得するには、<自分の名前>、[マイ プロファイル]、[セキュリティ]、[Public access token (パブリック アクセス トークン)] の順に選択します。To get your token from Visual Studio Team Services, select <YourName> > My profile > Security > Public access token. GitHub からトークンを入手するには、アバターを選択した後に、[設定]、[Public access token (パブリック アクセス トークン)] の順に選択します。To get your token from GitHub, select your avatar followed by selecting Settings > Public access token.
    • フォルダー パス - 2 つの入力フィールドのいずれかを使用して、アーティファクトの定義 (最初の入力フィールド) または Azure Resource Manager テンプレートの定義に、フォワード スラッシュ (/) で始まり、Git クローン URI に対して相対的なフォルダー パスを入力します。Folder paths - Using one of the two input fields, enter the folder path that starts with a forward slash - / - and is relative to your Git clone URI to either your artifact definitions (first input field) or your Azure Resource Manager template definitions.

      Public Repo

  8. すべての必須フィールドを入力し、検証に合格したら、[保存] を選択します。Once all the required fields are entered and pass the validation, select Save.

次のセクションでは、Azure Resource Manager テンプレートから環境を作成する手順を説明します。The next section will walk you through creating environments from an Azure Resource Manager template.

Azure Portal を使用して Resource Manager テンプレートから環境を作成するCreate an environment from a Resource Manager template using the Azure portal

ラボで Azure Resource Manager テンプレート リポジトリが構成されると、ラボのユーザーは Azure Portal で次の手順を使用して環境を作成できます。Once an Azure Resource Manager template repository has been configured in the lab, your lab users can create an environment using Azure portal with the following steps:

  1. Azure ポータルにサインインします。Sign in to the Azure portal.
  2. [その他のサービス] を選択し、一覧の [DevTest Labs] を選択します。Select More Services, and then select DevTest Labs from the list.
  3. ラボの一覧で目的のラボを選択します。From the list of labs, select the desired lab.
  4. ラボのウィンドウで、[追加+] を選択します。On the lab's pane, select Add+.
  5. [ベースの選択] ウィンドウに、使用できるベース イメージが表示されます。Azure Resource Manager テンプレートがその先頭に表示されます。The Choose a base pane displays the base images you can use with the Azure Resource Manager templates listed first. 目的の Azure Resource Manager テンプレートを選択します。Select the desired Azure Resource Manager template.

    ベースの選択

  6. [追加] ウィンドウで、[環境名] に値を入力します。On the Add pane, enter the Environment name value. 環境名は、ラボでユーザーに表示される内容です。The environment name is what is displayed to your users in the lab. その他の入力フィールドは、Azure Resource Manager テンプレートで定義します。The remaining input fields are defined in the Azure Resource Manager template. 既定値がテンプレートで定義されている場合、または azuredeploy.parameter.json ファイルが存在する場合は、これらの入力フィールドに既定値が表示されます。If default values are defined in the template or the azuredeploy.parameter.json file is present, default values are displayed in those input fields. "セキュリティで保護された文字列" 型のパラメーターの場合、ラボの個人のシークレット ストアに格納されたシークレットを使用することができます。For parameters of type secure string, you can use the secrets stored in the lab’s personal secret store.

    [追加] ウィンドウ

    注意

    値を指定した場合でも、空の値として表示されるパラメーター値がいくつかあります。There are several parameter values that - even if specified - are displayed as empty values. そのため、ユーザーが Azure Resource Manager テンプレートのパラメーターにそれらの値を割り当てた場合、DevTest Labs に値は表示されません。Therefore, if users assign those values to parameters in an Azure Resource Manager template, DevTest Labs does not display the values. 代わりに、空白の入力フィールドが表示され、ラボ ユーザーは環境を作成するときに、ここに値に入力する必要があります。Instead, blank input fields are shown where lab users must enter a value when creating the environment.

    • GEN-UNIQUEGEN-UNIQUE
    • GEN-UNIQUE-[N]GEN-UNIQUE-[N]
    • GEN-SSH-PUB-KEYGEN-SSH-PUB-KEY
    • GEN-PASSWORDGEN-PASSWORD
  7. [追加] を選択して環境を作成します。Select Add to create the environment. 環境でプロビジョニングが開始され、[仮想マシン] の一覧に状態が即座に表示されます。The environment starts provisioning immediately with the status displaying in the My virtual machines list. Azure Resource Manager テンプレートで定義されているすべてのリソースをプロビジョニングするために、新しいリソース グループがラボによって自動的に作成されます。A new resource group is automatically created by the lab to provision all the resources defined in the Azure Resource Manager template.

  8. 環境が作成されたら、[仮想マシン] の一覧で環境を選択してリソース グループ ウィンドウを開き、環境内にプロビジョニングされたすべてのリソースを参照します。Once the environment is created, select the environment in the My virtual machines list to open the resource group pane and browse all of the resources provisioned in the environment.

    [仮想マシン] の一覧

    環境にプロビジョニングされている VM の一覧を単に表示するために環境を展開することもできます。You can also expand the environment to view just the list of VMs that are provisioned in the environment.

    [仮想マシン] の一覧

  9. 任意の環境をクリックして、アーティファクトの適用、データ ディスクのアタッチ、自動シャット ダウン時刻の変更など、使用可能なアクションを参照します。Click any of the environments to view the available actions - such as applying artifacts, attaching data disks, changing auto-shutdown time, and more.

    環境のアクション

Resource Manager テンプレートをデプロイして VM を作成するDeploy a Resource Manager template to create a VM

Resource Manager テンプレートを保存して必要に応じてカスタマイズしたら、VM の作成を自動化するのに使用できます。After you have saved a Resource Manager template and customized it for your needs, you can use it to automate VM creation.

注意

ラボ所有者権限を持つユーザーだけが、Azure PowerShell を使用して Resource Manager テンプレートから VM を作成できます。Only a user with lab owner permissions can create VMs from a Resource Manager template by using Azure PowerShell. Resource Manager テンプレートを使用して VM の作成を自動化する場合でユーザー権限しか持っていない場合は、CLI で az lab vm create コマンド を使用します。If you want to automate VM creation using a Resource Manager template and you only have user permissions, you can use the az lab vm create command in the CLI.

一般的な制限事項General limitations

DevTest Labs で Resource Manager テンプレートを使用する場合は、次の制限事項を考慮してください。Consider these limitations when using a Resource Manager template in DevTest Labs:

  • 作成した Resource Manager テンプレートから既存のリソースは参照できません。新しいリソースのみを参照できます。Any Resource Manager template you create cannot refer to existing resources; it can only refer to new resources. さらに、通常 DevTest Labs の外部にデプロイする既存の Resource Manager テンプレートがあり、これに既存のリソースへの参照が含まれている場合は、ラボで使用できません。In addition, if you have an existing Resource Manager template that you typically deploy outside of DevTest Labs and it contains references to existing resources, it can't be used in the lab.

    唯一の例外は、既存の仮想ネットワークを参照できることです。The only exception to this is that you can reference an existing virtual network.

  • Resource Manager テンプレートから作成されたラボ VM からは、数式を作成できません。Formulas can't be created from lab VMs that were created from an Resource Manager template.

  • Resource Manager テンプレートから作成されたラボ VM からは、カスタム イメージを作成できません。Custom images can't be created from lab VMs that were created from an Resource Manager template.

  • Resource Manager テンプレートをデプロイするときに、ほとんどのポリシーは評価されません。Most policies are not evaluated when you deploy Resource Manager templates.

    たとえば、ユーザーは 5 つの VM しか作成できないことを指定するラボ ポリシーがあるとします。For example, you might have a lab policy specifying that a user can only create five VMs. それでも、ユーザーが数十の VM を作成する Resource Manager テンプレートをデプロイすると、できてしまいます。However, if the user deploys an Resource Manager template that creates dozens of VMs, that is allowed. 次のようなポリシーは評価されません。Policies that are not evaluated include:

    • ユーザーあたりの VM 数Number of VMs per user
    • ラボ ユーザーあたりの Premium VM 数Number of premium VMs per lab user
    • ラボ ユーザーあたりの Premium ディスク数Number of premium disks per lab user

ラボ ユーザーの環境リソース グループへのアクセス権を構成するConfigure environment resource group access rights for lab users

ラボ ユーザーは、Resource Manager テンプレートをデプロイできます。Lab users can deploy a Resource Manager template. しかし既定では、ラボ ユーザーは閲覧者のアクセス権を持ちます。つまり、環境リソース グループのリソースを変更できません。But by default, they have Reader access rights, which means they can’t change the resources in an environment resource group. たとえば、リソースを停止または開始できません。For example, they cannot stop or start their resources.

ラボ ユーザーに共同作成者のアクセス権を付与するには、次の手順に従います。Follow these steps to give your lab users Contributor access rights. すると、ラボ ユーザーが Resource Manager テンプレートをデプロイするときに、その環境のリソースを編集できるようになります。Then, when they deploy a Resource Manager template, they will be able to edit the resources in that environment.

  1. ラボの [概要] ウィンドウで、[構成とポリシー] を選択します。On your lab's Overview pane, select Configuration and policies.
  2. [ラボの設定] を選択します。Select Lab settings.
  3. [ラボの設定] ウィンドウで、[共同作成者] を選択してラボ ユーザーに書き込み権限を付与します。In the Lab Settings pane, select Contributor to grant write permissions to lab users.

    ラボ ユーザーのアクセス権の構成

  4. [保存] を選択します。Select Save.

次の手順Next steps