Windows 仮想マシンへのデプロイDeploy to a Windows Virtual Machine

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Azure Pipelines を使用して、Windows 上で実行されている IIS web サーバーへの ASP.NET または Node.js アプリの継続的なデプロイを設定する方法について説明します。We'll show you how to set up continuous deployment of your ASP.NET or Node.js app to an IIS web server running on Windows using Azure Pipelines. 継続的インテグレーションパイプラインによって web デプロイパッケージが発行されている限り、このクイックスタートの手順を使用できます。You can use the steps in this quickstart as long as your continuous integration pipeline publishes a web deployment package.

Web アプリケーションの一般的なリリースパイプライン

コード変更をコミットしてプッシュすると、自動的にビルドされてデプロイされます。After you commit and push a code change, it is automatically built and then deployed. 結果はサイトに自動的に表示されます。The results will automatically show up on your site.

CI ビルド パイプラインを定義するDefine your CI build pipeline

Web 配置パッケージを発行する継続的インテグレーション (CI) ビルドパイプラインが必要です。You'll need a continuous integration (CI) build pipeline that publishes your web deployment package. CI ビルドパイプラインを設定するには、次の項目を参照してください。To set up a CI build pipeline, see:

前提条件Prerequisites

IIS 構成IIS configuration

構成は、展開するアプリの種類によって異なります。The configuration varies depending on the type of app you are deploying.

ASP.NET アプリASP.NET app

VM で、 管理者: Windows PowerShell コンソールを開きます。On your VM, open an Administrator: Windows PowerShell console. IIS のインストール:Install IIS:

# Install IIS
Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features

ASP.NET Core アプリASP.NET Core app

Windows で ASP.NET Core アプリを実行するには、いくつかの依存関係が必要です。Running an ASP.NET Core app on Windows requires some dependencies.

VM で、 管理者: Windows PowerShell コンソールを開きます。On your VM, open an Administrator: Windows PowerShell console. IIS および必要な .NET 機能をインストールします。Install IIS and the required .NET features:

# Install IIS
Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features

# Install the .NET Core SDK
Invoke-WebRequest https://go.microsoft.com/fwlink/?linkid=848827 -outfile $env:temp\dotnet-dev-win-x64.1.0.6.exe
Start-Process $env:temp\dotnet-dev-win-x64.1.0.6.exe -ArgumentList '/quiet' -Wait

# Install the .NET Core Windows Server Hosting bundle
Invoke-WebRequest https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer -outfile $env:temp\DotNetCore.WindowsHosting.exe
Start-Process $env:temp\DotNetCore.WindowsHosting.exe -ArgumentList '/quiet' -Wait

# Restart the web server so that system PATH updates take effect
Stop-Service was -Force
Start-Service w3svc

Node.js アプリNode.js app

IIS サーバーに IISnode をインストールして構成するには、 このトピック の手順に従います。Follow the instructions in this topic to install and configure IISnode on IIS servers.

配置グループを作成するCreate a deployment group

Azure Pipelines の配置グループを使用すると、アプリをホストするために使用するサーバーを簡単に整理できます。Deployment groups in Azure Pipelines make it easier to organize the servers that you want to use to host your app. 配置グループは、それぞれに Azure Pipelines エージェントがあるマシンのコレクションです。A deployment group is a collection of machines with an Azure Pipelines agent on each of them. 各マシンは Azure Pipelines と対話して、アプリのデプロイを調整します。Each machine interacts with Azure Pipelines to coordinate deployment of your app.

  1. Azure Pipelines web ポータルを開き、[ 配置グループ] を選択します。Open the Azure Pipelines web portal and choose Deployment groups.

  2. [ 配置グループの追加 ] (配置グループが既に存在する場合は [ 新規 ]) をクリックします。Click Add Deployment group (or New if there are already deployment groups in place).

  3. グループの名前 (「 Myiis」など) を入力し、[ 作成] をクリックします。Enter a name for the group, such as myIIS, and then click Create.

  4. [ コンピューターの登録 ] セクションで、[ Windows ] が選択されていること、[ 認証用のスクリプトで個人用アクセストークンを使用 する] も選択されていることを確認します。In the Register machine section, make sure that Windows is selected, and that Use a personal access token in the script for authentication is also selected. [ スクリプトをクリップボードにコピー] を クリックします。Click Copy script to clipboard.

    クリップボードにコピーしたスクリプトは、新しい web 配置パッケージを受信して IIS に適用できるように、VM 上のエージェントをダウンロードして構成します。The script that you've copied to your clipboard will download and configure an agent on the VM so that it can receive new web deployment packages and apply them to IIS.

  5. VM で、 管理者の PowerShell コンソールにスクリプトを貼り付けて実行します。On your VM, in an Administrator PowerShell console, paste and run the script.

  6. エージェントのタグを構成するように求めるメッセージが表示されたら、enter キーを押します (タグは不要です)。When you're prompted to configure tags for the agent, press Enter (you don't need any tags).

  7. ユーザーアカウントの入力を求められたら、enter キーを押して既定値をそのまま使用します。When you're prompted for the user account, press Enter to accept the defaults.

    エージェントを実行するアカウントには、C:\Windows\system32\inetsrv\ ディレクトリのアクセス許可を 管理 する必要があります。The account under which the agent runs needs Manage permissions for the C:\Windows\system32\inetsrv\ directory. 管理者以外のユーザーをこのディレクトリに追加することはお勧めしません。Adding non-admin users to this directory is not recommended. さらに、アプリケーションプールのカスタムユーザー id がある場合は、その id に暗号キーを読み取るためのアクセス許可が必要です。In addition, if you have a custom user identity for the application pools, the identity needs permission to read the crypto-keys. このためには、ローカルサービスアカウントとユーザーアカウントに読み取りアクセス権を付与する必要があります。Local service accounts and user accounts must be given read access for this. 詳細については、「 Keyset は存在しません」というエラーメッセージを参照してください。For more details, see Keyset does not exist error message.

  8. スクリプトが完了すると、メッセージ サービス vstsagent が正常に開始 されたことが表示されます。When the script is done, it displays the message Service vstsagent.account.computername started successfully.

  9. Azure Pipelines の [ 展開グループ ] ページで、 myiis 配置グループを開きます。On the Deployment groups page in Azure Pipelines, open the myIIS deployment group. [ ターゲット ] タブで、VM が表示されていることを確認します。On the Targets tab, verify that your VM is listed.

