GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04LTSでJenkinsマスターとスレーブをセットアップする方法

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

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

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

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

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

このチュートリアルでは、最新のUbuntuバージョンUbuntu18.04LTSを使用してJenkinsマスタースレーブアーキテクチャをセットアップする方法を学習します。 Jenkinsマスターサーバーのセットアップ方法を学び、次に他のUbuntuノードをJenkinsスレーブとして追加します。

前提条件
  • Ubuntu 18.04
    • マスター-10.0.15.10
    • slave01-10.0.15.21
    • slave02-10.0.15.22
  • root権限

何をしますか?

  1. Jenkinsマスターをインストールする
  2. Jenkinsマスタークレデンシャルを構成する
  3. スレーブエージェントノードの構成
  4. 新しいスレーブノードを追加する
  5. ビルドを実行するためのスレーブエージェントノードの準備
  6. テスト
ステップ1-Jenkinsマスターをインストールする

このチュートリアルでは、基本的なJenkinsのインストールについては説明しません。 JenkinsのインストールをカバーするHowtoForgeに関する記事が多数あります。

  • Ubuntu16.04にJenkinsをインストールする
  • Ubuntu18.04にJenkinsをインストールする
  • CentOS7にJenkinsをインストールする

以下は、JenkinsがインストールされたUbuntu18.04マスターサーバーです。

ステップ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」公開鍵を取得します。

Jenkinsでのクレデンシャルの設定

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

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

次に、[資格情報の追加]をクリックします。

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

  • 種類:秘密鍵を使用したSSHユーザー名
  • 範囲:グローバル
  • ユーザー名:jenkins
  • 秘密鍵:直接入力して、マスターサーバーからJenkinsユーザーの「id_rsa」秘密鍵を貼り付けます。

[OK]をクリックします。

そして、sshauthkeyメソッドを使用したJenkinsクレデンシャルが作成されました。

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

次に、それらのサーバーにJavaをインストールしてスレーブノードサーバーをセットアップし、新しいJenkinsユーザーを作成します。

Javaのインストール

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

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

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

sudo apt install openjdk-8-jdk -y

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

java -version

そして、JavaOpenJDK1.8がシステムにインストールされます。

新しいJenkinsユーザーを追加

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

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

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

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

SSHキーをマスターからスレーブにコピーします

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

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

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

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

ステップ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ダッシュボードで、[新しいアイテム]メニューをクリックします。

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

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

「ラベル式」で、「slave01」などのノードを指定します。

ビルドセクションに移動し、[シェルの実行]オプションを選択して、次のようにコマンドを入力します。

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

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

[今すぐビルド]をクリックしてプロジェクトをビルドし、[ビルド履歴]セクションの項目をクリックします。

そして、以下が私の結果です。

'slave01'エージェントノード上に構築します。

'slave02'エージェントノード上に構築します。

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

参照
  • https://wiki.jenkins.io/

Ubuntu
  1. Ubuntu20.04LTSおよび21.10からUbuntu22.04LTSにアップグレードする方法

  2. Ubuntu12.04および14.04LTSにLibreoffice4.3をインストールする方法

  3. Ubuntu15.04および14.04LTSにLibreoffice4.4をインストールする方法

  1. Ubuntu20.04にJenkinsをインストールして構成する方法

  2. Ubuntu18.04LTSでRsyslogサーバーをセットアップする方法

  3. Ubuntu18.04および16.04LTSでElasticsearchをセットアップする方法

  1. Ubuntu18.04LTSでKerberosサーバーとクライアントをセットアップする方法

  2. Ubuntu14.04LTSにZabbix2.2をインストールする方法

  3. Ubuntu 20.04LTSにPHP5.6、PHP 8.0、PHP8.1をインストールする方法