重要
多くの Azure サービスには Jenkins プラグインが用意されていますが、これらのプラグインのほとんどは 2024 年 2 月 29 日の時点でサポートを終了しました。 Azure CLI は、Jenkins と Azure サービスを統合するための現在推奨されている方法です。 詳細については、 Azure の Jenkins プラグインに関する記事を参照してください。
このチュートリアルでは、Azure で Linux 仮想マシンを作成し、作業ノードとして VM を Jenkins に追加する方法について説明します。
このチュートリアルでは、次のことを行います。
- エージェント マシンを作成する
- Jenkins にエージェントを追加する
- 新しい Jenkins フリースタイル ジョブを作成する
- Azure VM エージェントでジョブを実行する
[前提条件]
- Jenkins のインストール: Jenkins インストールにアクセスできない場合は、Azure CLI を使用して Jenkins を構成します
エージェント仮想マシンの構成
az group create を使用して Azure リソース グループを作成します。
az group create --name <resource_group> --location <location>
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 キーをアップロードすることもできます。
- 次のコマンド
JDK をインストールします。
Jenkins URL の構成
JNLP を使用する場合は、Jenkins URL を構成する必要があります。
メニューから [ Jenkins の管理] を選択します。
[ システム構成] で、[ システムの構成] を選択します。
Jenkins URL が Jenkins インストールの HTTP アドレス (
http://<your_host>.<your_domain>:8080/
) に設定されていることを確認します。保存 を選択します。
Jenkins にエージェントを追加する
メニューから [ Jenkins の管理] を選択します。
[ システム構成] で、[ ノードとクラウドの管理] を選択します。
メニューから[ 新しいノード]を選択します。
ノード名の値を入力します。
[永続的なエージェント] を選択します。
[OK] を選択.
次のフィールドの値を指定します。
名前: 新しい Jenkins インストール内のエージェントを識別する一意の名前を指定します。 この値は、エージェントのホスト名とは異なる場合があります。 ただし、2 つの値を同じにするのは便利です。 名前の値には、次の一覧の特殊文字を使用できます:
?*/\%!@#$^&|<>[]:;
。リモート ルート ディレクトリ: エージェントには Jenkins 専用のディレクトリが必要です。 エージェント上のこのディレクトリへのパスを指定します。
/home/azureuser/work
やc:\jenkins
などの絶対パスを使用することをお勧めします。 これは、エージェント マシンのローカル パスである必要があります。 このパスをマスターから表示する必要はありません。 ./jenkins-agent などの相対パスを使用する場合、そのパスは Launch メソッドによって提供される作業ディレクトリに対する相対パスになります。ラベル: ラベルは、セマンティック関連のエージェントを 1 つの論理グループにグループ化するために使用されます。 たとえば、Linux の Ubuntu ディストリビューションを実行しているすべてのエージェントに対して、
UBUNTU
のラベルを定義できます。起動方法: リモート Jenkins ノードを起動するには、次の 2 つのオプションがあります。 SSH 経由でエージェントを起動 し、 マスターでコマンドを実行してエージェントを起動します。
SSH 経由でエージェントを起動する: 次のフィールドの値を指定します。
ホスト: VM パブリック IP アドレスまたはドメイン名。 たとえば、
123.123.123.123
やexample.com
資格情報: リモート ホストへのログインに使用する資格情報を選択します。 [ 追加 ] ボタンを選択して新しい資格情報を定義し、作成後にその新しい資格情報を選択することもできます。
ホスト キー検証戦略: Jenkins が接続中にリモート ホストによって提示される 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
のようにします。
保存 を選択します。
構成を定義すると、Jenkins によって仮想マシンが新しい作業ノードとして追加されます。
Jenkins でジョブを作成する
メニューから[ 新しい項目]を選択します。
名前に「
demoproject1
」と入力します。フリースタイル プロジェクトを選択します。
[OK] を選択.
[全般] タブで、[プロジェクトを実行できる場所を制限する] を選択し、[
ubuntu
] に「」と入力します。 前の手順で作成したクラウド構成によってラベルが提供されることを確認するメッセージが表示されます。[ ソース コード管理 ] タブで Git を選択 し、[リポジトリの URL] フィールドに次の URL を 追加します。
https://github.com/spring-projects/spring-petclinic.git
[ ビルド ] タブで、[ ビルド ステップの追加] を選択し、 最上位の Maven ターゲットを呼び出します。
package
フィールドに「」と入力します。保存 を選択します。
Azure VM エージェントで新しいジョブをビルドする
前の手順で作成したジョブを選択します。
[ 今すぐビルド] を選択します。 新しいビルドはキューに登録されますが、Azure サブスクリプションにエージェント VM が作成されるまで開始されません。
ビルドが完了したら、 コンソール出力に移動します。 ビルドが Azure エージェントでリモートで実行されたことがわかります。