CD リリースパイプラインを定義するDefine your CD release pipeline

CD リリースパイプラインは、CI ビルドによって発行された成果物を取得し、IIS サーバーに展開します。Your CD release pipeline picks up the artifacts published by your CI build and then deploys them to your IIS servers.

  1. まだインストールしていない場合は、Marketplace から WinRM 拡張機能 を使用して IIS Web アプリのデプロイ をインストールします。If you haven't already done so, install the IIS Web App Deployment Using WinRM extension from Marketplace. この拡張機能には、この例に必要なタスクが含まれています。This extension contains the tasks required for this example.

  2. 次のいずれかの操作を行います。Do one of the following:

    • CI ビルドを完了したばかりの場合は、ビルドの [ 概要 ] タブで [ リリース] を選択します。If you've just completed a CI build then, in the build's Summary tab choose Release. これにより、ビルドパイプラインに自動的にリンクされる新しいリリースパイプラインが作成されます。This creates a new release pipeline that's automatically linked to the build pipeline.

    • Azure Pipelines の [リリース] タブを開き、 + リリースパイプラインの一覧のドロップダウンを開き、[リリースパイプラインの作成] を選択します。Open the Releases tab of Azure Pipelines, open the + drop-down in the list of release pipelines, and choose Create release pipeline.

  3. [ IIS Web サイトの展開 ] テンプレートを選択し、[ 適用] を選択します。Select the IIS Website Deployment template and choose Apply.

  4. ビルドの概要から新しいリリースパイプラインを作成した場合は、[パイプライン] タブの [成果物] セクションにビルドパイプラインと成果物が表示されていることを確認します。[リリース] タブから新しいリリースパイプラインを作成した場合は、[ + 追加] リンクを選択し、ビルドアーティファクトを選択します。If you created your new release pipeline from a build summary, check that the build pipeline and artifact is shown in the Artifacts section on the Pipeline tab. If you created a new release pipeline from the Releases tab, choose the + Add link and select your build artifact.

  5. [成果物] セクションで [継続的デプロイ] アイコンを選択し、継続的配置トリガーが有効になっていることを確認して、 main 分岐を含めるフィルターを追加します。Choose the Continuous deployment icon in the Artifacts section, check that the continuous deployment trigger is enabled, and add a filter to include the main branch.

  6. [ タスク ] タブを開き、 IIS 展開 ジョブを選択します。Open the Tasks tab and select the IIS Deployment job. [ 配置] グループ で、前の手順で作成した配置グループ ( myiis など) を選択します。For the Deployment Group, select the deployment group you created earlier (such as myIIS).

  7. リリース パイプラインを保存します。Save the release pipeline.

アプリをデプロイするためのリリースを作成するCreate a release to deploy your app

これで、リリースを作成する準備ができました。これは、特定のビルドで生成された成果物を使用してリリースパイプラインを実行することを意味します。You're now ready to create a release, which means to run the release pipeline with the artifacts produced by a specific build. これにより、ビルドが配置されます。This will result in deploying the build:

  1. [ + リリース ] を選択し、[ リリースの作成] を選択します。Choose + Release and select Create a release.

  2. [ 新しいリリースの作成 ] パネルで、使用する成果物のバージョンが選択されていることを確認し、[ 作成] を選択します。In the Create a new release panel, check that the artifact version you want to use is selected and choose Create.

  3. 情報バーのメッセージでリリースリンクを選択します。Choose the release link in the information bar message. 例: "Release release-1 が作成されました"。For example: "Release Release-1 has been created".

  4. パイプラインビューで、パイプラインのステージの状態リンクを選択して、ログとエージェントの出力を表示します。In the pipeline view, choose the status link in the stages of the pipeline to see the logs and agent output.

  5. リリースが完了したら、アプリに移動し、その内容を確認します。After the release is complete, navigate to your app and verify its contents.

次のステップNext steps