Jenkins ビルドジョブを作成して Web デプロイメントを自動化する方法

アプリケーションの構築と展開は難しい作業です。なぜJenkinsビルドジョブを使用して、プロセス全体を自動化しないのですか?あなたは構築に集中し、Jenkinsがコードの展開を処理します。

このチュートリアルでは、Jenkinsを使用してコードの展開を自動化する方法を学び、時間を節約して他のタスクに同時に集中できます。

準備はできましたか?さあ始めましょう!

前提条件

このチュートリアルには実演が含まれています。一緒に進める場合は、以下のものを準備してください:

以下のスクリーンショットに表示されるリポジトリは上記のリンクと若干異なる場合がありますが、フォークした後は異なるリポジトリのURLも使用します。

Jenkinsのビルドジョブを作成する

Jenkinsは、ソフトウェア開発ライフサイクルの自動化に役立つオープンソースの自動化サーバーです。このライフサイクルには、ビルド、テスト、展開が含まれ、継続的インテグレーションと継続的デリバリーを容易にします。

このデモでは、Jenkinsのビルドジョブの作成方法を説明します。ビルドジョブは通常、ソフトウェアのビルド/パッケージングのためのタスクを自律的に実行するための構成です。

  1. お気に入りのブラウザを起動し、http://localhost:8080/ に移動し、Jenkinsのダッシュボードにログインします。ポート8080は、Jenkinsのダッシュボードにアクセスするためのデフォルトのポートです。

2. Jenkinsのダッシュボードで、左パネルの新規作成ボタンをクリックしてビルドジョブの作成を初期化します。これにより、ブラウザが新しいジョブページにリダイレクトされます。

Creating a new Jenkins Job

3. 次に、以下に表示される入力フィールドにビルドジョブのためのプロジェクト名を入力します。この例では、プロジェクト名はwebDeployです。

フリースタイルプロジェクトオプションを選択して、ジョブの作成、スクリプトのポストビルドアクションの設定、およびプロジェクトのビルドトリガーの設定を有効にします。その後、OKをクリックします。次のステップで表示されるジョブの設定ページにリダイレクトされます。

Creating a Jenkins project

4. 一般タブをクリックし、GitHubプロジェクトのチェックボックスをオンにして、Jenkinsがコードを取得する場所を知るためのソースコードマネージャーをリンクします。このデモでは、GitHubにホストされているサンプルプロジェクトのソースコードマネージャーとしてGitを使用します。GitHubアカウントからGitHubリポジトリのURLをプロジェクトURLのフィールドに貼り付けてください。

Linking Jenkins to a source code manager

5. 最後に、ソースコード管理タブをクリックし、ソースコードマネージャーとしてGitを選択します。

