Jenkins設定 · 1 min read · Dec 19, 2025

UbuntuでJenkinsマスターとスレーブを設定する方法

Jenkinsは、Hudsonプロジェクトからフォークされた自動化サーバーです。Git、SVN、Mercurialなど、多くのSCM(ソース管理)ソフトウェアシステムをサポートしています。Jenkinsは、プロジェクトを自動化するための数百のプラグインを提供します。Jenkinsはマスター/スレーブアーキテクチャをサポートしており、大量のプロジェクトビルドをホストできます。

Jenkinsの「マスター/スレーブ」はどのように機能するのか?

Jenkinsのマスター/スレーブアーキテクチャは、ビルドプロジェクトの負荷を複数のエージェントノードに分散させる分散ビルド環境で使用され、各ビルドに異なる環境を使用できます。

Jenkinsの「マスター/スレーブ」アーキテクチャでは、マスターは基本的なJenkinsインストールを表し、ビルドシステムのすべてのタスクを処理します。Jenkinsマスターノードは、ジョブのスケジューリング、スレーブノードの監視、スレーブノードへのビルドの配信、ビルド結果の記録と表示、ビルドジョブの直接実行に使用されます。

Jenkinsスレーブノードは、マスターからビルドプロジェクトをオフロードするために設定され、マスターとスレーブ間の確立された接続が必要です。Jenkinsスレーブノードは、WindowsやLinuxなどのさまざまなオペレーティングシステムで実行でき、完全なJenkinsパッケージをインストールする必要はありません。

このチュートリアルでは、最新のUbuntuバージョンを使用してJenkinsマスター-スレーブアーキテクチャを設定する方法を学びます。Jenkinsマスターサーバーを設定し、他のUbuntuノードをJenkinsスレーブとして追加する方法を学びます。

前提条件

  • Ubuntuサーバー(Ubuntu 22.04 - Ubuntu 16.04) - マスター - 10.0.15.10
  • スレーブ01 - 10.0.15.21
  • スレーブ02 - 10.0.15.22
  • ルート権限

何をするのか?

  1. Jenkinsマスターをインストール
  2. Jenkinsマスターの資格情報を設定
  3. スレーブエージェントノードを設定
  4. 新しいスレーブノードを追加
  5. ビルドを実行するためにスレーブエージェントノードを準備
  6. テスト

ステップ1 - Jenkinsマスターをインストール

このチュートリアルでは、基本的なJenkinsインストールについては説明しません。HowtoForgeのいくつかの記事でJenkinsのインストールがカバーされています。

  • Ubuntu 16.04にJenkinsをインストール
  • Ubuntu 18.04にJenkinsをインストール
  • Ubuntu 20.04にJenkinsをインストール
  • Ubuntu 22.04にJenkinsをインストール
  • CentOS 7にJenkinsをインストール

以下は、Jenkinsがインストールされた私たちのUbuntuマスターサーバーです。

Jenkinsマスターをインストール

ステップ2 - Jenkinsマスターの資格情報を設定

マスターサーバーにJenkinsをインストールしたら、マスターサーバー自体を設定する必要があります。デフォルトでは、Jenkinsエージェントノードを起動する方法がいくつかあります。SSH、Windows管理アカウント、Java Web Start(JNLP)を介してエージェントノードを起動できます。環境設定とオペレーティングシステムに応じて最適な方法を選択してください。

このガイドでは、sshを介してエージェントノードを起動し、マスターサーバーにJenkinsの資格情報を設定する必要があります。

SSHキーを生成

エージェントノードを設定するためにsshキー認証を使用するので、Jenkinsユーザーのためにsshキーを生成し、次に「ssh-copy-id」を使用して各サーバーノードに手動でキーをアップロードする必要があります。

Jenkinsマスターサーバーにログインし、Jenkinsユーザーとしてsshキーを生成します。

su - jenkins  
ssh-keygen

これにより、’.ssh’ディレクトリに’id_rsa’プライベートキーと’id_rsa.pub’パブリックキーが生成されます。

SSHキーを生成

Jenkinsでの資格情報の設定

Jenkinsダッシュボードを開き、左側の「資格情報」メニューをクリックします。

Jenkinsでの資格情報の設定

そして「グローバル」ドメインリンクをクリックします。

次に「資格情報を追加」をクリックします。

資格情報を追加

次に認証方法を選択します。

  • 種類: プライベートキーを持つSSHユーザー名
  • スコープ: グローバル
  • ユーザー名: jenkins
  • プライベートキー: 直接入力し、マスターサーバーからJenkinsユーザーの’id_rsa’プライベートキーを貼り付けます。

「OK」をクリックします。

