Jenkins は、Java で書かれた無料のオープンソースの自動化サーバーです。単一のサーバーに展開することも、分散アプリケーションとして展開することもできます。これは、ソフトウェア アプリケーションの継続的な統合と継続的な配信のための最も人気のあるオープンソース ソリューションの 1 つです。
継続的インテグレーション (CI) は、統合エラーを検出し、新しい機能を構築し、すべての人にフィードバックを提供するために、コードをメイン リポジトリに (通常は毎日) できるだけ早く、頻繁に統合することを開発者に要求するソフトウェア開発プラクティスです。ソフトウェア ライフ サイクルの段階。
Jenkins のようなプラットフォームは、オンラインで使用したり、コンピューターにローカルにインストールしたりできる CI フレームワークです。継続的インテグレーション パイプラインを作成するために Git を使用する GitHub、Bitbucket、またはその他のリポジトリでチーム メンバーと共同作業するための使いやすいインターフェイスを提供します。
継続的デリバリー (CD) は、ソフトウェア アプリケーションとサービスの小規模で頻繁なリリースを可能にするソフトウェア開発手法です。これは、通常 6 か月ごとに 1 回の大規模なリリースを伴う従来のアプローチよりも高速です。継続的デリバリーには、毎日、毎時間、または 1 時間に数回、新しいコードをデプロイすることが含まれます。時間間隔が短いため、ビジネス要件や基盤となるテクノロジーの変化に柔軟に対応できると同時に、リリース間の長い期間に伴うコストとリスクも軽減されます。
Jenkins のようなプラットフォームは、CD システムの作成に必要なさまざまなステップを調整および管理する CD フレームワークです。 Jenkins の役割は、コードをビルドするだけでなく、テストしてデプロイすることでもあります。
Jenkins の基本機能を自作のプラグインで拡張できるプラグインベースのアーキテクチャ。ソースコード管理またはその他のタスク用。利用可能なプラグインは、Jenkins 内のプラグイン マネージャーに一覧表示され、クリックするだけでインストールできます。
Jenkins は、Java、Javascript、PHP、Ruby、Android など、あらゆる種類のプロジェクトの構築、デプロイ、自動化をゼロから本番までサポートする 300 以上のプラグインを提供しています。
独自の REST API も備えているため、コーディング方法や Jenkins のアーキテクチャ内部について何も知らなくても、Jenkins と統合する独自のカスタム ツールを作成できます。
あなたはシステム管理者で、小さなアプリケーションをマシンにデプロイする際に時間を節約できるソリューションを探しています。いくつかのオプションを見た後、すべての問題を解決できると主張する Jenkins に出会います。飛び込み、ドキュメントを読み、Jenkins をインストールします。ドキュメントはインストール プロセスをガイドしますが、正しくインストールすることはできません。
完全に動作するビルド システムに必要なソフトウェア コンポーネントをインストールして構成することは、思ったほど簡単ではありません。そのため、AlmaLinux 8 に Jenkins をインストールして構成する方法について、この段階的なチュートリアルを作成しました。
前提条件
Jenkins を AlmaLinux 8 にインストールするには、以下が必要です:
- インターネット接続が機能する 64 ビットの AlmaLinux 8 マシン。
- サーバーへのルート アクセス。このガイドに従って取得できます。
- システム要件:Jenkins の公式 Web サイトによると、Jenkins の基本的なインストールには最低 2 GB の RAM が必要です。 Jenkin には、インストール用に 50 GB の空きディスク領域が必要であり、さらに追加するビルド スレーブごとに 1 GB の空きディスク領域が必要です。さらに、サポートする同時ビルド ワーカーごとに 1 つの CPU コアと 1 GB の RAM が必要です。
システムの更新
Jenkins のインストールと構成を開始する前に、システムをソフトウェア パッケージの利用可能な最新バージョンに更新する必要があります。
そのためには、サーバーに ssh し、次のコマンドを実行します。 epel-release パッケージは、RHEL のメジャー リリースにはまだ含まれていない、Extras 開発リポジトリから更新されたパッケージを提供します。 Extras リポジトリーには、Red Hat の標準パッケージ セットには含まれていないが、RHEL リリース用にビルドされたパッケージが含まれています。これには、言語パック、アダプティブ アイコンの新しいバージョンのサポート、およびその他の機能の更新が含まれます。
- sudo dnf check-update &&sudo dnf update -y
- sudo dnf install epel-release
Java のインストール
Java は C に基づくプログラミング言語です。Android や Google Chrome などの多くのソフトウェアで使用されているため、最も人気のあるプログラミング言語の 1 つと見なされています。 Java は、MacOS、Solaris、FreeBSD、およびその他の UNIX システムだけでなく、Windows と Linux オペレーティング システムの両方で自律型アプリケーションを実行できるクロスプラットフォーム プログラミング言語です。
Jenkins は、その核となる Java プログラムであり、適切に機能するためにシステムに Java ランタイム環境 (JRE) と Java 開発キット (JDK) をインストールする必要があります。
このデモでは、システムに OpenJDK 11 をインストールします。 OpenJDK は、Java Platform, Standard Edition (Java SE) の無料のオープンソース実装です。これは、Java 仮想マシン (JVM) 上で実行されるアプリケーション、マイクロサービス、およびその他のサーバー システムを構築するための開発およびランタイム環境です。
OpenJDK は、Project Jigsaw をサポートする Oracle の Java Development Kit バージョン 8 に基づいています。これは、互換性の問題なしに Project Jigsaw を使用して OpenJDK 11 で Jenkins を実行できることを意味します。
次のコマンドを実行して、システムに OpenJDK 11 をインストールします。
sudo dnf install java-11-openjdk -y
インストールが完了したら、コマンドを実行して、正しく機能しているかどうかを確認できます。
java -version
次の出力が表示されます。
Jenkins のインストール
Java がインストールされたので、Jenkins をインストールする準備が整いました。
AlmaLinux ベース リポジトリには Jenkins パッケージが含まれていないため、最初に開発者から公式リポジトリを追加する必要があります。サポートされている特定のディストリビューション向けにパッケージ化されたソフトウェアの配布が許可されている唯一のリポジトリです。この場合、それは Redhat とその派生物のための Jenkins 開発者自身のリポジトリです。
次のコマンドを実行して、Jenkins キーをシステムにインポートします。このキーは、ソフトウェア パッケージの信頼性を検証するために使用されるセキュリティ メカニズムです。
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
次のコマンドを実行して、Jenkins リポジトリをシステムに追加します。
cd /etc/yum.repos.d/ && curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo dnf makecache コマンドを実行して、有効なすべてのリポジトリのメタデータ キャッシュを更新し、ローカル ディスク リポジトリ データが最新であることを確認します。これは、パッケージの更新/インストール時、またはメタデータが破損している場合に使用できます。
sudo dnf makecache
次のコマンドを実行して、Jenkins リポジトリがシステムに追加されているかどうかを確認します。これは、有効になっているリポジトリをパッケージ マネージャーに示す、リポジトリの現在のリストを確認する方法です。つまり、dnf によって現在どのリポジトリが追跡されているかを確認する方法です。
sudo dnf repolist
次のコマンドを実行して、システムに Jenkins をインストールします。
dnf install -y jenkins
コマンドによるインストールが完了したら、次のコマンドを実行して Jenkins サービスを開始します。
sudo systemctl start jenkins
次のコマンドを実行して、Jenkins サービスのステータスを確認します。
sudo systemctl status jenkins
Jenkins は、ソフトウェア プロジェクトのビルドや cron によって実行されるジョブなど、繰り返されるジョブの実行を監視できる継続的インテグレーション サービスです。 Jenkins のステータスを監視すると、Jenkins が期待どおりに実行されているかどうかを知ることができます。この知識は、正常に実行されないジョブの問題のトラブルシューティングに役立つ場合があります。
次の出力が表示されます。
ファイアウォールの構成
Jenkins は自動化されたビルド サーバーであり、プロジェクトの継続的な統合とデプロイに役立ちます。 Jenkins には、SSH 接続がリモート スレーブ ノードでビルドとタスクを実行できるようにする機能があります。ただし、Jenkins がこれらのサーバーにアクセスできるように、ファイアウォールを構成する必要があります。
Jenkins がアプリケーションが存在するリモート サーバーに接続できるようにするには、ポート 22 (SSH) と、オプションでポート 8080 (Web クライアント) を開く必要があります。クラウドベースの仮想マシンを使用する場合、これらのポートは通常デフォルトで閉じられています。独自のハードウェアに Jenkins をセットアップする場合は、ファイアウォールまたはルーターを介してこれらのポートを許可する必要があります。
次のコマンドを実行して、ファイアウォールでこれらのポートを開きます。
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
次のコマンドを実行して、変更を適用します。 sudo firewalld –reload コマンドを使用すると、現在有効なルールと構成が存在する場合は、それらが確実に再ロードされます。これは、firewall-cmd ツールによって行われた変更を実行中のシステムに適用するのに役立ちます。
sudo firewall-cmd --reload
最後に、次のコマンドを実行して、ルールが正常に追加されたかどうかを確認します。
sudo firewall-cmd --list-all
Jenkins Web UI へのアクセス
Jenkins サーバーが起動して実行されたので、Web ブラウザーでアクセスしたいと考えています。ポート 8080 で IP アドレスにアクセスすると、Jenkins にアクセスできます。
たとえば、IP が 192.168.1.100 でデフォルト ポートが 8080 の場合、次のアドレスに移動して Jenkins に移動します:192.168.1.100:8080
Jenkins ウェブ UI にアクセスしようとすると、Unlock Jenkins が表示されます /var/lib/jenkins/secrets/initialAdminPassword に移動するよう求める画面 、以下に示すように。これは、ダッシュボードへのログインに使用したパスワードを含む暗号化されたデータです。これは、initialAdminPassword を暗号化された形式で保存します。これにより、Jenkins サーバーへのアクセス権を取得した悪意のあるユーザーが、最初のログインで使用したパスワードを持っていないことが保証されます。
root ユーザーとしてログインしている端末に戻ります。次のコマンドを入力して復号化してください:
cat /var/lib/jenkins/secrets/initialAdminPassword
Jenkins Web UI へのパスワードを含む出力が表示されます。
これをコピーしてお気に入りのエディターに貼り付け、マシンのどこかに保存します。このパスワードを使用して、Jenkins Web インターフェースにアクセスできるようになりました。
次の画面で、[推奨プラグインをインストールする] を選択します。 .プラグインは、いくつかのファイルを含むディレクトリにすぎません。プラグインをインストールすると、Jenkins はディレクトリを検出し、ファイルで指定された機能を有効にします。
Jenkins を初めてインストールするときは、推奨されるプラグインをインストールするオプションを選択する必要があります。このオプションは、基本的な Jenkins セットアップに必要なすべてのプラグインをインストールします。後から Web インターフェースの [プラグイン] セクションでいつでもプラグインを変更または追加できます。
最初の管理者ユーザーの作成 画面で、ユーザー名、電子メール アドレス、氏名、およびパスワードを入力します。 [保存して続行] をクリックします 次の画面に進みます。
次の画面で、デフォルトのままにして、[Start using Jenkins] をクリックします。
<強い>
以下に示すように、Jenkins ダッシュボードが表示されます。 Jenkins を最初にインストールしたとき、おそらくデフォルト ページとして空白のページが付属していました。ページのソースを見ればわかります – そこには何もありません.
ただし、ジョブやプラグインを追加し始めると、ページはプロジェクトに関する視覚的な情報を表示するダッシュボードに変わります。
結論
この投稿では、Jenkins サーバーをインストールして構成する方法を学びました。ただし、これは始まりに過ぎません。これは、日常業務で活用できる非常に価値のある自動ビルド環境です。フィードバックや質問がある場合は、下のセクションにコメントや提案を残してください。