Ubuntu22.04にJenkinsをインストールする方法
序章
Jenkins は、ソフトウェアの継続的インテグレーションとデリバリーに関連する反復的な技術タスクを自動化するオープンソースの自動化サーバーです。 JenkinsはJavaベースであり、Ubuntuパッケージからインストールするか、Webアプリケーションアーカイブ(WAR)ファイル(サーバー上で実行する完全なWebアプリケーションを構成するファイルのコレクション)をダウンロードして実行します。
このチュートリアルでは、Ubuntu 22.04にJenkinsをインストールし、開発サーバーを起動して管理ユーザーを作成し、Jenkins自動化の調査を開始します。 このチュートリアルを終了すると、セキュリティで保護されていないJenkinsサーバーが開発展開の準備が整います。 本番用にインストールを保護するには、ガイド Ubuntu22.04でNginxリバースプロキシを使用してSSLでJenkinsを構成する方法に従ってください。
前提条件
このチュートリアルに従うには、次のものが必要です。
- Ubuntu 22.04初期サーバーセットアップガイドに従って、root以外のsudoユーザーとファイアウォールで構成された1台のUbuntu22.04サーバー。 少なくとも1GBのRAMから始めることをお勧めします。 実稼働レベルのJenkinsインストールの容量を計画する際のガイダンスについては、Jenkinsの「ハードウェアの推奨事項」にアクセスしてください。
- 特定のバージョンのOpenJDKをUbuntu22.04にインストールするためのガイドラインに従ってOracleJDK11をインストールしました。
ステップ1—Jenkinsをインストールする
デフォルトのUbuntuパッケージに含まれているJenkinsのバージョンは、プロジェクト自体から入手可能な最新バージョンよりも遅れていることがよくあります。 最新の修正と機能を確実に入手するには、プロジェクトで管理されているパッケージを使用してJenkinsをインストールします。
まず、リポジトリキーをシステムに追加します。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key |sudo gpg --dearmor -o /usr/share/keyrings/jenkins.gpg
gpg --dearmor
コマンドは、キーをapt
が認識できる形式に変換するために使用されます。
次に、Debianパッケージリポジトリアドレスをサーバーのsources.list
に追加しましょう。
sudo sh -c 'echo deb [signed-by=/usr/share/keyrings/jenkins.gpg] http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
行の[signed-by=/usr/share/keyrings/jenkins.gpg]
部分は、apt
が、ダウンロードしたばかりのGPGキーを使用してリポジトリ内のファイルを検証することを保証します。
両方のコマンドを入力した後、apt update
を実行して、apt
が新しいリポジトリを使用するようにします。
sudo apt update
最後に、Jenkinsとその依存関係をインストールします。
sudo apt install jenkins
Jenkinsとその依存関係が整ったので、Jenkinsサーバーを起動します。
ステップ2—Jenkinsを起動する
Jenkinsがインストールされたので、systemctlを使用して起動します。
sudo systemctl start jenkins.service
systemctl
はステータス出力を表示しないため、status
コマンドを使用して、Jenkinsが正常に起動したことを確認します。
sudo systemctl status jenkins
すべてが順調に進んだ場合、ステータス出力の最初に、サービスがアクティブであり、起動時に開始するように構成されていることが示されます。
Output● jenkins.service - Jenkins Continuous Integration Server Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-04-18 16:07:28 UTC; 2min 3s ago Main PID: 88180 (java) Tasks: 42 (limit: 4665) Memory: 1.1G CPU: 46.997s CGroup: /system.slice/jenkins.service └─88180 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
Jenkinsが稼働しているので、ファイアウォールルールを調整して、Webブラウザからアクセスして初期設定を完了できるようにします。
ステップ3—ファイアウォールを開く
UFWファイアウォールを設定するには、 Ubuntu 22.04でのサーバーの初期設定、ステップ4-基本ファイアウォールの設定にアクセスしてください。 デフォルトでは、Jenkinsはポート8080
で実行されます。 ufw
を使用してそのポートを開きます。
sudo ufw allow 8080
注:ファイアウォールが非アクティブの場合、次のコマンドでOpenSSHが許可され、ファイアウォールが有効になります。
sudo ufw allow OpenSSH sudo ufw enable
ufw
のステータスをチェックして、新しいルールを確認します。
sudo ufw status
トラフィックはどこからでも8080
を移植できることに気付くでしょう。
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 8080 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 8080 (v6) ALLOW Anywhere (v6)
Jenkinsがインストールされ、ファイアウォールが構成されたら、インストール段階が完了し、Jenkinsの構成を続行できます。
ステップ4—Jenkinsを設定する
インストールを設定するには、サーバーのドメイン名またはIPアドレスhttp://your_server_ip_or_domain:8080
を使用して、デフォルトのポート8080
でJenkinsにアクセスします。
Unlock Jenkins 画面が表示されます。この画面には、初期パスワードの場所が表示されています。
ターミナルウィンドウで、cat
コマンドを使用してパスワードを表示します。
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
端末から32文字の英数字のパスワードをコピーして管理者パスワードフィールドに貼り付け、続行をクリックします。
次の画面には、提案されたプラグインをインストールするか、特定のプラグインを選択するオプションが表示されます。
推奨プラグインのインストールオプションをクリックすると、すぐにインストールプロセスが開始されます。
インストールが完了すると、最初の管理ユーザーを設定するように求められます。 この手順をスキップして、上記の初期パスワードを使用してadmin
として続行することは可能ですが、ユーザーを作成するために少し時間がかかります。
注:デフォルトのJenkinsサーバーは暗号化されていないため、このフォームで送信されたデータは保護されません。 Ubuntu 22.04でNginxリバースプロキシを使用してSSLでJenkinsを構成する方法を参照して、ユーザーの資格情報とWebインターフェイスを介して送信されるビルドに関する情報を保護してください。
ユーザーの名前とパスワードを入力します。
Jenkinsインスタンスの優先URLを確認するように求めるインスタンス構成ページが表示されます。 サーバーのドメイン名またはサーバーのIPアドレスを確認します。
適切な情報を確認したら、保存して終了をクリックします。 「Jenkinsの準備ができました!」を確認する確認ページが表示されます。
Jenkinsの使用を開始をクリックして、メインのJenkinsダッシュボードにアクセスします。
この時点で、Jenkinsのインストールは正常に完了しています。
結論
このチュートリアルでは、プロジェクトが提供するパッケージを使用してJenkinsをインストールし、サーバーを起動し、ファイアウォールを開き、管理ユーザーを作成しました。 この時点で、ジェンキンスの探索を開始できます。
探索が完了したら、ガイド Ubuntu 22.04でNginxリバースプロキシを使用してSSLでJenkinsを構成する方法に従って、パスワード、およびその間に送信される機密性の高いシステムや製品情報を保護します。 Jenkinsを引き続き使用するには、マシンとサーバーをプレーンテキストで表示します。
Jenkinsを使用して何ができるかについて詳しくは、このテーマに関する他のチュートリアルをご覧ください。