jenkins チュートリアル
ジェンキンスを始める
サーチ…
備考
Jenkinsは、Javaで書かれたオープンソースの継続的な統合ツールです。このプロジェクトは、 Oracleとの紛争の後、 Hudsonから派遣されました。
Jenkinsはソフトウェア開発のための継続的な統合サービスを提供しています。これは、Apache Tomcatなどのサーブレットコンテナで実行されるサーバーベースのシステムです。 AccuRev、CVS、Subversion、Git、Mercurial、Perforce、Clearcase、RTCなどのSCMツールをサポートし、Apache AntやApache Mavenベースのプロジェクト、任意のシェルスクリプトやWindowsバッチコマンドを実行できます。 Jenkinsの主な開発者はKawagke Kawaguchiです。 JenkinsはMITライセンスの下でリリースされ、フリーソフトウェアです。
ビルドは、バージョン管理システムでのコミット、cron-likeメカニズムによるスケジューリング、他のビルドが完了したときのビルド、特定のビルドURLの要求など、さまざまな手段で開始できます。
バージョン
ジェンキンス
バージョン | 発売日 |
---|---|
1.656 | 2016-04-03 |
2.0 | 2016-04-20 |
ジェンキンス1.x対ジェンキンス2.x
Jenkinsは、SCMコミットトリガー上にコードを構築するなど、ソフトウェア開発プロセスの自動化を可能にする継続的統合(CI)システムです(まだあります)。しかし、継続的な配信(CD)の必要性が高まっていることから、Jenkinsは純粋なCIシステムをCIとCDの組み合わせに進化させることが求められています。また、ジェンキンスの仕事を非商業化する必要性が高まっており、古典的なジェンキンス1.x Freestyle/Maven jobs
は、特定のニーズにはあまりにも制限があり始めました。
Jenkins 1.xaでは、 workflow-plugin
pluginと呼ばれるworkflow-plugin
が開発者がジョブを記述するコードを書くことができるようになった。 Jenkins 2はPipeline as Code
組み込みサポートを追加することで、さらに進歩してPipeline as Code
。主な利点は、Groovyスクリプトファイルであるパイプラインは、UI設定のフリースタイルジョブよりも複雑で、バージョン管理が可能であるということです。 Jenkins 2には、パイプラインで定義されたさまざまな「ステージ」を容易に視覚化し、パイプライン全体の進捗状況に応じて次のような新しいインターフェイスが追加されています。
Jenkins 2がJenkinsに何を追加したかの概要については、 Jenkins 2 Overviewを参照してください。
また、 完全チェンジログはJenkinsのWebサイトから入手できます。
インストール
Ubuntuのようなapt-getベースのシステム
Jenkinsリポジトリを追加します。
wget -q -O - https://jenkins-ci.org/debian/ Jenkins-ci.org.key | sudo apt-key
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
ソースを更新してJenkinsをインストールする:
sudo apt-get update
sudo apt-get install jenkins
jenkinsユーザーが作成され、デフォルトでJenkinsはポート8080で実行されます。
Red Hat Enterprise Linux(RHEL)、CentOS、Fedora、Scientific LinuxなどのRPMベースのディストリビューションの場合
安定版のリポジトリファイルをダウンロードするには:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
または最新の週刊リリースが必要な場合:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
公開鍵をインポートする:
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yumを使ってJenkinsをインストールする:
sudo yum install jenkins
Jenkinsは、インストールするためにJavaを実行する必要があります。
sudo yum install java
ジェンキンスを開始/停止/再起動するには:
sudo service jenkins start/stop/restart
ジェンキンのアップグレード(RPMインストール)
- jenkinsホームディレクトリのバックアップ
- 次の場所のjenkins.warを新しいWARファイルで置き換えます。 / usr / lib / jenkins / jenkins.war`
- Jenkinsを再起動する
- 固定されたプラグインを確認し、必要に応じて固定解除します
- ディスクから構成を再ロードする
注:Jenkins 2のバンドルされたjettyアプリケーションサーバーのアップグレードでは、 /etc/sysconfig/jenkins
AJPポート( JENKINS_AJP_PORT="-1"
)を/etc/sysconfig/jenkins
。
Nginxプロキシの設定
ネイティブに、Jenkinsはポート8080で動作します。ポート80〜8080からプロキシを確立できるため、Jenkinsには次の方法でアクセスできます。
http://<url>.com
デフォルトの代わりに
http://<url>.com:8080
まずNginxをインストールします。
sudo aptitude -y install nginx
Nginxのデフォルト設定を削除する
cd /etc/nginx/sites-available
sudo rm default ../sites-enabled/default
新しい設定ファイルを作成する
sudo touch jenkins
新しく作成したjenkins
ファイルに次のコードをコピーします。
upstream app_server {
server 127.0.0.1:8080 fail_timeout=0;
}
server {
listen 80;
listen [::]:80 default ipv6only=on;
server_name ;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
}
サイト間のシンボリックリンクを作成する - 利用可能とサイト対応:
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
Nginxプロキシサービスを再起動する
sudo service nginx restart
ジェンキンスは現在、ポート80からアクセス可能になります。
プラグインを外部ソースからインストールする
java -jar [Path to client JAR] -s [Server address] install-plugin [Plugin ID]
クライアントJARはJenkins自体を実行するのと同じJAR / WARではなく、CLI JARファイルでなければなりません。一意のIDは、Jenkins CLI wiki( https://wiki.jenkins-ci.org/display/JENKINS/Plugins)のプラグインのそれぞれのページにあります。
あるPCから別のPCにJenkinsを移動する
これは私がUbuntu 12.04(Jenkins ver 1.628)からUbuntu 16.04(Jenkins ver 1.651.2)に移行するのに役立ちました。私は最初にリポジトリからJenkinsをインストールしました 。
JENKINS_HOME
(例:/ var / lib / jenkins)を古いサーバーから新しいサーバーにコピーします。新しいサーバーのコンソールから:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
あなたはこれを必要としないかもしれませんが、私は
-
Manage Jenkins
をManage Jenkins
Reload Configuration from Disk
を再Reload Configuration from Disk
。 - すべてのスレーブを切断してもう一度接続します。
-
Configure System > Jenkins Location
で、Jenkins URL
が新しいJenkinsサーバーに正しく割り当てられていることを確認します。
Jenkinsでプロジェクトを設定する
ここでは、プロジェクトのコードの最新のコピーをチェックし、テストを実行し、アプリケーションを実行させます。これを達成するには、以下の手順に従います。
- ブラウザでJenkinsを開きます。
- [ 新しいジョブ]リンクをクリックします。
- プロジェクト名を入力し、フリースタイルのソフトウェアプロジェクトを作成リンクを選択します。
- [ OK ]ボタンをクリックします。
- [ ソースコード管理]セクションで 、ソースコード管理ツールの横にあるラジオボックスを選択します。私の場合、私はGitを選択しました。
git repoのURLをgit git://github.com/example/example.git
ように指定しgit://github.com/example/example.git
- ビルドトリガーの下で、 Poll SCMの横にあるラジオボックスを選択します 。
- スケジュールボックスに
*****
してください。このボックスは定期的にビルドをトリガーする役割を担います。*****
は、ジョブがgit repoの変更に対して毎分トリガーを取得することを指定します。 - [ ビルド ]セクションで、[ ビルドステップの追加 ]ボタンをクリックし、プロジェクトをビルドするオプションを選択します。私はExecute Shellを選択しました。コマンドボックスには、構築するコマンドを記述し、テストを実行し、それをprodにデプロイします。
- スクロールして保存します 。
上のように、Jenkinsで基本プロジェクトを設定しました。これはgitリポジトリの変更に対して1分ごとにビルドをトリガーします。注:複雑なプロジェクトを設定するには、Jenkinsにいくつかのプラグインをインストールする必要があります。
ジェンキンスの全面的な紹介
1.ジェンキンス:
Jenkinsは、Javaで書かれたオープンソースの継続的な統合ツールです。このプロジェクトは、Oracleとの紛争の後、Hudsonから派遣されました。
簡単に言えば、Jenkinsは業界をリードするオープンソースの自動化サーバーです。 Javaで構築されており、事実上あらゆるプロジェクトのビルド、テスト、配備、自動化をサポートする何百ものプラグインを提供します。
特徴: Jenkinsは、以下の主要な機能を提供しています。プラグインを使用してさらに多くの機能を追加できます。
簡単なインストール:java -jar jenkins.warを実行し、サーブレットコンテナに展開します。追加インストールもデータベースもありません。インストーラまたはネイティブパッケージを推奨しますか?我々はそれらも持っています。簡単な設定:JenkinsはフレンドリなWeb GUIから、オンザフライで広範なエラーチェックとインラインヘルプを使用して完全に設定できます。豊富なプラグインエコシステム:Jenkinsは事実上すべてのSCMまたは既存のビルドツールと統合します。プラグインを表示します。拡張性:Jenkinsのほとんどの部分を拡張して変更することができ、新しいJenkinsプラグインを簡単に作成できます。これにより、Jenkinsをニーズに合わせてカスタマイズできます。分散ビルド:Jenkinsは、異なるオペレーティングシステムを使用して複数のコンピュータにビルド/テスト負荷を分散できます。 OS X、Linux、およびWindows用のソフトウェアをビルドしますか?問題ない。
インストール:
$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :
Ref: https : //wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
Ref: http : //www.vogella.com/tutorials/Jenkins/article.html
Ref: https : //wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
JENKINS_HOMEディレクトリJenkinsは、ビルドを実行し、アーカイブを保持するためにいくらかのディスクスペースが必要です。この場所は、Jenkinsの設定画面で確認できます。デフォルトでは〜/ .jenkinsに設定されていますが、次のいずれかの方法でこれを変更できます。サーブレットコンテナを起動する前に、新しいホームディレクトリに "JENKINS_HOME"環境変数を設定します。サーブレットコンテナに "JENKINS_HOME"システムプロパティを設定します。 JNDI環境エントリ "JENKINS_HOME"を新しいディレクトリに設定します。コンテナに対してこれを行う方法の詳細については、コンテナ固有のドキュメントコレクションを参照してください。この場所は、Jenkinsをしばらく使用した後に変更することもできます。これを行うには、Jenkinsを完全に停止し、古いJENKINS_HOMEのコンテンツを新しいホームに移動し、新しいJENKINS_HOMEを設定して、Jenkinsを再起動します。 JENKINS_HOMEには、次のようなかなり明白なディレクトリ構造があります。
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
ジェンキンス・ビルド・ジョブズ:
Jenkinsで新しいビルドジョブを作成するのは簡単です:Jenkinsダッシュボードの「New Job」メニュー項目をクリックするだけです。 Jenkinsはいくつかの異なる種類のビルド・ジョブをサポートしています。これらのビルド・ジョブは、新しいジョブの作成を選択したときに表示されます
フリースタイルソフトウェアプロジェクト
フリースタイルビルドジョブは汎用ビルドジョブであり、最大の柔軟性を提供します。
Mavenプロジェクト "maven2 / 3プロジェクト"は、Mavenプロジェクトに特化したビルドジョブです。 JenkinsはMavenのpomファイルとプロジェクト構造を理解していて、pomファイルから収集した情報を使用してプロジェクトをセットアップするために必要な作業を減らすことができます。
ワークフロー
複数のビルドスレーブにまたがる長期実行アクティビティーを調整します。自由なスタイルの雇用形態に容易に適合しないパイプラインの建設および/または複雑な活動の組織化に適しています。
外部ジョブの監視「外部ジョブの監視」ビルドジョブを使用すると、cronジョブなどの非インタラクティブなプロセスに注意を払うことができます。
マルチ構成ジョブ「マルチ構成プロジェクト」(「マトリックスプロジェクト」とも呼ばれます)では、同じビルドジョブをさまざまな構成で実行できます。この強力な機能は、さまざまな環境、異なるデータベース、または異なるビルド・マシンでアプリケーションをテストする場合に役立ちます。
1.ソフトウェアプロジェクトの構築(フリースタイル)
Jenkinsは、継続的/公式/夜間ビルドの実行、テストの実行、繰り返しのバッチ・タスクの実行など、典型的なビルド・サーバー作業の実行に使用できます。これは、Jenkinsの "フリースタイルのソフトウェアプロジェクト"と呼ばれています。プロジェクトの設定Jenkinsのトップページで「New Job」を選択し、「フリースタイルのソフトウェアプロジェクトを作成する」を選択します。このジョブタイプは、次の要素で構成されます。オプションのSCM(ソースコードが存在するCVSやSubversionなど)。 Jenkinsがビルドを実行するタイミングを制御するオプションのトリガー。ビルドを実行するビルドスクリプト(ant、maven、シェルスクリプト、バッチファイルなど)。実際の作業では、アーティファクトのアーカイブやjavadocの記録やテストなど、ビルドから情報を収集するためのオプションの手順が行われます。結果。電子メール、IM、問題トラッカーの更新など、ビルド結果を他の人/システムに通知するためのオプションの手順
非ソース管理プロジェクトのビルドデモンストレーションのためだけにプロジェクトを構築する必要がある場合や、SVN / CVSリポジトリへのアクセスが利用できない場合があります。 「ソースコード管理」の下でプロジェクトを「なし」に設定することによって、以下を行う必要があります。
- 少なくとも1回はプロジェクトをビルドします(失敗する)が、Jenkinsは構造体jenkins / workspace / PROJECTNAME /
- プロジェクトファイルをjenkins / workspace / PROJECTNAME /
- 再構築し、適切に構成する
Jenkins環境変数の設定
Jenkinsジョブが実行されると、シェルスクリプト、バッチコマンド、Antスクリプト、またはMaven POMで使用できるいくつかの環境変数が設定されます。変数のリストは、ENVIRONMENT_VARIABLEをクリックしてご覧ください。
自動ビルドの設定
Jenkinsのビルドは定期的に(スケジュールで、設定で指定されているように)、またはプロジェクトのソース変更が検出されたとき、またはURLを要求することによって自動的にトリガされます:
http:// YOURHOST / jenkins / job / PROJECTNAME / build
これにより、Jenkinsのビルドをさまざまな設定にフックできます。詳細については(特に、セキュリティを有効にしてこれを行う)リモートアクセスAPIを参照してください。
ソースの変更によるビルド
Jenkinsにリビジョンコントロールシステムの変更をポーリングさせることができます。 Unix / Linuxのcrontabと同じ構文を使用して、Jenkinsがリビジョン管理システムをポーリングする頻度を指定できます。ただし、ポーリング期間が、リビジョン管理システムをポーリングするのに要する時間より短い場合は、変更ごとに複数のビルドが終了する可能性があります。ポーリング期間を、リビジョン管理システムをポーリングするのに要する時間よりも長くなるように調整するか、コミット後トリガを使用する必要があります。各ビルドのポーリングログを調べて、システムをポーリングするのにかかった時間を確認することができます。
代わりに、固定間隔でポーリングする代わりに、URLトリガー(前述)を使用できますが、URLの最後には/ buildの代わりに/ pollingを使用します。これにより、Jenkinsはすぐに構築するのではなく、変更をSCMにポーリングします。これにより、Jenkinsは、ジョブと無関係なモジュールやブランチに影響するコミットに関連する変更を加えずにビルドを実行することを防ぎます。 /ポーリングを使用するときは、ジョブをポーリング用に構成する必要がありますが、スケジュールは空にすることができます。
電子メールで構築する(sendmail)
あなたのシステムのrootアカウントを持っていて、sendmailを使っているなら、/ etc / aliasesを調整して、次のエントリを追加するのが最も簡単だとわかりました:jenkins-foo: "| / bin / wget -o / dev / null
http:// YOURHOST / jenkins / job / PROJECTNAME / build "
sendmailに変更を知らせるために "newaliases"コマンドを実行してください。誰かが "jenkins-foo @ yoursystem"に電子メールを送るたびに、これは新しいビルドを引き起こします。 sendmailの設定の詳細については、これを参照してください。電子メール(qmail)でビルドqmailでは、次のように/var/qmail/alias/.qmail-jenkinsを書くことができます:| / bin / wget -o / dev / null http:// YOURHOST / jenkins / job / PROJECTNAME /ビルド "
2. Mavenプロジェクトの構築
Jenkinsは、Maven 2/3専用のジョブタイプを提供しています。このジョブタイプはJenkinsをMaven 2/3と深く統合し、より汎用的なフリースタイルのソフトウェアプロジェクトと比較して以下の利点を提供します。
JenkinsはMaven POMを解析して、作業に必要な多くの情報を取得します。その結果、構成の量が大幅に削減されます。
ジェンキンスはMavenの実行を聞き、自分で実行する必要があることを理解します。たとえば、Mavenがテストフェーズを実行したときにJUnitレポートを自動的に記録します。また、javadocの目標を実行すると、Jenkinsは自動的にjavadocを記録します。
Jenkinsは、SNAPSHOTの依存関係を宣言するプロジェクト間で自動的にプロジェクトの依存関係を作成します。下記参照。したがって、ほとんどの場合、SCM情報と実行する目標を設定するだけでよく、Jenkinsは他のすべてを把握します。
このプロジェクトタイプでは、次の機能が自動的に提供されます。
ビルドによって生成されたアーティファクトをアーカイブする
テスト結果を公開する
ダウンストリーム依存関係にあるプロジェクトのジョブをトリガーする
成果物をMavenリポジトリにデプロイする
モジュールによるブレークアウトテスト結果
必要に応じて、変更されたモジュールのみを再ビルドし、ビルドを高速化します
モジュール依存関係からの自動ビルドチェイン
JenkinsはPOMからプロジェクトの依存関係を読み込み、Jenkinsでビルドされている場合は、それらの依存関係の新しいビルドが自動的にプロジェクトの新しいビルドを開始するようにトリガーを設定します。 JenkinsはPOMのあらゆる種類の依存関係を理解しています。すなわち、親POM
<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project
このプロセスではバージョンを考慮しているため、同じJenkinsでプロジェクトの複数のバージョン/ブランチを持つことができ、依存関係を正しく判断できます。依存バージョンの範囲はサポートされていないことに注意してください 。理由については、[ https://issues.jenkins-ci.org/browse/JENKINS-2787] [1 ]を参照してください。
この機能はオンデマンドで無効にすることができます - SNAPSHOT依存関係が構築されるたびに設定オプションBuildを参照
インストール:
1。 Jenkinsの管理>>システムの設定
- in maven tab "をクリックします。
JenkinsにMavenの特定のバージョンを自動的にインストールするか、ローカルのMavenインストールへのパスを提供することができます(あなたのビルドプロジェクトに必要な数のMavenを構成でき、プロジェクトごとに異なるバージョンのMavenを使用できます)。 Install automaticallyチェックボックスをオンにすると、Jenkinsは要求されたバージョンのMavenをダウンロードしてインストールし、それをJenkinsのホームディレクトリのtoolsディレクトリにインストールします。
どうやって使うのですか
まず、Mavenインストールを設定する必要があります(この手順はDEV @ cloudを使用している場合はスキップできます)。これは、システム設定画面(Manage Jenkins-> Configure System)に進みます。 "Mavenインストール"セクションで、1)追加ボタンをクリックし、2) "Maven 3.0.3"などの名前を付けてから、3)ドロップダウンからバージョンを選択します。
今、Jenkinsは、Apacheからダウンロードして解凍することで、いつでもこのバージョンを(新しいビルドマシンで)必要に応じて自動的にインストールします。
新しいMavenジョブを作成する:
- 左手に「新しい仕事/新アイテム」をクリックする
- それに名前をつける
- "Maven 2/3プロジェクトのビルド"を選択します。
- 仕事を保存する
今すぐあなたの仕事を設定する必要があります
使用するSCMを選択します(例:gitの使用)
呼び出すにはMavenターゲットを選択してください
リポジトリURLと資格情報を追加します。
ユーザーのプライベートメイキングレポを確認する:
あなたは同じもののためのカスタネットパスを定義することもできます。
5。ビルドプロジェクト
今すぐビルドをクリックしてプロジェクトをビルドし、左側の "Build Executor Status"のプログレスバーをクリックして、ジェンキンがMavenをインストールし、プロジェクトをチェックアウトし、mavenを使用して構築することを確認します。
ロギング:
https://wiki.jenkins-ci.org/display/JENKINS/Logging
スクリプトコンソール:
トラブルシューティング、診断、またはジョブのバッチ更新に役立ちます。Jenkinsは、Jenkinsのすべての内部にアクセスできるスクリプトコンソールを提供しています。これらのスクリプトはGroovyで書かれており、このページでいくつかのサンプルが見つかります 。
Jenkins 2パイプラインスクリプトを使用して簡単なビルドプロジェクトを構成する
ここでは、Jenkins 2でGroovyパイプラインを作成して、次の手順を実行します。
- 新しいコードがプロジェクトにコミットされた場合、5分ごとに確認する
- SCMレポからのチェックアウトコード
- JavaコードのMavenコンパイル
- 統合テストを実行し、結果を公開する
ここでは、我々が行う手順は次のとおりです。
少なくとも2.0 Jenkinsのバージョンがあることを確認してください(ページの右下隅にある確認が可能です):
Jenkinsのホームページで、 New Itemをクリックしてください
プロジェクト名を入力し、 パイプラインを選択します。
[ Build Triggers]セクションで、[ Poll SCM ]オプションを選択し、次の5分間CRONスケジュールを追加します。
*/5 * * * *
[ パイプライン]セクションで、[ パイプラインスクリプト]または[ パイプラインスクリプト]をSCMから選択します
前の手順でSCMからパイプラインスクリプトを選択した場合は、
http://github.com/example/example.git
などのリポジトリURLに SCMリポジトリ(Git、Mercurial、Subversion)のURLを指定する必要があります。また、Groovyスクリプトファイルのスクリプトパスをexample.gitリポジトリに指定する必要があります(例:pipelines/example.groovy
次のGroovyコードをGroovyスクリプトウィンドウに直接コピーします。以前にパイプラインスクリプトをクリックした場合、または
example.groovy
SCMからパイプラインスクリプトを選択した場合
node('remote') {
// Note : this step is only needed if you're using direct Groovy scripting
stage 'Checkout Git project'
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
def appVersion = version()
if (appVersion) {
echo "Building version ${appVersion}"
}
stage 'Build Maven project'
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
def version() {
def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
matcher ? matcher[0][1] : null
}
ここでは、Jenkins 2 Groovyパイプラインを使って最初のJenkinsプロジェクトをコンパイルしてテストできるようになりました。