CI/CDの解除:UbuntuにJenkinsをインストールする方法

あなたは多くの手順とソフトウェアでコードを展開するのにたくさんの時間を費やしていますか?心配しないでください、最も広く利用されているオープンソースのツールであるJenkinsのインストール方法を学ぶための正しい場所にいます。

このチュートリアルでは、UbuntuマシンにJenkinsをインストールして、ボタンをクリックするだけでコードをビルドおよび展開できるようにする方法を学びます。

続けて読んでインストールを始めましょう!

前提条件

この投稿はステップバイステップのチュートリアルです。Ubuntuマシンを用意してください。このチュートリアルではUbuntu 18.04apacheがインストールされていることを使用します。

UbuntuマシンにJavaバージョン11をインストールする方法

Jenkinsは、継続的インテグレーション(CI)および継続的デプロイメント(CD)ツールであり、さまざまなサーブレットコンテナで実行することができます。例えば、Apache TomcatGlassFishなどです。ただし、このデモでは、Jenkinsを組み込みのJavaサーブレットコンテナサーバー上で実行します。

Jenkinsと連携するためには、複数のJava実装が利用できますが、本チュートリアルでは最も人気のあるOpenJDKをインストールして使用します。

1. 好きなSSHクライアントを使用してUbuntuマシンにログインしてください。

2. 次に、以下のコマンドを実行してディレクトリ~/install_jenkins_demoを作成し、そのディレクトリに移動します。

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. 以下のコマンドを実行してマシンにJavaをインストールします。apt install

# インストールするJavaのバージョン:Java SE 11(LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. 最後に、以下のコマンドを実行して、インストールされたJavaのバージョンを確認します。これにより、Javaが正常にインストールされていることが確認できます。

# Javaのバージョンを確認してインストールを検証する
java -version
Checking the Version of Java to verify Java installation

Ubuntu 18.04 LTSインスタンスにJenkinsをインストールする

UbuntuマシンにJavaがインストールされていることを前提として、マシンにJenkinsをインストールしましょう。Jenkinsのインストールは、他のパッケージのインストール方法と非常に似ています。

まだSSHクライアントにログインしていると仮定して:

1. まず、システムパッケージを更新するためにapt updateコマンドを実行します。

sudo apt update

2. 次に、以下のwgetコマンドを実行して、Jenkinsの公開鍵をシステムに追加します。

公開鍵を追加することで、JenkinsサイトがJenkinsの公式リポジトリや必要なパッケージをダウンロードできるようになります。

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

3. 次のコマンドを実行して、Jenkinsの公式リポジトリをシステムに追加し、システムを更新します。

# システムにJenkinsの公式リポジトリを追加する
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# パッケージを更新する
sudo apt-get update

4. そして、以下のコマンドを実行してJenkinsパッケージをインストールします。

# Jenkinsパッケージをインストールする
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. 最後に、以下のserviceコマンドを実行して、Jenkinsサービスの状態を確認します。# Validating the Jenkins service on ubuntu machine service jenkins status

# Validating the Jenkins service on ubuntu machine
service jenkins status

以下のように表示されると、状態がJenkinsサービスがアクティブであることがわかります。

Verifying the status of Jenkins service

Jenkinsインスタンスの設定

これで、Jenkinsのインストールは半分終わりました。ただし、実際に使用する前に、基本的な設定を行う必要があります。方法は?Jenkinsの設定を始める最初のステップは、新しくインストールしたJenkinsをアンロックすることです。

SSHクライアントにまだログインしていると仮定します:

1. 好きなブラウザを開き、サーバーのIPアドレスの後にポート8080を指定して移動します。jenkins-ip:8080 リンクに移動した後、管理者パスワードを入力してJenkinsをアンロックする必要があります。管理者パスワードは、サーバーの/var/lib/jenkins/secrets/initialAdminPasswordディレクトリに保存されています(ステップ2)。

Unlocking Jenkins Instance

2. 以下のcatコマンドを実行して、/var/lib/jenkins/secrets/initialAdminPasswordディレクトリから管理者パスワードをマシンに追加します。

cat /var/lib/jenkins/secrets/initialAdminPassword

以下の出力に表示される巨大な文字列が管理者パスワードです。Jenkinsをアンロックするためには、管理者パスワードをメモしておいてください(ステップ3)。

Checking the Initial Admin Password

3. ウェブブラウザに戻り(Unlock Jenkinsページ)、ステップ2でメモした管理者パスワードを入力します。

Jenkinsをアンロックした後、ブラウザはページにリダイレクトされます。このページではJenkinsインスタンスをプラグインでカスタマイズします(ステップ4)。

4. Jenkinsのカスタマイズページで、提案されたプラグインをインストールオプションをクリックします。

