DevTest Labs 仮想マシンのカスタム アーティファクトの作成Create custom artifacts for your DevTest Labs virtual machine

この記事で説明する手順の概要については、次のビデオをご覧ください。Watch the following video for an overview of the steps described in this article:

概要Overview

"アーティファクト" を使用すると、VM のプロビジョニング後にアプリケーションをデプロイして設定できます。You can use artifacts to deploy and set up your application after you provision a VM. アーティファクトは、Git リポジトリ内のフォルダーに格納されているアーティファクト定義ファイルとその他のスクリプト ファイルで構成されます。An artifact consists of an artifact definition file and other script files that are stored in a folder in a Git repository. アーティファクト定義ファイルは、VM にインストールするものを指定するのに使用できる JSON と式で構成されます。Artifact definition files consist of JSON and expressions that you can use to specify what you want to install on a VM. たとえば、アーティファクトの名前、実行するコマンド、コマンドの実行時に使用可能なパラメーターを定義できます。For example, you can define the name of an artifact, a command to run, and parameters that are available when the command is run. アーティファクト定義ファイル内では、他のスクリプト ファイルを名前で参照できます。You can refer to other script files within the artifact definition file by name.

アーティファクト定義ファイルの形式Artifact definition file format

次の例では、定義ファイルの基本構造を構成するセクションを示します。The following example shows the sections that make up the basic structure of a definition file:

{
  "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json",
  "title": "",
  "description": "",
  "iconUri": "",
  "targetOsType": "",
  "parameters": {
    "<parameterName>": {
      "type": "",
      "displayName": "",
      "description": ""
    }
  },
  "runCommand": {
    "commandToExecute": ""
  }
}
要素名Element name 必須Required? DescriptionDescription
$schema$schema いいえNo JSON スキーマ ファイルの場所。Location of the JSON schema file. JSON スキーマ ファイルは、定義ファイルの有効性をテストする際に役立ちます。The JSON schema file can help you test the validity of the definition file.
titletitle はいYes ラボで表示されるアーティファクトの名前Name of the artifact displayed in the lab.
Descriptiondescription はいYes ラボで表示されるアーティファクトの説明Description of the artifact displayed in the lab.
iconUriiconUri いいえNo ラボで表示されるアイコンの URI。URI of the icon displayed in the lab.
targetOsTypetargetOsType ありYes アーティファクトをインストールする VM のオペレーティング システム。Operating system of the VM where the artifact is installed. サポートされているオプションは、Windows と Linux です。Supported options are Windows and Linux.
パラメーターparameters いいえNo マシンでアーティファクトのインストール コマンドが実行されるときに指定する値。Values that are provided when the artifact install command is run on a machine. これは、アーティファクトをカスタマイズする際に役立ちます。This helps you customize your artifact.
runCommandrunCommand はいYes VM 上で実行されるアーティファクトのインストール コマンド。Artifact install command that is executed on a VM.

アーティファクトのパラメーターArtifact parameters

定義ファイルの parameters セクションでは、アーティファクトのインストール時にユーザーが入力できる値を指定します。In the parameters section of the definition file, specify which values a user can input when they install an artifact. アーティファクトのインストール コマンドでこれらの値を参照できます。You can refer to these values in the artifact install command.

パラメーターを定義するには、次の構造を使用します。To define parameters, use the following structure:

"parameters": {
    "<parameterName>": {
      "type": "<type-of-parameter-value>",
      "displayName": "<display-name-of-parameter>",
      "description": "<description-of-parameter>"
    }
  }
要素名Element name 必須Required? DescriptionDescription
typetype はいYes パラメーター値の型。Type of parameter value. 使用できる型については、下記を参照してください。See the following list for the allowed types.
displayNamedisplayName はいYes ラボのユーザーに対して表示されるパラメーターの名前。Name of the parameter that is displayed to a user in the lab.
Descriptiondescription はいYes ラボで表示されるパラメーターの説明。Description of the parameter that is displayed in the lab.

使用できる型は次のとおりです。Allowed types are:

  • string (有効な JSON 文字列)string (any valid JSON string)
  • int (有効な JSON 整数)int (any valid JSON integer)
  • bool (有効な JSON ブール値)bool (any valid JSON Boolean)
  • array (有効な JSON 配列)array (any valid JSON array)

アーティファクトの式と関数Artifact expressions and functions

