Linux 仮想マシン上の nginx web サーバーに web アプリをデプロイするDeploy a web app to an nginx web server on a Linux 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

注意

YAML を使用して Linux 仮想マシンにアプリケーションをデプロイする場合は、「 linux 仮想マシンへのデプロイ」を参照してください。If you want to deploy your application to a Linux virtual machine using YAML, see Deploy to a Linux virtual machine.

Azure Pipelines または Team Foundation Server (TFS) 2018 以降を使用して、Ubuntu 上で実行されている nginx web サーバーへのアプリの継続的なデプロイを設定する方法について説明します。We'll show you how to set up continuous deployment of your app to an nginx web server running on Ubuntu using Azure Pipelines or Team Foundation Server (TFS) 2018 and higher. 継続的インテグレーションパイプラインによって web デプロイパッケージが発行されていれば、どのアプリでもこのクイックスタートの手順を使用できます。You can use the steps in this quickstart for any app 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) ビルド パイプラインと、Ubuntu サーバーでローカルに実行できるデプロイ スクリプトが必要です。You'll need a continuous integration (CI) build pipeline that publishes your web application, as well as a deployment script that can be run locally on the Ubuntu server. 使用するランタイムに基づいて、CI ビルド パイプラインを設定します。Set up a CI build pipeline based on the runtime you want to use.

デプロイするアプリが GitHub に既にある場合は、そのコードのパイプラインを作成できます。If you already have an app in GitHub that you want to deploy, you can create a pipeline for that code.

新しいユーザーの場合は、GitHub にこのリポジトリをフォークします。If you are a new user, fork this repo in GitHub:

https://github.com/spring-guides/gs-spring-boot-docker.git

「Linux にデプロイするビルドを作成するための Maven を使用した Java アプリのビルド 」で説明されている追加の手順に従います。Follow additional steps mentioned in Build your Java app with Maven for creating a build to deploy to Linux.

Linux VM の前提条件Prerequisites for the Linux VM

上記のサンプルリポジトリで使用されているデプロイスクリプトは、Ubuntu 16.04 でテストされています。このクイックスタートでは、同じバージョンの Linux VM を使用することをお勧めします。The deployment scripts used in the above sample repositories have been tested on Ubuntu 16.04, and we recommend you use the same version of Linux VM for this quickstart. アプリに使用されるランタイム スタックに基づいて、以下で説明する追加手順のようにします。Follow the additional steps described below based on the runtime stack used for the app.

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