Jenkinsプラグインは、Jenkinsと統合されてGitプラグインなどのタスクを実行するためのサードパーティツールです。Gitプラグインを使用すると、Gitリポジトリに接続したり、Gitコマンドを実行したりすることができます。

Installing the Jenkins Plugin

5. 下記のように管理者ユーザーの詳細を入力し、保存して続行をクリックして管理者ユーザーを作成します。この管理者ユーザーを使用すると、JenkinsのUIダッシュボードやJenkinsインスタンスで作業することができます。

保存して続行をクリックすると、ステップ5で表示されるインスタンスの設定画面が表示されます。

Jenkinsにはデフォルトでユーザー名とパスワード(admin: admin)で作成された管理者ユーザーがありますが、カスタムの管理者ユーザーを作成するオプションも提供されています。カスタムの管理者ユーザーを作成したくない場合は、管理者としてスキップして続行することもできます。

Creating the First Admin user

6. 最後に、保存して完了をクリックしてインスタンスの設定を保存します。

インスタンスの設定では、使用するJenkinsのURLを指定することができます。この場合、デフォルトのURL(server-ip:8080)を使用します。

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Jenkinsインスタンスのデフォルトポートの変更

以前に、デフォルトではJenkinsはポート8080で実行されることを学びました。これは問題ありません。しかし、ApacheやNGINXなど、同じポートで他のアプリケーションを実行する必要がある場合はどうでしょうか?心配ありません!Jenkinsのデフォルトポート(8080)を変更し、他のポートでJenkinsインスタンスを実行することができます。

1. 好みのテキストエディタで/etc/default/Jenkinsファイルを開き、デフォルトのポートを8080から9090に変更して変更内容を保存します。

Changing the Default Jenkins Port

2. 次に、以下のコマンドを実行してJenkinsを再起動し、更新された設定が有効になるようにします。

sudo systemctl restart jenkins

3. 最後に、JenkinsのURLに移動しますが、今回はポートを9090に変更します。以下に示します。

Jenkins Running successfully on Port 9090

SSL証明書を使用してJenkinsを安全に実行する

これで、Jenkinsインスタンスは完璧にポート9090で実行されます。しかし、セキュリティは確保されていません。SSL証明書を有効にして、Jenkinsインスタンスが攻撃者によって侵害されることを避けましょう。

SSL証明書は、外部認証機関から利用できない場合に、ローカルマシンでテストするために主に使用されます。

Jenkinsインスタンスを保護するためには:

1. 各コマンドを実行して、~/certificatesという名前のディレクトリを作成し、証明書を保存するディレクトリに変更します。

mkdir ~/certificates
cd ~/certificates

2. 次に、以下のopensslコマンドを実行して、証明書署名要求(CSR)と秘密鍵を生成します。

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. 以下のコマンドを実行して、別のディレクトリ(/etc/apache2/ssl)を作成し、~/certificates/ディレクトリから証明書を/etc/apache2/sslディレクトリに移動します。

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. デフォルトのSSL Apacheサイト設定ファイル(/etc/apache2/sites-available/default-ssl.conf)を開き、以下の行を追加します。サーバーの実際の名前である<my-server-name>を置き換えてください。

以下のコードでは、以前にSSL証明書をコピーした場所(証明書キーとファイル)を指定します。また、Jenkinsがポート9090にリダイレクトするために、ProxyPass引数を追加し、ProxyPreserveHostをオンにします。

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. 以下の各コマンドを実行して、SSLモジュールを有効にし、変更したサイトを有効にし、Apacheサービスを再起動します。

# SSLモジュールを有効にして、SSL接続で作業できるようにします。
sudo a2enmod ssl proxy proxy_http proxy_balancer
# 変更したサイトを有効にします(ステップ4)
sudo a2ensite default-ssl.conf
# Apacheサービスを再起動します
sudo service apache2 restart

6. 最後に、以下に示すようにHTTPSを使用してJenkinsインスタンスに移動してください。

表示されるように、JenkinsはHTTPSポートでSSL接続で正常に開かれています。セルフサインド証明書(自己作成)ではなく、証明機関によって作成された証明書を使用していないため、安全ではありませんという警告が表示されても心配しないでください。

Accessing Jenkins Instance with SSL connections on HTTPS port

結論

このチュートリアルでは、UbuntuマシンにJenkinsをインストールし、安全にJenkinsインスタンスにアクセスできることを確認する方法を学びました。

では、Jenkinsを活用するための計画はありますか?ウェブの展開を自動化することでしょうか?それともソフトウェア開発プロセスを改善するためにJenkins CI CDパイプラインを作成することでしょうか?

Source:
https://adamtheautomator.com/install-jenkins/