式と関数を使用して、アーティファクトのインストール コマンドを作成できます。You can use expressions and functions to construct the artifact install command. 式は角かっこ ([ と ]) で囲み、アーティファクトのインストール時に評価されます。Expressions are enclosed with brackets ([ and ]), and are evaluated when the artifact is installed. 式は、JSON 文字列値内の任意の場所に配置できます。Expressions can appear anywhere in a JSON string value. 式は常に別の JSON 値を返します。Expressions always return another JSON value. 角かっこ ([) で始まるリテラル文字列を使用する必要がある場合は、2 つの角かっこ ([[) を使用する必要があります。If you need to use a literal string that starts with a bracket ([), you must use two brackets ([[). 通常は、関数と共に式を使用して値を構成します。Typically, you use expressions with functions to construct a value. JavaScript の場合と同様に、関数呼び出しは functionName(arg1,arg2,arg3)という形式になります。Just like in JavaScript, function calls are formatted as functionName(arg1,arg2,arg3).

次の一覧に、一般的な関数を示します。The following list shows common functions:

  • parameters(parameterName): アーティファクト コマンドの実行時に指定するパラメーター値を返します。parameters(parameterName): Returns a parameter value that is provided when the artifact command is run.
  • concat(arg1,arg2,arg3, …..): 複数の文字列値を結合します。concat(arg1,arg2,arg3, …..): Combines multiple string values. この関数は、さまざまな引数を受け取ることができます。This function can take a variety of arguments.

次の例は、式と関数を使用して値を構成する方法を示しています。The following example shows how to use expressions and functions to construct a value:

runCommand": {
     "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1'
, ' -RawPackagesList ', parameters('packages')
, ' -Username ', parameters('installUsername')
, ' -Password ', parameters('installPassword'))]"
}

カスタム アーティファクトの作成Create a custom artifact

  1. JSON エディターをインストールします。Install a JSON editor. アーティファクト定義ファイルを操作するには、JSON エディターが必要です。You need a JSON editor to work with artifact definition files. Windows、Linux、OS X で使用可能な Visual Studio Code を使用することをお勧めします。We recommend using Visual Studio Code, which is available for Windows, Linux, and OS X.
  2. サンプルの artifactfile.json 定義ファイルを取得します。Get a sample artifactfile.json definition file. GitHub リポジトリで、DevTest Labs チームが作成したアーティファクトを確認します。Check out the artifacts created by the DevTest Labs team in our GitHub repository. リポジトリには、独自のアーティファクトの作成に役立つアーティファクトの豊富なライブラリが用意されています。We have created a rich library of artifacts that can help you create your own artifacts. アーティファクト定義ファイルをダウンロードし、変更を加えて独自のアーティファクトを作成します。Download an artifact definition file and make changes to it to create your own artifacts.
  3. IntelliSense を使用します。Make use of IntelliSense. IntelliSense を使用して、アーティファクト定義ファイルの作成に使用できる有効な要素を確認します。Use IntelliSense to see valid elements that you can use to construct an artifact definition file. 要素の値のさまざまなオプションを確認することもできます。You also can see the different options for values of an element. たとえば、targetOsType 要素を編集するときに、IntelliSense は Windows と Linux の 2 つの選択肢を表示します。For example, when you edit the targetOsType element, IntelliSense shows you two choices, for Windows or Linux.
  4. Git リポジトリにアーティファクトを格納します。Store the artifact in a Git repository.

    1. アーティファクトごとに個別のディレクトリを作成します。Create a separate directory for each artifact. ディレクトリ名は、アーティファクト名と同じにします。The directory name should be the same as the artifact name.
    2. 作成したディレクトリに、アーティファクト定義ファイル (artifactfile.json) を格納します。Store the artifact definition file (artifactfile.json) in the directory that you created.
    3. アーティファクト インストール コマンドから参照されるスクリプトを格納します。Store the scripts that are referenced from the artifact install command.

      アーティファクト フォルダーの例を次に示します。Here is an example of how an artifact folder might look:

      アーティファクト フォルダーの例

  5. アーティファクト リポジトリをラボに追加します。Add the artifacts repository to the lab. アーティファクトとテンプレートを格納するための Git リポジトリの追加に関する記事をご覧ください。See Add a Git repository for artifacts and templates.

Azure DevTest Labs を使用するGet started with Azure DevTest Labs

Azure を利用するのが初めてであれば、New to Azure? 無料の Azure アカウントを作成しますCreate a free Azure account.

既に Azure をご利用中であれば、Already on Azure? DevTest Labs で最初のラボの使用を開始します。Get started with your first lab in DevTest Labs!

Get started with Azure DevTest Labs in minutesGet started with Azure DevTest Labs in minutes

次のステップNext steps