次の方法で共有


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

重要

多くの Azure サービスには Jenkins プラグインが用意されていますが、これらのプラグインのほとんどは 2024 年 2 月 29 日の時点でサポートを終了しました。 Azure CLI は、Jenkins と Azure サービスを統合するための現在推奨されている方法です。 詳細については、 Azure の Jenkins プラグインに関する記事を参照してください。

このチュートリアルでは、Azure で Linux 仮想マシンを作成し、作業ノードとして 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. メニューから [ Jenkins の管理] を選択します。

  2. [ システム構成] で、[ システムの構成] を選択します。

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

  4. 保存 を選択します。

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

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

  2. [ システム構成] で、[ ノードとクラウドの管理] を選択します。

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

  4. ノード名の値を入力します。

  5. [永続的なエージェント] を選択します

  6. [OK] を選択.

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

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

    • リモート ルート ディレクトリ: エージェントには Jenkins 専用のディレクトリが必要です。 エージェント上のこのディレクトリへのパスを指定します。 /home/azureuser/workc:\jenkinsなどの絶対パスを使用することをお勧めします。 これは、エージェント マシンのローカル パスである必要があります。 このパスをマスターから表示する必要はありません。 ./jenkins-agent などの相対パスを使用する場合、そのパスは Launch メソッドによって提供される作業ディレクトリに対する相対パスになります。

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

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

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

        • ホスト: VM パブリック IP アドレスまたはドメイン名。 たとえば、123.123.123.123example.com

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

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

        SSH 経由でエージェントを起動する起動方法を指定するノード構成の例。

      • マスターでコマンドを実行してエージェントを起動します。

        • agent.jarからhttps://<your_jenkins_host_name>/jnlpJars/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 のようにします。

        マスターでコマンドを実行してエージェントを起動する方法を指定するノード構成の例。

  8. 保存 を選択します。

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

新しい作業ノードとしての仮想マシンの例

Jenkins でジョブを作成する

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

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

  3. フリースタイル プロジェクトを選択します

  4. [OK] を選択.

  5. [全般] タブで、[プロジェクトを実行できる場所を制限する] を選択し、[ubuntu] に「」と入力します。 前の手順で作成したクラウド構成によってラベルが提供されることを確認するメッセージが表示されます。

    新しい Jenkins ジョブの設定

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

  7. [ ビルド ] タブで、[ ビルド ステップの追加] を選択し、 最上位の Maven ターゲットを呼び出しますpackage フィールドに「」と入力します。

  8. 保存 を選択します。

Azure VM エージェントで新しいジョブをビルドする

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

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

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

    コンソール出力

次のステップ