チュートリアル: Azure で実行されている VM を使用した Jenkins のデプロイのスケーリング

重要

多くの Azure サービスには Jenkins プラグインがあります。これらのプラグインの一部は、2024 年 2 月 29 日時点ではサポート対象外となります。 Azure CLI は、Jenkins と Azure サービスを統合するために現在推奨されている方法です。 詳細については、「Azure 用の Jenkins プラグイン」を参照してください。

このチュートリアルでは、Azure で Linux Virtual Machines を作成し、その VM を作業ノードとして Jenkins に追加する方法について説明します。

このチュートリアルでは、次のことを行います。

  • エージェント マシンを作成する
  • エージェントを Jenkins に追加する
  • Jenkins の新しいフリースタイル ジョブを作成する
  • Azure VM エージェントでジョブを実行する

前提条件

エージェント仮想マシンの構成

  1. az group create コマンドを使用して Azure リソース グループを作成します。

    az group create --name <resource_group> --location <location>
    
  2. az vm create を使用して仮想マシンを作成します。

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    重要なポイント:

    • コマンド --ssh-key-value <ssh_path> を使用して、お使いの SSH キーをアップロードすることもできます。
  3. JDK をインストールします。

    1. SSH ツールを使用して、仮想マシンにログインします。

      ssh username@123.123.123.123
      
    2. apt を使用して JDK をインストールします。 yum や pacman などの他のパッケージ マネージャー ツールを使用してインストールすることもできます。

      sudo apt-get install -y default-jdk
      
    3. インストールが完了したら、java -version を実行して Java 環境を確認します。 出力には、JDK のさまざまなパーツに関連付けられているバージョン番号が含まれます。

Jenkins の URL を構成する

JNLP を使用する場合は、Jenkins の URL を構成する必要があります。

  1. メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。

  2. [System Configuration]\(システム構成\)[Configure System]\(システムの構成\) を選択します。

  3. Jenkins URL が、Jenkins インストール環境の HTTP アドレス (http://<your_host>.<your_domain>:8080/) に設定されていることを確認します。

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

エージェントを Jenkins に追加する

  1. メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。

  2. [System Configuration]\(システム構成\) で、[Manage Nodes and Clouds]\(ノードとクラウドの管理\) を選択します。

  3. メニューから [New Node]\(新しいノード\) を選択します。

  4. [Node Name]\(ノード名\) の値を入力します。

  5. [Permanent Agent]\(永続的なエージェント\) を選択します。

  6. [OK] を選択します。

  7. 次のフィールドの値を指定します。

    • [名前]: 新しい Jenkins インストール環境内のエージェントを識別する一意の名前を指定します。 この値は、エージェントのホスト名とは異なっていても構いません。 ただし、この 2 つの値を同じにしておくと便利です。 名前の値には、次の一覧の特殊文字を使用できます: ?*/\%!@#$^&|<>[]:;

    • [リモート ルート ディレクトリ]: エージェントには、Jenkins 専用のディレクトリが必要です。 エージェント上のこのディレクトリへのパスを指定します。 /home/azureuser/workc:\jenkins などの絶対パスを使用することをお勧めします。 これは、エージェント マシンのローカル パスである必要があります。 このパスがマスターから見えるものである必要はありません。 ./jenkins-agent などの相対パスを使用する場合、パスは起動方法で指定される作業ディレクトリからの相対パスになります。

    • [ラベル]: ラベルは、意味的に関連するエージェントを 1 つの論理グループとしてグループ化するために使用されます。 たとえば、Linux の Ubuntu ディストリビューションを実行しているすべてのエージェントに対して、UBUNTU というラベルを定義できます。

    • [起動方法]: リモート Jenkins ノードを開始する方法として、[SSH 経由でエージェントを起動する][マスター上でのコマンドの実行によりエージェントを起動する] の 2 つのオプションがあります。

      • [SSH 経由でエージェントを起動する]: 次の各フィールドに値を指定します。

        • [ホスト]: VM のパブリック IP アドレスまたはドメイン名。 たとえば、123.123.123.123example.com のようにします。

        • [資格情報]: リモート ホストへのログインに使用する資格情報を選択します。 [追加] ボタンを選択して新しい資格情報を定義し、作成後にその新しい資格情報を選択することもできます。

        • [ホスト キーの検証方法]: 接続中にリモート ホストによって提示される SSH キーを Jenkins で検証する方法を制御します。

        Node configuration example specifying a launch method of Launch agents via SSH.

      • [Launch agent via execution of command on the master]\(マスター上でのコマンドの実行によりエージェントを起動する\):

        • https://<your_jenkins_host_name>/jnlpJars/agent.jar から agent.jar をダウンロードします。 たとえば、https://localhost:8443/jnlpJars/agent.jar のようにします。

        • 仮想マシンに agent.jar をアップロードする

        • コマンド ssh <node_host> java -jar <remote_agentjar_path> を使用して Jenkins を起動します。 たとえば、ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar のようにします。

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. [保存] を選択します。

構成を定義すると、仮想マシンが新しい作業ノードとして追加されます。

Example of virtual machine as new work node

Jenkins でジョブを作成する

  1. メニューから [New Item]\(新しい項目\) を選択します。

  2. 名前に「demoproject1」と入力します。

  3. [Freestyle project] \(フリースタイル プロジェクト) を選択します。

  4. [OK] を選択します。

  5. [全般] タブで、[Restrict where project can be run]\(プロジェクトを実行できる場所を制限する\) をオンにして、[ラベル式]ubuntu と入力します。 前の手順で作成したクラウドの構成によってラベルが提供されていることを確認するメッセージが表示されます。

    Setting up a new Jenkins job

  6. [ソース コード管理] タブで [Git] を選択し、[リポジトリの URL] フィールドに https://github.com/spring-projects/spring-petclinic.git のURL を追加します。

  7. [ビルド] タブで [Add build step]\(ビルド ステップの追加\) を選択し、Maven の最上位のターゲットを呼び出します。 [Goals]\(目標\) フィールドに package を入力します。

  8. [保存] を選択します。

Azure VM エージェントで新しいジョブを作成する

  1. 前の手順で作成したジョブを選択します。

  2. [Build now]\(今すぐビルド\) を選択します。 新しいビルドがキューに追加されますが、Azure サブスクリプションにエージェント VM が作成されるまでは開始されません。

  3. ビルドが完了したら、[Console output\(コンソール出力\)] に移動します。 ビルドが Azure エージェントでリモートに実行されたことがわかります。

    Console output

次のステップ