Azure Pipelines の配置グループを使用すると、アプリをホストするために使用するサーバーを簡単に整理できます。Deployment groups in Azure Pipelines make it easier to organize the servers 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. Linux VM への SSH セッションを開きます。Open a SSH session to your Linux VM. これを行うには、 Azure portalの右上にあるメニューの [Cloud Shell] ボタンを使用します。You can do this using the Cloud Shell button on the menu in the upper-right of the Azure portal.

    ![Azure portal cloud shell] ボタン](../media/cloud-shell-menu-image.png)

  2. VM の IP アドレスに置き換えて次のコマンドを入力し、セッションを開始します。Initiate the session by typing the following command, substituting the IP address of your VM:

    ssh <publicIpAddress>

    詳細については、「 VM への SSH接続」を参照してください。For more information, see SSH into your VM.

  3. 次のコマンドを実行します。Run the following command:

    sudo apt-get install -y libunwind8 libcurl3

    このコマンドによってインストールされるライブラリは、Ubuntu 16.04 VM にビルドとリリースエージェントをインストールするための前提条件です。The libraries this command installs are Prerequisites for installing the build and release agent onto a Ubuntu 16.04 VM. Linux の他のバージョンの前提条件については、 こちらを参照してください。Prerequisites for other versions of Linux can be found here.

  4. Azure Pipelines web ポータルを開き、[ Azure Pipelines] に移動して、[ 配置グループ] を選択します。Open the Azure Pipelines web portal, navigate to Azure Pipelines, and choose Deployment groups.

  5. [ 配置グループの追加 ] (または、既存の配置グループがある場合は [ 新規 ]) を選択します。Choose Add Deployment group (or New if you have existing deployment groups).

  6. グループの名前 ( myNginx など) を入力し、[ 作成] を選択します。Enter a name for the group such as myNginx and choose Create.

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

    クリップボードにコピーしたスクリプトは、新しい web 配置パッケージを受信して web サーバーに適用できるように、VM 上のエージェントをダウンロードして構成します。The script 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 web server.

  8. VM への SSH セッションに戻り、スクリプトを貼り付けて実行します。Back in the SSH session to your VM, paste and run the script.

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

  10. スクリプトが終了するのを待って、 Azure Pipelines エージェントで開始 されたメッセージを表示します。Wait for the script to finish and display the message Started Azure Pipelines Agent. 「Q」と入力してファイルエディターを終了し、シェルプロンプトに戻ります。Type "q" to exit the file editor and return to the shell prompt.

  11. Azure Pipelines または TFS に戻り、[ 配置グループ ] ページで myNginx 配置グループを開きます。Back in Azure Pipelines or TFS, on the Deployment groups page, open the myNginx deployment group. [ ターゲット ] タブで、VM が表示されていることを確認します。On the Targets tab, verify that your VM is listed.

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

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

  1. 次のいずれかの操作を行って、リリースパイプラインの作成を開始します。Do one of the following to start creating a release pipeline:

    • CI ビルドを完了したばかりの場合は、[配置] の [ビルドの 概要] タブで、[リリースの作成] の後に [はい] を選択します。If you've just completed a CI build, in the build's Summary tab under Deployments, choose Create release followed by Yes. これにより、ビルドパイプラインに自動的にリンクされる新しいリリースパイプラインが開始されます。This starts 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.

      リリースページでの新しいリリースパイプラインの作成

  2. [ 空のジョブで開始] を選択します。Choose Start with an Empty job.

  3. ビルドの概要から新しいリリースパイプラインを作成した場合は、[パイプライン] タブの [成果物] セクションにビルドパイプラインと成果物が表示されていることを確認します。[リリース] タブから新しいリリースパイプラインを作成した場合は、[ + 追加] リンクを選択し、ビルドアーティファクトを選択します。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.

    ビルドパイプラインと成果物の確認または選択

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

    継続的配置トリガーを確認または設定しています

    [ リリース ] タブから新しいリリースパイプラインを作成した場合、継続的配置は既定では有効になりません。Continuous deployment is not enabled by default when you create a new release pipeline from the Releases tab.

  5. [ タスク ] タブを開き、 エージェントジョブ を選択し、[ 削除 ] を選択してこのジョブを削除します。Open the Tasks tab, select the Agent job, and choose Remove to remove this job.

    パイプラインからエージェントジョブを削除しています

  6. ステージ 1 のデプロイパイプラインの横にある [.. . ] を選択し、[配置グループの追加ジョブ] を選択します。Choose ... next to the Stage 1 deployment pipeline and select Add deployment group job.

    パイプラインへの配置グループステージの追加

  7. [ 配置] グループ で、前の手順で作成した配置グループ ( myNginx など) を選択します。For the Deployment Group, select the deployment group you created earlier such as myNginx.

    配置グループの選択

    このジョブに追加するタスクは、指定した配置グループ内の各コンピューターで実行されます。The tasks you add to this job will run on each of the machines in the deployment group you specified.

  8. [配置グループ] ジョブの横にある [] を選択し、 + タスクカタログで Bash タスクを検索して追加します。 Choose + next to the Deployment group job and, in the task catalog, search for and add a Bash task.

    パイプラインへのシェルスクリプトタスクの追加

  9. Bash タスクのプロパティで、スクリプトパス の [参照] ボタンを使用して、ビルドアーティファクト内の deploy.sh スクリプトへのパスを選択します。In the properties of the Bash task, use the Browse button for the Script Path to select the path to the deploy.sh script in the build artifact. たとえば、 nodejs-sample リポジトリを使用してアプリをビルドする場合、スクリプトの場所は次のようになります。For example, when you use the nodejs-sample repository to build your app, the location of the script is
    $(System.DefaultWorkingDirectory)/nodejs-sample/drop/deploy/deploy.sh.$(System.DefaultWorkingDirectory)/nodejs-sample/drop/deploy/deploy.sh.

    シェルスクリプトタスクの構成

    Node.js web アプリの サンプル deploy.sh ファイル を参照してください。See a sample deploy.sh file for a Node.js web app.

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

    新しく作成されたリリースパイプラインを保存しています

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

これで、リリースを作成する準備ができました。これは、特定のビルドで生成された成果物を使用してリリースパイプラインを実行するプロセスを開始することを意味します。You're now ready to create a release, which means to start the process of running 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