Jenkinsは、Hudsonプロジェクトから分岐した自動化サーバーです。 Jenkinsは、Javaサーブレットコンテナで実行されるサーバーベースのアプリケーションであり、Git、SVN、Mercurialなどの多くのSCM(ソース管理)ソフトウェアシステムをサポートしています。 Jenkinsは、プロジェクトを自動化するための何百ものプラグインを提供します。川口耕介によって作成されたJenkinsは、2011年にMITライセンスの下で最初にリリースされたもので、フリーソフトウェアです。
このチュートリアルでは、Ubuntu Server 18.04 LTS(Bionic Beaver)に最新の安定したJenkinsバージョンをインストールする方法を紹介します。独自のドメイン名でJenkinsを実行し、ApacheWebサーバーのリバースプロキシで実行するようにJenkinsをインストールして構成します。
- Ubuntu 18.04
- root権限
何をしますか?
- Javaをインストールする
- Jenkinsをインストールする
- Apache2をJenkinsのリバースプロキシとしてインストールして構成する
- UFWファイアウォールを設定する
- Jenkinsを構成する
- Jenkinsセキュリティ
- テスト
JenkinsはJavaベースのアプリケーションであるため、サーバーにJavaOpenJDKをインストールする必要があります。このステップでは、最初に追加するPPAリポジトリからJava8をインストールします。
software-properties-commonパッケージをインストールしてから、javaOpenJDKPPAリポジトリを追加します。
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y
次に、aptコマンドを使用してJava8をインストールします。
sudo apt install openjdk-8-jdk -y
インストールが完了したら、システムにインストールされているJavaのバージョンを確認します。
java -version
そして、JavaOpenJDK1.8がUbuntu18.04システムにインストールされます。
注:
- システムに複数のJavaバージョンがある場合は、以下のコマンドを使用してデフォルトのJavaバージョンを変更してください。
sudo update-alternatives --config java
Jenkinsはインストールパッケージ用のUbuntuリポジトリを提供しており、このリポジトリからJenkinsをインストールします。
以下のコマンドを使用して、Jenkinsキーとリポジトリをシステムに追加します。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
次に、リポジトリを更新してJenkinsをインストールします。
sudo apt update
sudo apt install jenkins -y
インストールが完了したら、Jenkinsサービスを開始し、起動時間に追加します。
systemctl start jenkins
systemctl enable jenkins
JenkinsはUbuntu18.04サーバーで稼働し、デフォルトのポート「8080」で実行されています。以下のようにnetstatを使用して確認してください。
netstat -plntu
そして、以下のような結果が得られます。
このチュートリアルでは、Apache Webサーバーの背後でJenkinsを実行し、apacheをJenkinsのリバースプロキシとして構成します。
最初にApacheをインストールし、いくつかのrequireモジュールを有効にします。次に、Jenkinsのドメイン名jenkins.hakase-labs.ioで仮想ホストファイルを作成します。ここで独自のドメイン名を使用し、表示されているすべての構成ファイルで置き換えてください。
Ubuntuリポジトリからapache2Webサーバーをインストールします。
sudo apt install apache2 -y
インストールが完了したら、proxyモジュールとproxy_httpモジュールを有効にして、apacheをJenkinsのフロントエンドサーバー/リバースプロキシとして構成できるようにします。
a2enmod proxy
a2enmod proxy_http
次に、sites-availableディレクトリにJenkinsの新しい仮想ホストファイルを作成します。
cd /etc/apache2/sites-available/
vim jenkins.conf
以下に仮想ホスト構成を貼り付けます。
<Virtualhost *:80> ServerName jenkins.hakase-labs.io ProxyRequests Off ProxyPreserveHost On AllowEncodedSlashes NoDecode <Proxy http://localhost:8080/*> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://jenkins.hakase-labs.io/ </Virtualhost>
保存して終了し、a2ensiteコマンドを使用してJenkins仮想ホストをアクティブ化します。
a2ensite jenkins
ApacheおよびJenkinsサービスを再起動します。
systemctl restart apache2
systemctl restart jenkins
Jenkinsのリバースプロキシとしてのapache2のインストールと構成が完了しました。
UbuntuサーバーでUFWファイアウォールを有効にする前に、SSH、HTTP、HTTPSなどの基本的なサービスポートを追加する必要があります。
SSH、HTTP、およびHTTPSサービスをufwファイアウォールに追加します。
ufw allow ssh
ufw allow http
ufw allow https
次に、ufwファイアウォールを起動して有効にします。
ufw enable
「y」と入力してEnterキーを押します。
これでUFWファイアウォールが有効になり、HTTPポートが追加されました。
Jenkinsはドメイン名「http://jenkins.hakase-labs.io」で実行されています。 Webブラウザーを開き、URLを入力します。
初期管理者パスワードの入力を求める画面が表示されます。パスワードはすでにJenkinsによって生成されているため、結果を表示してパスワードボックスにコピーするだけです。
catコマンドで初期管理者パスワードJenkinsを表示します。
cat /var/lib/jenkins/secrets/initialAdminPassword
結果を画面に貼り付けて、[続行]をクリックします。
次に、後で使用するための優れた基盤を取得するために、Jenkinsにいくつかのプラグインをインストールする必要があります。 [推奨プラグインのインストール]を選択してクリックします。
Jenkinsプラグインのインストールが進行中です。
プラグインのインストールが完了したら、新しい管理者パスワードを作成する必要があります。管理者のユーザー名、パスワード、メールアドレスなどを入力し、[保存して続行]をクリックします。
インスタンス構成については、Jenkinsドメイン名「http://jenkins.hakase-labs.io」を入力し、「保存して終了」ボタンをクリックします。
次に、[Jenkinsの使用を開始]ボタンをクリックします。
そして、Jenkins管理ダッシュボードにリダイレクトされます。
Jenkinsのインストールと構成が正常に完了しました
Jenkins管理ダッシュボードから、Jenkinsの標準セキュリティ設定を構成し、[Jenkinsの管理]、[グローバルセキュリティの構成]の順にクリックする必要があります。
Jenkinsは、「アクセス制御」セクションでいくつかの認証方法を提供しています。 「マトリックスベースのセキュリティ」を使用するため、すべてのユーザー権限を制御できます。
「ユーザー/グループ」ボックスに「hakase」ユーザーを追加し、「追加」をクリックします。
すべてのオプションをチェックして「hakase」ユーザーにすべての権限を付与し、「保存」ボタンをクリックします。
ダッシュボードにリダイレクトされます。ログインオプションがある場合は、管理者ユーザーとパスワードを入力するだけです。
このセクションでは、Jenkinsサーバー用の簡単なジョブを作成します。 Jenkinsをテストし、topコマンドを使用してサーバーの負荷を確認するための簡単なジョブを作成します。
Jenkins管理ダッシュボードで、[新しいジョブの作成]をクリックします。
ジョブ名を入力します。ここでは「システムのチェック」を使用し、「フリースタイルプロジェクト」を選択して「OK」をクリックします。
[ビルド]タブに移動します。 [ビルドステップの追加]で、[シェルの実行]オプションを選択します。
ボックスに以下のコマンドを入力します。
top -b -n 1 | head -n 5
[保存]をクリックします。
これで、ジョブ「プロジェクトチェックシステム」のジョブページが表示されます。 「今すぐビルド」をクリックして、「システムのチェック」ジョブを実行します。
ジョブが実行されると、「ビルド履歴」が表示されます。最初のジョブをクリックすると、結果が表示されます。
Jenkinsによって実行されたジョブの結果は次のとおりです。
Ubuntu18.04でのリバースプロキシとしてのApache2を使用したJenkins自動化ツールのインストールと構成が正常に完了しました。
- https://wiki.jenkins.io/
- https://wiki.jenkins.io/Standard+Security+Setup
- https://jenkins-le-guide-complet.github.io/