Jenkins-quick-guide
ジェンキンス-概要
ジェンキンスを選ぶ理由
Jenkinsは、*継続的な統合*を可能にするソフトウェアです。 Jenkinsは、セントラルビルドが行われるサーバーにインストールされます。 次のフローチャートは、Jenkinsの動作の非常に単純なワークフローを示しています。
Jenkinsとともに、 Hudson の関連性が見られることもあります。 Hudsonは、Sun Microsystemsによって開発され、後にOracleに買収された非常に人気のあるオープンソースのJavaベースの継続的統合ツールです。 OracleによるSunの買収後、ハドソンのソースコードからフォークが作成され、Jenkinsの導入がもたらされました。
継続的インテグレーションとは何ですか?
継続的インテグレーションは、開発者がコードを定期的に共有リポジトリに統合する必要がある開発手法です。 この概念は、ビルドライフサイクルで問題が後で発生するのを見つける問題を取り除くことを目的としています。 継続的な統合では、開発者が頻繁にビルドする必要があります。 一般的な方法は、コードのコミットが発生するたびに、ビルドがトリガーされることです。
システム要求
JDK | JDK 1.5 or above |
Memory | 2 GB RAM (recommended) |
Disk Space | No minimum requirement. Note that since all builds will be stored on the Jenkins machines, it has to be ensured that sufficient disk space is available for build storage. |
Operating System Version | Jenkins can be installed on Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo. |
Java Container | The WAR file can be run in any container that supports Servlet 2.4/JSP 2.0 or later.(An example is Tomcat 5). |
Jenkins-インストール
ジェンキンスをダウンロード
Jenkinsの公式Webサイトはhttps://jenkins-ci.org/[Jenkins]です。 特定のリンクをクリックすると、以下に示すようにJenkinsの公式Webサイトのホームページを取得できます。
デフォルトでは、最新リリースと長期サポートリリースがダウンロード可能です。 過去のリリースもダウンロードできます。 ダウンロードセクションの[長期サポートリリース]タブをクリックします。
「古いが安定したバージョン」リンクをクリックして、Jenkins warファイルをダウンロードします。
Jenkinsの起動
コマンドプロンプトを開きます。 コマンドプロンプトから、jenkins.warファイルが存在するディレクトリを参照します。 次のコマンドを実行してください。
D:\>Java –jar Jenkins.war
コマンドが実行されると、さまざまなタスクが実行されます。そのうちの1つは、winstoneと呼ばれる組み込みWebサーバーによって行われるwarファイルの抽出です。
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/.jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
大きなエラーが発生することなく処理が完了すると、コマンドプロンプトの出力に次の行が表示されます。
INFO: Jenkins is fully up and running
Jenkinsへのアクセス
Jenkinsが起動して実行されると、リンクからJenkinsにアクセスできます- http://localhost:8080
このリンクはJenkinsダッシュボードを表示します。
Jenkins – Tomcatセットアップ
Jenkins Tomcatのセットアップでは、次の前提条件を満たす必要があります。
ステップ1:Javaインストールの検証
Javaのインストールを確認するには、コンソールを開き、次のjavaコマンドを実行します。
OS | Task | Command |
---|---|---|
Windows | Open command console | \>java –version |
Linux | Open command terminal | $java –version |
Javaがシステムに適切にインストールされている場合、作業しているプラットフォームに応じて、次の出力のいずれかを取得する必要があります。
OS | Output |
---|---|
Windows |
Java version "1.7.0_60" Java(TM)SEランタイム環境(ビルド1.7.0_60-b19) Java Hotspot(TM)64ビットサーバーVM(ビルド24.60-b09、混合モード) |
Linux |
java version "1.7.0_25" JDKランタイム環境を開く(rhel-2.3.10.4.el6_4-x86_64) JDK 64ビットサーバーVMを開く(ビルド23.7-b01、混合モード) |
このチュートリアルの読者は、このチュートリアルに進む前に、システムにJava 1.7.0_60がインストールされていると想定しています。
Java JDKがない場合は、リンクhttp://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260l[Oracle]からダウンロードできます。
ステップ2:Javaインストールの検証
Javaがマシンにインストールされているベースディレクトリの場所を指すようにJAVA_HOME環境変数を設定します。 例えば、
OS | Output |
---|---|
Windows | Set Environmental variable JAVA_HOME to C:\ProgramFiles\java\jdk1.7.0_60 |
Linux | export JAVA_HOME=/usr/local/java-current |
Javaコンパイラの場所の完全パスをシステムパスに追加します。
OS | Output |
---|---|
Windows | Append the String; C:\Program Files\Java\jdk1.7.0_60\bin to the end of the system variable PATH. |
Linux | export PATH=$PATH:$JAVA_HOME/bin/ |
上記で説明したように、コマンドプロンプトからjava-versionコマンドを確認します。
ステップ3:Tomcatをダウンロードする
Tomcatの公式Webサイトはhttp://tomcat.apache.org/[Tomcat]です。 特定のリンクをクリックすると、以下に示すように、Tomcatの公式Webサイトのホームページを取得できます。
リンクhttps://tomcat.apache.org/download-70.cgiを参照して、tomcatのダウンロードを取得します。
[バイナリ配布]セクションに移動します。 32ビットWindows zipファイルをダウンロードします。
次に、ダウンロードしたzipファイルの内容を解凍します。
ステップ4:JenkinsとTomcatのセットアップ
前のセクションからダウンロードしたJenkis.warファイルをコピーして、tomcatフォルダーのwebappsフォルダーにコピーします。
コマンドプロンプトを開きます。 コマンドプロンプトから、tomcat7フォルダーが存在するディレクトリを参照します。 このフォルダー内のbinディレクトリーを参照して、start.batファイルを実行します
E:\Apps\tomcat7\bin>startup.bat
大きなエラーが発生することなく処理が完了すると、コマンドプロンプトの出力に次の行が表示されます。
INFO: Server startup in 1302 ms
ブラウザを開き、リンクに移動します- http://localhost:8080/jenkins 。 JenkinsはTomcatで稼働します。
Jenkins-Gitセットアップ
この演習では、Jenkinsがインストールされているマシンからインターネット接続が存在することを確認する必要があります。 Jenkinsダッシュボード(ホーム画面)で、左側の[Jenkinsの管理]オプションをクリックします。
次の画面で、[プラグインの管理]オプションをクリックします。
次の画面で、「使用可能」タブをクリックします。 このタブには、ダウンロード可能なプラグインのリストが表示されます。 [フィルタ]タブに「Gitプラグイン」と入力します
その後、リストがフィルタリングされます。 Gitプラグインオプションを確認し、「再起動せずにインストール」ボタンをクリックします
インストールが開始され、画面が更新されてダウンロードのステータスが表示されます。
すべてのインストールが完了したら、ブラウザで次のコマンドを発行してJenkinsを再起動します。 http://localhost:8080/jenkins/restart
Jenkinsの再起動後、Gitはオプションとしてジョブの構成中に利用可能になります。 確認するには、Jenkinsのメニューオプションで[新しいアイテム]をクリックします。 次に、ジョブの名前を入力します。次の場合、入力される名前は「デモ」です。 アイテムタイプとして[フリースタイルプロジェクト]を選択します。 [OK]ボタンをクリックします。
次の画面で、[ソースコード管理]セクションを参照すると、オプションとして[Git]が表示されます。
Jenkins – Mavenセットアップ
ステップ1:Mavenのダウンロードとセットアップ
mavenの公式Webサイトはhttps://maven.apache.org/download.cgi[Apache Maven]です。 指定されたリンクをクリックすると、以下に示すように、Maven公式Webサイトのホームページを取得できます。
サイトを閲覧しながら、[ファイル]セクションに移動し、Binary.zipファイルへのリンクをダウンロードします。
ファイルがダウンロードされたら、関連するアプリケーションフォルダーにファイルを抽出します。 このため、MavenファイルはE:\ Apps \ apache-maven-3.3.3に配置されます。
ステップ2:JenkinsとMavenのセットアップ
Jenkinsダッシュボード(ホーム画面)で、左側のメニューから[Jenkinsの管理]をクリックします。
次に、右側の[システムの構成]をクリックします。
[システムの構成]画面で、Mavenセクションが表示されるまで下にスクロールし、[Mavenの追加]ボタンをクリックします。
[自動的にインストール]オプションのチェックを外します。
設定の名前とMAVEN_HOMEの場所を追加します。
次に、画面の最後にある[保存]ボタンをクリックします。
「Mavenプロジェクト」オプションを使用してジョブを作成できるようになりました。 Jenkinsダッシュボードで、[新しいアイテム]オプションをクリックします。
画像:/jenkins/images/jenkins_dashboard1.jpg [Jenkins Dashboard1]画像:/jenkins/images/jenkins_dashboard2.jpg [Jenkins Dashboard2]
Jenkins-設定
おそらく、Jenkins内でオプションを構成する必要があった以前の演習で数回見たことがあるでしょう。 以下は、Jenkinsのさまざまな設定オプションを示しています。
そのため、左側のメニューから[ジェンキンの管理]オプションをクリックして、ジェンキンのさまざまな設定オプションを取得できます。
その後、次の画面が表示されます-
[システムの構成]をクリックします。 実行可能なJenkinsの構成設定の一部を以下で説明します。
ジェンキンスホームディレクトリ
Jenkinsには、ビルドを実行してアーカイブを保持するためのディスクスペースが必要です。 Jenkinsの設定画面からこの場所を確認できます。 デフォルトでは、これは〜/.jenkinsに設定され、この場所はユーザープロファイルの場所に最初に保存されます。 適切な環境では、この場所を適切な場所に変更して、関連するすべてのビルドとアーカイブを保存する必要があります。 次の方法でこれを行うことができます
- サーブレットコンテナを起動する前に、「JENKINS_HOME」環境変数を新しいホームディレクトリに設定します。
- 「JENKINS_HOME」システムプロパティをサーブレットコンテナに設定します。
- JNDI環境エントリ「JENKINS_HOME」を新しいディレクトリに設定します。
次の例では、「JENKINS_HOME」環境変数を設定する最初のオプションを使用します。
最初に新しいフォルダーE:\ Apps \ Jenkinsを作成します。 既存の〜/.jenkinsからすべてのコンテンツをこの新しいディレクトリにコピーします。
JENKINS_HOME環境変数を設定して、Javaがマシンにインストールされているベースディレクトリの場所を指すようにします。 例えば、
OS | Output |
---|---|
Windows | Set Environmental variable JENKINS_HOME to you’re the location you desire. As an example you can set it to E:\Apps\Jenkins |
Linux | export JENKINS_HOME =/usr/local/Jenkins or the location you desire. |
Jenkinsダッシュボードで、左側のメニューから[Jenkinsの管理]をクリックします。 次に、右側から「システムの構成」をクリックします。
ホームディレクトリに、構成された新しいディレクトリが表示されます。
エグゼキューターの数
これは、Jenkinsマシンで実行できる同時ジョブ実行の総数を指します。 これは要件に基づいて変更できます。 パフォーマンスを向上させるために、マシン上のCPUの数と同じ数を維持することが推奨される場合があります。
環境変数
これは、すべてのジョブに適用されるカスタム環境変数を追加するために使用されます。 これらはキーと値のペアであり、必要に応じてビルドでアクセスおよび使用できます。
ジェンキンスURL
デフォルトでは、Jenkins URLはlocalhostを指します。 マシンにドメイン名が設定されている場合は、これをドメイン名に設定します。それ以外の場合は、localhostをマシンのIPで上書きします。 これは、スレーブをセットアップするのに役立ちます。また、$ \ {JENKINS_URL}としてアクセスできる環境変数JENKINS_URLを使用してJenkins URLに直接アクセスできるため、電子メールを使用してリンクを送信します。
電子メール通知
電子メール通知領域で、電子メールを送信するためのSMTP設定を構成できます。 これは、JenkinsがSMTPメールサーバーに接続し、受信者リストにメールを送信するために必要です。
ジェンキンス-管理
Jenkinsを管理するには、左側のメニューから[Jenkinsの管理]オプションをクリックします。
そのため、左側のメニューから[ジェンキンの管理]オプションをクリックして、ジェンキンのさまざまな設定オプションを取得できます。
その後、次の画面が表示されます-
管理オプションのいくつかは次のとおりです-
システムを構成する
ここで、ビルドで使用するさまざまなツールへのパスを管理できます。たとえば、JDK、AntおよびMavenのバージョン、セキュリティオプション、メールサーバー、その他のシステム全体の構成の詳細などです。 プラグインがインストールされるとき。 Jenkinsは、プラグインのインストール後に必要な構成フィールドを動的に追加します。
ディスクから構成をリロードする
Jenkinsはすべてのシステムを保存し、Jenkinsホームディレクトリに保存されるXMLファイルとしてジョブ構成の詳細を作成します。 ここにもすべてのビルド履歴が保存されます。 あるJenkinsインスタンスから別のJenkinsインスタンスにビルドジョブを移行する場合、または古いビルドジョブをアーカイブする場合は、対応するビルドジョブディレクトリをJenkinsのビルドディレクトリに追加または削除する必要があります。 これを行うためにJenkinsをオフラインにする必要はありません。「ディスクから設定を再読み込み」オプションを使用して、Jenkinsシステムを再読み込みし、ジョブ設定を直接構築できます。
プラグインを管理する
ここでは、Git、Mercurial、ClearCaseなどのさまざまなソースコード管理ツールからさまざまなサードパーティプラグインをインストールして、コード品質やコードカバレッジメトリックレポートを作成できます。 プラグインは、プラグインの管理画面からインストール、更新、削除できます。
システムインフォメーション
この画面には、現在のすべてのJavaシステムプロパティとシステム環境変数のリストが表示されます。 ここでは、Java Jenkinsのどのバージョンで実行されているか、どのユーザーで実行されているかなどを正確に確認できます。
次のスクリーンショットは、このセクションで利用可能な名前と値の情報の一部を示しています。
システムログ
システムログ画面は、Jenkinsログファイルをリアルタイムで表示する便利な方法です。 繰り返しますが、この画面の主な用途はトラブルシューティングです。
負荷統計
このページには、Jenkinsインスタンスの同時ビルド数とビルドキューの長さに関するグラフィックデータが表示され、ビルドが実行されるまでに待機する必要がある時間の長さがわかります。 これらの統計は、インフラストラクチャの観点から、追加の容量または追加のビルドノードが必要かどうかの良いアイデアを提供できます。
スクリプトコンソール
この画面では、サーバーでGroovyスクリプトを実行できます。 内部のJenkinsアーキテクチャの強力な知識が必要なため、高度なトラブルシューティングに役立ちます。
ノードを管理する
Jenkinsは、並列ビルドと分散ビルドを処理できます。 この画面では、必要なビルドの数を構成できます。 Jenkinsは同時に実行され、分散ビルドを使用している場合は、ビルドノードをセットアップします。 ビルドノードは、Jenkinsがビルドの実行に使用できる別のマシンです。
シャットダウンの準備
Jenkinsをシャットダウンする必要がある場合、またはJenkinsが実行されているサーバーの場合、ビルドの実行中はシャットダウンしないことをお勧めします。 Jenkinsを完全にシャットダウンするには、「シャットダウンの準備」リンクを使用して、新しいビルドが開始されないようにします。 最終的に、現在のビルドがすべて終了すると、Jenkinsを完全にシャットダウンできます。
Jenkins-ビルドジョブのセットアップ
この演習では、Jenkinsで簡単なHelloWorldアプリケーションを取得し、javaプログラムをビルドして実行するジョブを作成します。
- ステップ1 *-Jenkinsダッシュボードに移動し、[新しいアイテム]をクリックします
- ステップ2 *-次の画面で、アイテム名を入力します。この場合、Helloworldという名前を付けています。 「フリースタイルプロジェクトオプション」を選択します
- ステップ3 *-次の画面が表示され、ジョブの詳細を指定できます。
- ステップ4 *-ビルドする必要があるファイルの場所を指定する必要があります。 この例では、「HelloWorld.java」ファイルを含むローカルgitリポジトリ(E:\ Program)がセットアップされていると想定します。 したがって、下にスクロールして[Git]オプションをクリックし、ローカルgitリポジトリのURLを入力します。
注-Githubでホストされている場合は、リポジトリのURLもここに入力できます。 さらに、資格情報の[追加]ボタンをクリックして、ユーザー名とパスワードをgithubリポジトリに追加し、リモートリポジトリからコードを取得できるようにする必要があります。
- ステップ5 *-[ビルド]セクションに移動し、[ビルドステップの追加]→[Windowsバッチコマンドの実行]をクリックします。
- ステップ6 *-コマンドウィンドウで、次のコマンドを入力し、[保存]ボタンをクリックします。
Javac HelloWorld.java
Java HelloWorld
- ステップ7 *-保存したら、[今すぐビルド]オプションをクリックして、ジョブを正常に定義したかどうかを確認できます。
- ステップ8 *-ビルドがスケジュールされると、実行されます。 次のビルド履歴セクションは、ビルドが進行中であることを示しています。
- ステップ9 *-ビルドが完了すると、ビルドのステータスにビルドが成功したかどうかが表示されます。 この場合、次のビルドが正常に実行されました。 ビルド履歴の#1をクリックして、ビルドの詳細を表示します。
- ステップ10 *-コンソール出力リンクをクリックして、ビルドの詳細を表示します
上記の手順とは別に、ビルドジョブを作成する方法は非常に多く、使用可能なオプションは多数あり、Jenkinsはこのような優れた継続的な展開ツールです。
Jenkins-ユニットテスト
Jenkinsは、Junitにすぐに使用できる機能を提供し、他のテクノロジーのユニットテスト用のプラグインのホストを提供します。たとえば、.NetユニットテストのMSTestです。 リンクhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Pluginにアクセスすると、使用可能な単体テストプラグインのリストが表示されます。
JenkinsでのJunitテストの例
次の例は考慮します
- Junitに基づく単純なHelloWorldTestクラス。
- Jenkins内のビルドツールとしてのAnt。それに応じてクラスをビルドします。
- ステップ1 *-Jenkinsダッシュボードに移動し、既存のHelloWorldプロジェクトをクリックして、[構成]オプションを選択します
- ステップ2 *-ビルドステップを追加するセクションを参照し、Antを起動するオプションを選択します。
- ステップ3 *-[詳細設定]ボタンをクリックします。
- ステップ4 *-ビルドファイルセクションで、build.xmlファイルの場所を入力します。
- ステップ5 *-次に、ビルド後オプションを追加するオプションをクリックし、「Junitテスト結果レポートを公開」のオプションを選択します
ステップ6 *-テストレポートのXMLで、次のように場所を入力します。 ReportsがHelloWorldプロジェクトワークスペースに作成されるフォルダーであることを確認します。 「 .xml」は基本的に、Junitテストケースの実行によって生成された結果xmlファイルを取得するようJenkinsに指示します。 これらのxmlファイルは、後で表示できるレポートに変換されます。
完了したら、最後に[保存]オプションをクリックします。
- ステップ7 *-保存したら、[今すぐビルド]オプションをクリックできます。
ビルドが完了すると、ビルドのステータスにビルドが成功したかどうかが表示されます。 ビルド出力情報には、テスト結果という追加のセクションがあります。 この例では、例として結果が失敗するように、負のテストケースを入力しました。
コンソール出力に移動して、詳細情報を確認できます。 しかし、より興味深いのは、[テスト結果]をクリックすると、テスト結果のドリルダウンが表示されることです。
Jenkins-自動テスト
継続的インテグレーションの基本原則の1つは、ビルドが検証可能であることです。 特定のビルドがビルドプロセスの次の段階に進む準備ができているかどうかを客観的に判断できなければなりません。これを行う最も便利な方法は、自動テストを使用することです。 適切な自動テストがなければ、多くのビルドアーティファクトを保持して手動でテストする必要がありますが、これは継続的インテグレーションの精神ではほとんどありません。 次の例は、Seleniumを使用して自動化されたWebテストを実行する方法を示しています。
- ステップ1 *-プラグインの管理に移動します。
- ステップ2 *-Hudson Seleniumプラグインを見つけて、インストールを選択します。 Jenkinsインスタンスを再起動します。
- ステップ3 *-システムの構成に進みます。
- ステップ4 *-Seleniumサーバーjarを構成し、[保存]ボタンをクリックします。
注-セレンのjarファイルは、http://www.seleniumhq.org/download/[SeleniumHQ]からダウンロードできます。
Seleniumスタンドアロンサーバーのダウンロードをクリックします。
Selenium Standalone Serverのダウンロード
- ステップ5 *-ダッシュボードに戻り、HelloWorldプロジェクトの[構成]オプションをクリックします。
- ステップ6 *-ビルドステップの追加をクリックし、「SeleniumHQ htmlSuite Run」のオプションを選択します
- ステップ7 *-セレンテストに必要な詳細を追加します。 ここで、suiteFileはSelenium IDEを使用して生成されたTestSuiteです。 [保存]をクリックして、ビルドを実行します。 これで、ポストビルドがセレンドライバーを起動し、htmlテストを実行します。
ジェンキンス-通知
Jenkinsには、ビルドプロジェクトの電子メール通知を追加するためのすぐに使える機能が付属しています。
- ステップ1 *-SMTPサーバーの構成。 Jenkinsの管理→システムの設定に移動します。 [電子メール通知]セクションに移動し、必要なSMTPサーバーとユーザーの電子メールサフィックスの詳細を入力します。
- ステップ2 *-Jenkinsプロジェクトで受信者を構成する-Jenkinsビルドプロジェクトを構成する場合、最後に、不安定なビルドまたは壊れたビルドの電子メール通知を受信する受信者を追加できます。 次に、[保存]ボタンをクリックします。
デフォルトとは別に、市場で入手可能な通知プラグインもあります。 例としては、JikおよびXML形式でジョブステータス通知を送信できるTikal Knowledgeの通知プラグインがあります。 このプラグインにより、以下に示すようにエンドポイントを構成できます。
ここに各オプションの詳細があります-
- "Format" -これは、JSONまたはXMLのいずれかの通知ペイロード形式です。
- 「プロトコル」-通知メッセージ、HTTP、TCP、またはUDPの送信に使用するプロトコル。
- 「イベント」-通知をトリガーするジョブイベント:ジョブ開始、ジョブ完了、ジョブ終了、またはすべてのイベント(デフォルトオプション)。
- "URL" -通知を送信するURL。 HTTPプロトコルの場合は "http://www.host.com/[http://host]"の形式を取り、TCPおよびUDPプロトコルの場合は `" host:port "`の形式を取ります。
- 「タイムアウト」-通知要求を送信するためのミリ秒単位のタイムアウト、デフォルトでは30秒。
ジェンキンス-レポート
前のセクションで示したように、多くのレポートプラグインが利用できますが、最も簡単なプラグインはjUnitテストで利用できるレポートです。
任意のジョブのビルド後アクションで、作成するレポートを定義できます。 ビルドが完了すると、テスト結果オプションを使用してさらにドリルダウンできます。
Jenkins-コード分析
Jenkinsには、コード分析プラグインのホストがあります。 さまざまなプラグインはhttps://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plug-ins[[[1]]]
このプラグインは、静的コード分析プラグインのユーティリティを提供します。 Jenkinsは、CheckStyle、FindBugs、PMDなどのさまざまなコード分析ツールからの結果ファイルを解析できます。 対応するコード分析ツールごとに、Jenkinsのプラグインをインストールする必要があります。
さらに、アドオンプラグインhttps://wiki.jenkins-ci.org/display/JENKINS/Analysis+Collector+Plugin[Static Analysis Collector]は、これらのプラグインの個々の結果を単一のトレンドグラフおよびビューに結合します。
プラグインは次のような情報を提供できます
- ジョブ内の警告の総数
- ビルドの新しいおよび修正された警告の表示
- ビルドごとの警告の数を示すトレンドレポート
- モジュール、パッケージ、カテゴリ、またはタイプごとに見つかった警告の概要
- 重大度(または新規および修正済み)でオプションでフィルター処理された、検出された警告の詳細レポート
Jenkins-分散ビルド
定期的にビルドされるより大きく重いプロジェクトがある場合、多くのビルドマシンが必要になることがあります。 そして、これらすべてのビルドを中央のマシンで実行するのは最良の選択肢ではないかもしれません。 このようなシナリオでは、他のJenkinsマシンをスレーブマシンに設定して、マスターJenkinsサーバーの負荷を軽減できます。
ビルドをテストするために、いくつかの異なる環境が必要になる場合もあります。 この場合、必要な環境のそれぞれを表すためにスレーブを使用することはほとんど必須です。
スレーブは、マスターからビルドプロジェクトをオフロードするようにセットアップされたコンピューターであり、一度セットアップされると、タスクの分散はかなり自動化されます。 正確な委任動作は、各プロジェクトの構成によって異なります。ビルドのために特定のマシンに「固執」することを選択するプロジェクトもあれば、スレーブ間で自由にローミングすることを選択するプロジェクトもあります。
各スレーブは「スレーブエージェント」と呼ばれる別個のプログラムを実行するため、完全なJenkins(パッケージまたはコンパイル済みバイナリ)をスレーブにインストールする必要はありません。 スレーブエージェントを起動するにはさまざまな方法がありますが、最終的にスレーブエージェントとJenkinsマスターは、動作するために双方向通信リンク(TCP/IPソケットなど)を確立する必要があります。
Jenkinsでスレーブ/ノードをセットアップするには、以下の手順に従います。
- ステップ1 *-[Jenkinsの管理]セクションに移動し、[ノードの管理]セクションまでスクロールします。
- ステップ2 *-新しいノードをクリックします
- ステップ3 *-ノードの名前を指定し、ダムスレーブオプションを選択して、[OK]をクリックします。
- ステップ4 *-ノードスレーブマシンの詳細を入力します。 次の例では、スレーブマシンをWindowsマシンと見なしているため、「JenkinsがこのWindowsスレーブをWindowsサービスとして制御する」オプションが起動方法として選択されました。 ノード名やノードマシンのログイン認証情報など、スレーブノードの必要な詳細を追加する必要もあります。 [保存]ボタンをクリックします。 名前が「New_Slave」と入力されたラベルは、このスレーブマシンを使用するようにジョブを構成するために使用できるものです。
上記の手順が完了すると、新しいノードマシンは最初はオフライン状態になりますが、前の画面のすべての設定が正しく入力されるとオンラインになります。 必要に応じて、いつでもノードスレーブマシンをオフラインにすることができます。
Jenkins-自動展開
ビルドが成功した後、それぞれのアプリケーション/Webサーバーにビルドファイルを転送するために使用できる多くのプラグインがあります。 たとえば、「コンテナプラグインにデプロイ」です。 これを使用するには、以下の手順に従ってください。
- ステップ1 *-Jenkinsの管理→プラグインの管理に移動します。 [利用可能]セクションに移動して、[コンテナプラグインにデプロイ]プラグインを見つけ、プラグインをインストールします。 Jenkinsサーバーを再起動します。
このプラグインはwar/earファイルを取得し、ビルドの最後に実行中のリモートアプリケーションサーバーにデプロイします。
Tomcat 4.x/5.x/6.x/7.x
JBoss 3.x/4.x
Glassfish 2.x/3.x
- ステップ2 *-ビルドプロジェクトに移動し、[構成]オプションをクリックします。 「コンテナにwar/earをデプロイする」オプションを選択します
- ステップ3 *-war/earをコンテナに展開セクションで、ファイルを展開する必要があるサーバーの必要な詳細を入力し、[保存]ボタンをクリックします。 これらの手順により、ビルドが成功した後、必要なファイルが必要なコンテナにデプロイされるようになります。
Jenkins-指標とトレンド
Jenkinsには、一定期間にわたって実行されるビルドのメトリックを表示するためのさまざまなプラグインがあります。 これらのメトリクスは、ビルドと、それらが時間の経過とともに失敗/成功する頻度を理解するのに役立ちます。 例として、「Build History Metricsプラグイン」を見てみましょう。
このプラグインは、インストールされたすべてのビルドについて次のメトリックを計算します
- 平均故障時間(MTTF)
- 平均復旧時間(MTTR)
- ビルド時間の標準偏差
- ステップ1 *-Jenkinsダッシュボードに移動し、Jenkinsの管理をクリックします
- ステップ2 *-[プラグインの管理]オプションに移動します。
Metrics Trends Manage Plugins1
- ステップ3 *-[利用可能]タブに移動して、プラグイン「ビルド履歴メトリックプラグイン」を検索し、「再起動せずにインストール」を選択します。
- ステップ4 *-次の画面が表示され、プラグインが正常にインストールされたことを確認します。 Jenkinsインスタンスを再起動します。
[ジョブ]ページに移動すると、計算されたメトリックの表が表示されます。 指標は、過去7日間、過去30日間、およびすべての期間で表示されます。
Jenkinsの全体的な傾向を確認するために、ビルドとJenkins内から情報を収集し、それらをグラフィック形式で表示するためのプラグインが用意されています。 そのようなプラグインの一例は、「Hudson global-build-statsプラグイン」です。 そのための手順を見ていきましょう。
- ステップ1 *-Jenkinsダッシュボードに移動し、Jenkinsの管理をクリックします
- ステップ2 *-[プラグインの管理]オプションに移動します
Metrics Trends Manage Plugins2
- ステップ3 *-[利用可能]タブに移動して、プラグイン「Hudson global-build-statsプラグイン」を検索し、「再起動せずにインストール」を選択します。
- ステップ4 *-次の画面が表示され、プラグインが正常にインストールされたことを確認します。 Jenkinsインスタンスを再起動します。
グローバル統計を表示するには、ステップ5〜8に従ってください。
- ステップ5 *-Jenkinsダッシュボードに移動し、Jenkinsの管理をクリックします。 [Jenkinsの管理]画面で下にスクロールすると、[グローバルビルド統計]というオプションが表示されます。 このリンクをクリックしてください。
- ステップ6 *-[統計の初期化]ボタンをクリックします。 これにより、既に実行されたビルドの既存のすべてのレコードが収集され、これらの結果に基づいてグラフを作成できます。
- ステップ7 *-データが初期化されたら、新しいチャートを作成します。 [新しいグラフを作成]リンクをクリックします。
- ステップ8 *-新しいチャートの詳細に関連する情報を入力するポップアップが表示されます。 次の必須情報を入力してください
- タイトル–この例のタイトル情報は「デモ」として提供されます
- チャートの幅– 800
- チャートの高さ– 600
- チャートの時間スケール–毎日
- チャート時間– 30日
残りの情報はそのままにしておくことができます。 情報を入力したら、[新規チャートの作成]をクリックします。
ビルドの傾向を時系列で表示するチャートが表示されます。
チャート内のセクションをクリックすると、ジョブとそのビルドの詳細をドリルダウンできます。
Jenkins-サーバーのメンテナンス
以下は、実行する基本的なアクティビティの一部であり、その一部はJenkinsサーバーのメンテナンスのベストプラクティスです。
URLオプション
次のコマンドをJenkinsインスタンスのURLに追加すると、Jenkinsインスタンスで関連するアクションが実行されます。
*http://localhost:8080/jenkins/exit* -ジェンキンスをシャットダウン
*http://localhost:8080/jenkins/restart* -jenkinsを再起動します
*http://localhost:8080/jenkins/reload* -設定をリロードする
バックアップJenkinsホーム
Jenkinsのホームディレクトリは、Jenkinsがジョブ、ビルドなどのすべての情報を保存するドライブ上の場所にすぎません。 ホームディレクトリの場所は、[Jenkinsの管理]→[システムの構成]をクリックすると表示されます。
最も空きディスク領域があるパーティションにJenkinsをセットアップします– Jenkinsは定義されたさまざまなジョブのソースコードを取得し、継続的なビルドを行うため、常に十分なハードディスク領域があるドライブにJenkinsがセットアップされるようにしてください。 ハードディスクの容量が不足すると、Jenkinsインスタンスでのすべてのビルドが失敗し始めます。
別のベストプラクティスは、クリーンアップ操作を実行できるcronジョブまたはメンテナンスタスクを作成して、Jenkinsがセットアップされているディスクがいっぱいになるのを回避することです。
Jenkins-継続的な展開
Jenkinsは、継続的な展開と配信を適切にサポートしています。 展開によるソフトウェア開発の流れを見ると、次のようになります。
継続的な展開の主な部分は、上記のプロセス全体が自動化されるようにすることです。 Jenkinsはさまざまなプラグインを介してこれらすべてを実現します。そのうちの1つは、以前のレッスンで見た「コンテナプラグインにデプロイ」です。
Continuous Deployment Container Plugin
実際に継続的な展開プロセスをグラフィカルに表示できるプラグインがあります。 しかし、最初にJenkinsで別のプロジェクトを作成して、これがどのように機能するかを最もよく確認できるようにします。
QAステージをエミュレートし、Helloworldアプリケーションのテストを行う簡単なプロジェクトを作成しましょう。
- ステップ1 *-Jenkinsダッシュボードに移動し、[新しいアイテム]をクリックします。 「フリースタイルプロジェクト」を選択し、プロジェクト名に「QA」と入力します。 [OK]ボタンをクリックして、プロジェクトを作成します。
- ステップ2 *-この例では、シンプルに保ち、このプロジェクトを使用してHelloworldアプリケーションのテストプログラムを実行しています。
これで、プロジェクトのQAがセットアップされました。 ビルドを実行して、適切にビルドされるかどうかを確認できます。
- ステップ3 *-Helloworldプロジェクトに移動し、[構成]オプションをクリックします
- ステップ4 *-プロジェクト構成で、「ビルド後のアクションを追加」を選択し、「他のプロジェクトをビルド」を選択します
- ステップ5 *-[ビルドするプロジェクト]セクションで、ビルドするプロジェクト名としてQAを入力します。 このオプションは、「ビルドが安定している場合のみトリガー」のデフォルトのままにしておくことができます。 保存ボタンをクリックしてください。
- ステップ6 *-Helloworldプロジェクトをビルドします。 コンソール出力が表示される場合、Helloworldプロジェクトが正常にビルドされた後、QAプロジェクトのビルドも発生することがわかります。
- ステップ7 *-配信パイプラインプラグインをインストールしましょう。 Jenkinsの管理→プラグインの管理に移動します。 利用可能なタブで、「Delivery Pipeline Plugin」を検索します。 再起動せずにインストールをクリックします。 完了したら、Jenkinsインスタンスを再起動します。
- ステップ8 *-配信パイプラインの動作を確認するには、Jenkinsダッシュボードで、[すべて]タブの横にあるタブの+記号をクリックします。
- ステップ9 *-ビュー名に任意の名前を入力し、[配信パイプラインビュー]オプションを選択します。
- ステップ10 *-次の画面では、デフォルトのオプションをそのまま使用できます。 次の設定を変更できます-
- [静的解析結果を表示]オプションがオンになっていることを確認します。
- [合計ビルド時間を表示]オプションがオンになっていることを確認します。
- 初期ジョブの場合–ビルドする最初のジョブとしてHelloworldプロジェクトを入力します。
- パイプラインの名前を入力してください
- OKボタンをクリックしてください。
これで、配信パイプライン全体の優れたビューが表示され、パイプライン全体の各プロジェクトのステータスを確認できます。
別の有名なプラグインは、* build pipelineプラグイン*です。 これを見てみましょう。
- ステップ1 *-Jenkinsの管理→プラグインの管理に移動します。 利用可能なタブで、「パイプラインプラグインのビルド」を検索します。 再起動せずにインストールをクリックします。 完了したら、Jenkinsインスタンスを再起動します。
- ステップ2 *-ビルドパイプラインの動作を確認するには、Jenkinsダッシュボードで、[すべて]タブの横にあるタブの+記号をクリックします。
- ステップ3 *-ビュー名に任意の名前を入力し、[パイプラインビューの構築]オプションを選択します。
- ステップ4 *-選択した初期ジョブでデフォルト設定をそのまま使用し、Helloworldプロジェクトの名前を入力します。 [OK]ボタンをクリックします。
これで、配信パイプライン全体の優れたビューが表示され、パイプライン全体の各プロジェクトのステータスを確認できます。
Jenkins-プラグインの管理
Jenkins内で利用可能なすべてのプラグインのリストを取得するには、次のリンクにアクセスしてください-https://wiki.jenkins-ci.org/display/JENKINS/Plugins
プラグインをインストールするための多くのインスタンスを見てきました。プラグインに関する他のメンテナンスタスクを見てみましょう。
プラグインのアンインストール
プラグインをアンインストールするには、Jenkinsの管理→プラグインの管理に移動します。 [インストール済み]タブをクリックします。 一部のプラグインには、アンインストールオプションがあります。 これらのボタンをクリックして、プラグインをアンインストールできます。 アンインストール後にJenkinsインスタンスを再起動してください。
別のバージョンのプラグインをインストールする
古いバージョンのプラグインをインストールする必要がある場合があります。そのような場合、Jenkins Webサイトの関連するプラグインページからプラグインをダウンロードできます。 その後、 Upload オプションを使用して、プラグインを手動でアップロードできます。
ジェンキンス-セキュリティ
Jenkinsでは、Jenkinsインスタンスでユーザーとその関連する権限を設定できます。 デフォルトでは、誰もがJenkinsでジョブやその他の管理タスクを定義できるようにはなりません。 そのため、Jenkinsにはセキュリティ構成を配置する機能があります。
Jenkinsでセキュリティを構成するには、以下の手順に従います。
- ステップ1 *-[Jenkinsの管理]をクリックし、[グローバルセキュリティの構成]オプションを選択します。
- ステップ2 *-[セキュリティを有効にする]オプションをクリックします。 例として、Jenkinsが独自のユーザーデータベースを維持するようにしたいとします。したがって、セキュリティレルムで、「Jenkins」自身のユーザーデータベースのオプションを選択します。
デフォルトでは、中央管理者にシステム内のユーザーを定義してもらい、「ユーザーにサインアップを許可する」オプションが選択されていないことを確認します。 残りは今のままにして、[保存]ボタンをクリックします。
- ステップ3 *-最初のユーザーを追加するように求められます。 例として、システムの管理ユーザーを設定しています。
- ステップ4 *-次に、システムでユーザーを設定します。 Jenkinsの管理に移動して下にスクロールすると、「ユーザーの管理」オプションが表示されます。 このオプションをクリックしてください。
- ステップ5 *-管理ユーザーを定義したように、システム用の他のユーザーの作成を開始します。 例として、「user」という別のユーザーを作成しています。
- ステップ6 *-次は、基本的に誰が何にアクセスできるか、認証を設定します。 Jenkinsの管理→グローバルセキュリティの設定に移動します。
[認証]セクションで、[マトリックスベースのセキュリティ]をクリックします。
- ステップ7 *-ユーザーグループリストにユーザーが表示されない場合は、ユーザー名を入力してリストに追加します。 次に、ユーザーに適切な権限を付与します。
関連する承認を定義したら、[保存]ボタンをクリックします。
これで、Jenkinsセキュリティがセットアップされました。
注意-Windows AD認証の場合、Active DirectoryプラグインをJenkinsに追加する必要があります。
Jenkins-バックアッププラグイン
Jenkinsには、Jenkinsに関連する重要な構成設定のバックアップに使用できるバックアッププラグインがあります。 以下の手順に従って、バックアップを作成します。
- ステップ1 *-Jenkinsの管理をクリックして、[プラグインの管理]オプションを選択します。
- ステップ2 *-利用可能なタブで、「バックアッププラグイン」を検索します。 再起動せずにインストールをクリックします。 完了したら、Jenkinsインスタンスを再起動します
- ステップ3 *-Jenkinsの管理に移動して下にスクロールすると、オプションとして「バックアップマネージャー」が表示されます。 このオプションをクリックします。
- ステップ4 *-[設定]をクリックします。
- ステップ5 *-ここで、定義するメインフィールドは、バックアップのディレクトリです。 Jenkinsインスタンスがセットアップされているドライブとは異なる別のドライブにあることを確認します。 保存ボタンをクリックしてください。
- ステップ6 *-バックアップを開始するには、[バックアップマネージャー]画面で[バックアップHudson構成]をクリックします。
次の画面にバックアップのステータスが表示されます
バックアップから回復するには、[バックアップマネージャー]画面に移動し、[Hudson構成の復元]をクリックします。
バックアップのリストが表示されます。適切なリストをクリックして[復元の起動]をクリックし、バックアップの復元を開始します。
Jenkins-リモートテスト
セレンテストなどのWebテストは、マスタースレーブおよびセレンスイートプラグインのインストールを介してリモートスレーブマシンで実行できます。 次の手順は、この構成を使用してリモートテストを実行する方法を示しています。
- ステップ1 *-マスタースレーブ構成が適切であることを確認します。 マスターJenkinsサーバーに移動します。 Jenkinsの管理→ノードの管理に移動します。
ノードリストでは、DXBMEM30ラベルがスレーブマシンです。 この例では、マスターマシンとスレーブマシンの両方がWindowsマシンです。
- ステップ2 *-DXBMEM30スレーブマシンの構成をクリックします。
- ステップ3 *-起動方法が「Java Web Start経由でスレーブエージェントを起動する」として設定されていることを確認します
- ステップ4 *-スレーブマシンに移動し、そこからブラウザインスタンスを開いてJenkinsマスターインスタンスを開きます。 次に、Jenkinsの管理→ノードの管理に進みます。 DXBMEM30に移動し、クリックします
- ステップ5 *-DXBMEM30インスタンスをクリックします。
- ステップ6 *-下にスクロールすると、「Java Web Start」を起動するオプションである起動オプションが表示されます。
- ステップ7 *-セキュリティ警告が表示されます。 Acceptanceチェックボックスをクリックして、runをクリックします。
Jenkins Slaveウィンドウが開いて、接続されていることがわかります。
Jenkins Slave Window Connected
- ステップ8 *-テストをスレーブで実行するように設定します。 ここでは、作成するジョブがセレンテストのみを実行することを特に意図していることを確認する必要があります。
ジョブの構成で、[このプロジェクトを実行できる場所を制限する]オプションが選択されていることを確認し、ラベル式にスレーブノードの名前を入力します。
- ステップ9 *-ジョブのセレン部分が構成されていることを確認します。 Samplelファイルとselenium-server.jarファイルがスレーブマシンにも存在することを確認する必要があります。
上記の手順をすべて実行し、[ビルド]をクリックすると、このプロジェクトはスレーブマシンで予想どおりにSeleniumテストを実行します。