このGitHubリポジトリのURL (https://github.com/Claradev32/webDeploy.git)を入力フィールドにコピーして貼り付けます。現在の設定を保存するには、保存ボタンをクリックします。

Linking Jenkins to Source Code Manager (Git)

Jenkinsプロジェクトの資格情報の作成

おそらく、お客様のプロジェクトではリポジトリを非公開にしたい場合があります。その場合、JenkinsがGitHubからプロジェクトをクローンするための認証情報を作成する必要があります。

Jenkinsプロジェクトの認証情報を作成するには、GitHubアカウントに最初にSSHキーを生成して追加する必要があります。

1. あなたのUbuntuターミナルを開き、以下のコマンドを実行してSSHキーを生成してください。キーのタイプにはed25519を使用します。GitHubのメールアドレスである[email protected]をコメントとしてSSHキーに追加してください。

ssh-keygen -t ed25519 -C "[email protected]"

2. 次に、公開SSHキーを以下のように保存してください:

  • SSHキーの保存場所を指定し、Enterを押して保存してください。保存場所を指定しない場合、コマンドはデフォルトの場所にSSHキーを保存します。
  • SSHキーに安全なパスフレーズを入力し、Enterで確認し、公開SSHキーの出力が表示されます。
  • 生成されたSSHキーの場所をメモしておき、次の手順でGitHubアカウントに追加します。
Adding a Passphrase to the SSH key

3. ウェブブラウザでGitHubにサインインし、アカウント設定ページに移動してください。

4. 左パネルのSSHとGPGキーリンクをクリックし、New SSH Keyをクリックして新しいSSHキーを構成します。

Creating a Github SSH key

5. 最後に、SSHキーのタイトルを入力してください。タイトルは内部のドキュメンテーション用です。以前に保存したファイルからSSHキーを貼り付け、Key入力フィールドに貼り付け、Add SSH Keyをクリックしてキーを保存してください。

これは公開鍵であり、秘密鍵ではありません!

Saving New SSH Key

Jenkinsの資格情報にSSHプライベートキーを追加

SSHキーペアを作成してJenkins資格情報として使用するために、SSHプライベートキーもJenkins資格情報に追加する必要があります。JenkinsがGitHubリポジトリにアクセスするための承認を受けるためです。しかし、まず、GitHubリポジトリのSSH URLをメモしておいてください。

1. GitHubリポジトリページに移動し、Code → SSHをクリックし、以下に示すコピー アイコンをクリックしてSSH URLをクリップボードにコピーします。

Noting Down GitHub SSH URL

2. 次に、Jenkinsダッシュボードに移動し、Manage Jenkinsをクリックしてプロジェクトの設定ページにアクセスします。

Accessing Jenkins Settings

3. スクロールして、Securityセクションの下にあるManage Credentialsオプションをクリックして、Jenkins資格情報のリストを表示します。

Accessing Jenkins Credentials

4. 以下に示すCredentialsページでJenkinsをクリックして、新しい資格情報を追加できる「System」ページにアクセスします。

Accessing System Page to Add Credentials

5. 今、Systemページで、マウスをGlobal credentials (unrestricted)オプションの上に置いて、ドロップダウンメニューを表示し、下向きの矢印アイコンをクリックします。

ドロップダウンメニューからAdd credentialsをクリックします。ページがリダイレクトされ、次のステップで表示される新しい資格情報を設定するフォームに移動します。

System Page

6. 最初の入力フィールドでSSHユーザー名とプライベートキーを選択し、Usernameフィールドにプロジェクトのユーザー名を入力します。この例では、ユーザー名はCI/CDです。

この場合、ユーザー名は純粋に内部ドキュメントであり、認証には使用されません。

Setting a Username for Jenkins Global Credentials

7. 以下のコマンドを実行して、SSHプライベートキーを表示します。キーの保存場所を以下のように変更してください(以下のキーはホームディレクトリに保存されています)。次のステップでJenkinsの資格情報に追加するため、SSHプライベートキーをメモしておいてください。

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. SSHプライベートキーをメモしたら、グローバル資格情報(制限なし)ページに戻ります。

「Jenkinsプロジェクトの資格情報を作成する」セクション(ステップ2)で設定したパスフレーズをパスフレーズ入力欄に入力し、OKをクリックします。これにより、JenkinsがGitHubリポジトリにアクセスする権限が与えられます。

SSHキーを作成する際にパスワードを含めなかった場合は、直接入力をクリックして、追加ボタンをクリックします。以下に示すようにSSHプライベートキーをキー入力欄に入力し、資格情報を保存するためにOKボタンを押します。

Adding GitHub SSH key to Jenkins Credentials

8. Jenkinsダッシュボードに戻り、プロジェクトにマウスを重ね、矢印の下向きアイコンをクリックし、設定を選択します。ページがプロジェクトの設定ページにリダイレクトされます。

Configuring Jenkins Project

10. 最後に、ドロップダウンフィールドで資格情報のユーザー名を選択します(「Jenkinsの資格情報にシークレットキーを追加する」セクションのステップ6から)。JenkinsはデフォルトでCID原則を適用し、プロジェクトの継続的な統合と展開を保証します。

Connecting Jenkins to GitHub

ビルドトリガーとポストビルドアクションの設定

これで、ビルドジョブの骨組みが作成されました。しかし、プロジェクトを定期的に変更する場合、毎回手動で再展開する必要がありますか?ビルドトリガーを設定しないでしょうか?ビルドトリガーは、GitHubにプッシュされたプロジェクトの変更を自動的に再展開します。

1. プロジェクトの設定ページで、ビルドトリガータブをクリックし、GITScmポーリングのためのGitHubフックトリガーオプションをチェックします。このオプションを使用すると、プロジェクトの変更が自動的に再展開されます。

Configuring build triggers

2. ビルドタブをクリックし、ビルドステップを追加をクリックし、シェルを実行を選択して、Jenkinsが新しいバージョンのコードをダウンロードするたびに実行されるスクリプトを作成します。

Creating a Build Script

作成するシェルスクリプトは、開発環境に依存します。Windowsの場合、Windowsがスクリプトを実行します。他のオペレーティングシステムでも同様です。

3. 以下のシェルコマンドを入力し、保存をクリックしてビルドスクリプトを保存します。変更を保存した後、ページはプロジェクトのダッシュボードにリダイレクトされます。

以下のコマンドは、コードをソースコードリモートロケーション(`origin master`)からプルし、NodeJS NPM install(`npm install`)を使用してプロジェクトを実行するために必要な依存関係をインストールします。これらのコマンドは、プッシュリクエストをソースコードマネージャーに行うたびに実行されます。

この特定のプロジェクトでは、依存関係にNodeJSが使用されていますが、あなたのプロジェクトではそうでない場合もあります。

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. 今、プロジェクトのダッシュボードで、Build Nowをクリックしてビルドを実行します。

Running the Build

5. ビルド履歴にスクロールして、ビルドのステータスを確認します。ビルドが成功した場合、以下のスクリーンショットと類似した出力が表示されます。

Viewing Successful Build

ビルドが失敗した場合は、以下に示す出力が表示されます。

Failed build history

6. 次に、上にスクロールして、Configureをクリックしてプロジェクトのポストビルドアクションを設定します。

Configuring Project’s Post Build Actions

7. Post Build Actionsタブをクリックし、Add post-build actionをクリックしてGit publisherを選択します。ページはGit Publisher設定セクションを展開します(次のステップ)。

Accessing Git Publisher Post-Build Action

8. 最後に、Push Only If Build Succeedsオプションを有効にし、変更を保存するためにSaveボタンをクリックします。このオプションを有効にすると、Jenkinsにビルドが成功したときにのみコードをデプロイするように指示されます。

Adding Post-Build Actions

結論

このチュートリアルでは、Jenkinsをソースコード管理システムに接続するプロセスを学びました。また、Jenkinsがコードの新しいバージョンをダウンロードすると自動的に実行されるビルドスクリプトを作成し、Webデプロイメントを自動化するためのビルドトリガーを設定しました。

では、Jenkinsのビルドジョブを使用してアプリケーションのデプロイメントを自動化して、時間を節約しませんか?

Source:
https://adamtheautomator.com/jenkins-build-job/