認証方法を選択

これで、ssh認証キー方式のJenkins資格情報が作成されました。

ssh認証キー方式のJenkins資格情報が作成されました

ステップ3 - スレーブノードを設定

次に、スレーブノードサーバーを設定し、これらのサーバーにJavaをインストールし、新しいJenkinsユーザーを作成します。

Javaをインストール

‘software-properties-common’パッケージをインストールし、Java PPAリポジトリを追加します。

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:openjdk-r/ppa -y

次に、以下のaptコマンドを使用してJava OpenJDKをインストールします。

sudo apt install openjdk-8-jdk -y

インストールが完了したら、インストールされたJavaのバージョンを確認します。

java -version

これにより、システムにJava OpenJDK 1.8がインストールされます。

新しいJenkinsユーザーを追加

次に、すべてのエージェントノードに「Jenkins」ユーザーを追加します。

以下のコマンドを実行します。

useradd -m -s /bin/bash jenkins  
passwd Jenkins

エージェントノード用の「Jenkins」ユーザーが作成されました。

新しいJenkinsユーザーを追加

マスターからスレーブへのSSHキーをコピー

次に、マスターからスレーブサーバーノードに’id_rsa.pub’キーをアップロードする必要があります。以下のように「ssh-copy-id」コマンドを使用して各サーバーノードにアップロードします。

ssh-copy-id [email protected]  
ssh-copy-id [email protected]

Jenkinsユーザーのパスワードを入力します。

sshキー’id_rsa.pub’がすべてのエージェントノードにアップロードされました。

マスターからスレーブへのSSHキーをコピー

ステップ4 - 新しいスレーブノードを追加

Jenkinsダッシュボードで、「Jenkinsの管理」メニューをクリックし、「ノードの管理」をクリックします。

新しいスレーブノードを追加

「新しいノード」をクリックします。

新しいノード

ノード名’slave01’を入力し、「永続エージェント」を選択して「OK」をクリックします。

ノード名

次に、ノード情報の詳細を入力します。

  • 説明: slave01ノードエージェントサーバー
  • リモートルートディレクトリ: /home/jenkins
  • ラベル: slave01
  • 起動方法: SSH経由でスレーブエージェントを起動、ホストIPアドレス’10.0.15.21’を入力し、’Jenkins’資格情報を使用して認証を選択します。

ノード情報

「保存」ボタンをクリックし、マスターサーバーがすべてのエージェントノードに接続し、エージェントサービスを起動するのを待ちます。

以下は、マスターサーバーがすべてのエージェントノードに接続されたときの結果です。

マスターサーバーがすべてのエージェントノードに接続された

Jenkinsスレーブノードがマスターサーバーに追加されました。

ステップ5 - スレーブエージェントノードをビルド実行のために準備

このステップでは、Jenkinsマスターを設定してスレーブエージェントノードでビルドを実行します。

「Jenkinsの管理」メニューをクリックし、「システムの設定」をクリックします。

スレーブエージェントノードをビルド実行のために準備

次に、「スレーブセットアップ」セクションに移動し、以下のように必要なすべてを定義します。

「スレーブセットアップ」セクション

「スレーブセットアップ」についての詳細はリンクを参照してください。

「保存」ボタンをクリックし、これでスレーブエージェントノードでビルドを実行する準備が整いました。

ステップ6 - テスト

今、Jenkinsの新しいシンプルなビルドを作成し、’slave01’と’slave02’エージェントノードでビルドを実行したいと思います。

Jenkinsダッシュボードで、「新しいアイテム」メニューをクリックします。

Jenkinsのテスト

アイテム名を入力し、フリースタイルプロジェクトを選択して「OK」をクリックします。

フリースタイルプロジェクトを追加

一般セクションで、ジョブの説明を入力し、「このプロジェクトを実行できる場所を制限する」オプションをチェックします。

「ラベル式」で、ノードを’slave01’として指定します。

ノードを選択

ビルドセクションに移動し、「シェルを実行」オプションを選択し、以下のコマンドを入力します。

top -b -n 1 | head -n 10 && hostname

「保存」ボタンをクリックすると、ジョブページにリダイレクトされます。

ジョブページ

「今すぐビルド」をクリックしてプロジェクトをビルドし、「ビルド履歴」セクションのアイテムをクリックします。

今すぐビルド

以下は私の結果です。

‘slave01’エージェントノードでのビルド。

Jenkinsスクリプト結果出力

‘slave02’エージェントノードでのビルド。

ノード02でのビルド

Jenkinsマスター/スレーブアーキテクチャのインストールと設定、分散ビルドが成功裏に完了しました。

参考文献

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。