ビルド、配置、およびテストのワークフローの配置スクリプトの作成
ビルド、配置、テストのワークフローを使用してアプリケーションを配置するには、配置スクリプトを作成し、ビルドを追加する必要があります。配置スクリプトは、のラボ環境のマシンにビルドをコピー bat または CMD ファイルです。ビルドでインストール パッケージが含まれている場合は、インストール パッケージを実行するために配置スクリプトを使用できます。ビルド、配置、テストのワークフローを作成すると、ワークフローに配置スクリプトを実行するコマンドを追加します。ワークフローを実行すると、ビルド コントローラーは、指定のラボ環境のマシンの作業ディレクトリのコマンドを実行します。
「方法: SCVMM 環境のビルド、配置、およびテストのワークフローを作成する」または「方法: 標準環境のビルド、配置、およびテストのワークフローを作成する」を参照してください。これらのセクションでは、ビルド、配置、およびテストのワークフローの配置スクリプトを作成および使用する方法を説明しています:
配置にビルド ファイルを準備できます。
配置スクリプトを記述できます。
配置スクリプトをビルド
作業ディレクトリの準備
ワークフローへ配置スクリプトの追加
- 組み込み変数
要件
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
配置にビルド ファイルを準備できます。
アプリケーションをインストールするために選択する方法は、実際の配置スクリプトを実行する必要がある主要なタスクを決定します。アプリケーションをクライアント コンピューターにインストール EXE をコピーするにしか含まれていない場合があります。または、複数のコンピューターへのインストールに配置パッケージの実行を含めることができます。次の表は、配置の種類ごとに、これらのタスクを示します。
重要 |
---|
アプリケーションがアプリケーションを配置する前にインストールし、配置によって構成されたスクリプト必要なソフトウェアに依存する場合、ラボ環境のマシンを準備すると手動でインストールする必要があります。環境スナップショットを配置する SCVMM の環境を使用する場合、スナップショット インストールに必要なソフトウェアがあることを確認する必要があります。 |
インストール型 |
説明 |
---|---|
Web サービスの配置パッケージ |
注意
IIS を使用するアプリケーションを配置する場合、のラボ環境の IIS サーバーにアプリケーションを配置する前に、Web 配置エージェント サービスとして構成する必要があります。
配置スクリプトは、のラボ環境のターゲット コンピューターにビルドのファイルの配置パッケージをコピーし、配置パッケージを実行する必要があります。これを行うには、パラメーターとして配置スクリプトにドメイン名、TFS サービス アカウント名およびサーバー名を渡す必要がある場合があります。インストールのこの型は、通常、アプリケーションを配置する前に手動で Web サーバーまたはデータベース サーバーなど、必要なソフトウェアをインストールして構成する必要があります。必要なソフトウェアの構成は、ターゲット コンピューターのアプリケーションの配置を有効にする特定のタスクを必要とする場合があります。たとえば、アプリケーションが IIS を使用すると、そのラボ環境の IIS サーバーにアプリケーションを配置する前に、Web 配置エージェント サービスに構成しておく必要があります。 |
インストール パッケージのないビルド ファイル |
配置スクリプトは、アプリケーションをコピーし、ラボ環境のターゲット コンピューターにファイルをビルドする必要があります。 |
インストール パッケージ |
注意
ビルド、配置、テストのワークフローを持つインストール パッケージを配置する場合、配置スクリプトは入る、インストール パッケージを移動したり、アプリケーションの配置が失敗すると生成されるユーザーを処理する必要があります。
配置スクリプトは、のラボ環境のターゲット コンピューターに、インストール パッケージをコピーし、インストール パッケージを実行する必要があります。配置での実行、インストール パッケージ スクリプト場合は、それがサイレント インストールにする必要があります。インストールに必要なユーザー入力は配置スクリプトによって処理される必要があります。これは、資格情報が含まれています。そのインストール パッケージを移動すると配置スクリプトを生成するすべてのユーザーの入力を処理し、アプリケーションの配置は失敗します。Web アプリケーションを配置すると、配置のインストール パッケージを要求する場合は、InstallShield のインストール パッケージを使用することをお勧めします。InstallShield の詳細については、Windows Installer Deploymentを参照してください。 |
配置スクリプトを記述できます。
これらは配置スクリプトで実行する一般的なタスクです:
ビルド コントローラーのビルド パスを取得します。コマンドの引数として配置スクリプトにこれを送信できます。
配置のパスを指定します。
配置のディレクトリを作成します。また、配置スクリプトではなく、これを手動で行うことができます。ワークフローの配置前の環境スナップショットを使用すると、だけのスナップショット内の仮想マシンのディレクトリを作成する必要があります。
ビルド パスからの配置のパスに、配置パッケージをコピーします。
配置のディレクトリに配置パッケージを実行します。
次のコマンドは、配置スクリプトによって実行される共通のタスクを示します。
REM set build path
set buildlocation=%1
REM set deployment path
set targetdir="C:\deploy"
REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)
REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%
REM if you are using a deployment package you can run it here, after you copy it to your deployment directory
配置スクリプトをビルド
配置スクリプトを作成したら、ビルドの出力にコピーするバージョン コントロールにチェックインし、次にそれらを構成します。配置スクリプトをビルドするには、ソリューション内に最初に、Visual Studio のプロジェクトの下に、格納されていることを確認します。次に **[ソリューション エクスプローラー]で、[常にコピーする]**に 出力ディレクトリのコピー を変更する **[プロパティ]**の下の配置スクリプトを選択して、Visual Studio でこれを行うことができます。
作業ディレクトリの準備
ビルド、配置、およびテストのワークフローに追加するコマンドの各セットの作業ディレクトリを指定できます。作業ディレクトリを指定する場合、ビルド コントローラーはそのロールに割り当てである各コンピューターの作業ディレクトリで指定されたコマンドを実行します。ビルド、配置、およびテストのワークフローにコマンドを追加するときに作業ディレクトリを指定しない場合は、ビルド コントローラーは既定の動作 directory−C:\Windows\System32のコマンドを実行します。
重要 |
---|
ビルド、配置、テストのワークフローに追加コマンドを使用して作業ディレクトリを作成しないでください; ディレクトリする場合は、配置スクリプトがそれらのファイルをディレクトリにコピーの前に作成されません。 |
作業ディレクトリを指定すると、ディレクトリが配置スクリプトに移動する前にこのディレクトリに対するすべてのファイル作成されていることを確認します。ビルド、配置、およびテストのワークフローに配置スクリプトを追加するために使用するコマンドで作業ディレクトリを作成しないでください。ディレクトリは、配置スクリプトがディレクトリにファイルをコピーの前に作成されません。作業ディレクトリがこのオブジェクトへの配置スクリプトのコピーのファイルの前に作成されるようにするには、手動でラボ環境の対象コンピューターのディレクトリを作成する、コマンドでもにファイルをコピーする前にディレクトリは配置スクリプトで作成する必要があります。
ワークフローへ配置スクリプトの追加
追加の Windows シェルでは、ビルド、配置、およびテストのワークフローに、のラボ環境にアプリケーションを配置するためのコマンドが用意されます。配置スクリプトを使用すると、コマンドは、ビルド コントローラーからターゲット コンピューターの作業ディレクトリに配置スクリプトをコピーし、配置スクリプトを実行する必要があります。ただし、のみ作業ディレクトリにいくつかのファイルのコピーを含む単純なアプリケーションのインストールに、ワークフローでは、外部の配置スクリプトを指定せずにシェル コマンドを使用できます。
から実行されるコマンドを追加する場合、mkdirのようなダイアログを表示したり、バッチ ファイル、cmd /cを使用してコマンドを開始する必要があります。移動します。たとえば、copyexe をバッチ ファイル copyexe.bat に、コマンド cmd /c $(BuildLocation)\copyexe $(BuildLocation) は、仮想マシンのローカル ディレクトリに、実行可能ファイルをコピーします。
ビルド、配置、およびテストのワークフローにこれらのコマンドを追加すると組み込みの変数:、指定されたパスとコンピューターを識別するために、組み込みの変数を使用できます。また、配置スクリプトにこれらの変数を渡すことができます。
$ (BuildLocation)
1 つが、ビルド、配置、およびテストのワークフローで構成されている場所、ビルドのファイルが置かれている完全パス、またはビルドのドロップします。ビルドのファイルにアクセスするには、この変数を使用します。$ (InternalComputerName_<VM Name>)
SCVMM の環境の仮想マシンのコンピューター名。ホストのコンピューター名がわからない場合、仮想マシン ホストにアクセスするには、この変数を使用します。配置スクリプトで Web サーバーを設定するためにコンピューター名が必要な場合、コンピューター名を引数としてスクリプトに渡すことができます。たとえば、Web サーバーの仮想マシン名が VM1 でコンピューター名が MyWebServer、スクリプト、このの引数が、スクリプト MyWebServer に値を渡すため $(InternalComputerName_VM1) を入力します。$ (ComputerName_<VM Name>)
[!メモ]
は、SCVMM の環境でネットワークの分離を使用するとSCVMM の環境でネットワークの分離: は、$(InternalComputerName_<VM Name>) の値、環境内の各仮想マシンのコピーのインスタンスで同じですが、$(ComputerName_<VM Name>) の値が異なります。
仮想マシンの完全修飾ドメイン名。この変数のアクセスを SCVMM の環境外のコンピューター使用します。Web サーバーを設定するには、この変数を引数として渡しする場合があります。たとえば、Web サーバーの仮想マシン名が VM1 の場合、配置スクリプトに $(ComputerName_VM1) の引数を渡すことにより、仮想マシンの完全修飾ドメイン名にアクセスできます。