ジェンキンスは、ジェンキンスビルドとデプロイがトリガーを分散---ビス

実1:ジェンキンスに基づいてトリガを構築します

トリガーはじめの構築

フリップフロップの構築(HTTPの開発者はgitlabにコードを提出した後、実際にコールバックするためのフックと呼ばれる一部の人々は、コードジェンキンスビルド操作の自動実行をトリガすることができます。

以下は、開発者が開発者にコードを提出ブランチはビルドにコードをトリガする開発、およびメインブランチに提出したコードが自動的に構築、運用、保守担当者が生産に手動でデプロイコードする必要はありませんときにのみ、新しい開発ブランチです。

Gitlabに支店を開発作成1.

 1、ページGitlabで作成したプロジェクトを開発web1と内のブランチを作成します

2、枝を開発作成を開始

 図2に示すように、プラグインと設定ジェンキンスに搭載されています

1、ジェンキンスのページジェンキンス---->システム管理---->プラグインマネージャは、 gitlab関連のプラグインをインストールします。

 

2、変更ジェンキンスログイン認証方法:システム管理---->グローバルセキュリティ設定の変更は、Linuxシステム上のジェンキンスサービス再起動する必要が完了している:systemctl再起動ジェンキンス、消費するメモリによるジェンキンスが、8Gは少なくともに生産を開始します。

注:HTTPS://jenkins.io/security/advisory/2018-05-09/#SECURITY-263

  • ユーザログイン認証が代わりに何かを行うことができます
  • CSRF保護をキャンセル
  • Gitlabフックプラグインプレーンテキストと表示トークンGitLab APIに保存されています

3.> ---ジョブはジェンキンスホームで、前のlinux-ジョブプログラムにも使用することができます開発ジェンキンスプロジェクトに新しいプロジェクトを作成するには、新しいタスクをページを作成します。

 

4、ソースコード管理、哀れなgitlabホスト・コードを作成し、枝を開発

 5、ジェンキンストリガ部材は、定義された値からトークンを生成するように構成されました

 (1)第一のランダムに生成された12ビットの乱数

[ルート@ gitlab〜]#件のopensslランドは12 -hex 
046e1cb057bce8073a7eddcaを

(2)トリガジェンキンス指定された構成、シェルコマンドを実行するためのテストの最初のセットを生成した乱数を充填

 

6、そしてカスタムトークン値の前にそれをフィルタリングし、あなたは指定された/var/lib/jenkins/jobs/linux-job1-develop/config.xmlファイルで見ることができます

[ルート@ジェンキンス〜]#grepを046e1cb057bce8073a7eddcaの/ var / libに/ジェンキンス/ -R 
はgrep:は/ var / libに/ジェンキンス/ジョブ/ linuxの-ジョブ/ビルドを/ lastUnstableBuild:そのようなファイルまたはディレクトリ
grepの場合:/ var / libに/ジェンキンスそのようなファイルまたはディレクトリ:/ジョブ/ linuxの-JOB1-開発/ / lastSuccessfulBuildビルドない
grepの場合:/ var / libに/ジェンキンス/ジョブ/ linuxの-JOB1-開発/ / lastStableBuildビルド:いいえそのようなファイルまたはディレクトリ
grepの場合:/ var / libに/ジェンキンス/ジョブ/ linuxの-JOB1-開発/構築する/ lastFailedBuild:そのようなファイルまたはディレクトリ
grepのない場合:/ var / libに/ジェンキンス/ジョブ/ linuxの-job1が-開発/構築しますが、/ lastUnstableBuild:そのようなファイルまたはディレクトリ
grepの場合:/ var / libに/ジェンキンス/ジョブ/ linuxの-JOB1-開発/ / lastUnsuccessfulBuild構築しません:そのようなファイルやディレクトリを
/var/lib/jenkins/jobs/linux-job1-develop/config.xml:<authTokenの> 046e1cb057bce8073a7eddca </ authTokenの>

 図7に示すように、ウェブページ上でホストジェンキンス試験、または訪問のコマンドを実行し、ジョブが正常に正常な動作を示し、青色次いで、ジェンキンス・コンソールで実行した場合、それが赤色である場合、参照、失敗を示します

[ルート@ジェンキンス〜]#カールhttp://192.168.7.101:8080/job/linux-job1-develop/build?token=046e1cb057bce8073a7eddca

3、gitlabページ上のシステムフックを作成します

1、ページgitlabのフックを作成

 システムフックを示す図2に示すように、フック作成したテスト201に戻るは、何の問題を作成しません

 

 図3に示すように、戻り値は、HTTP 201容正常です

図4は、ジェンキンス取らスタートコードGitlab試験は、バックエンドサーバに引か 

1、最初に引いgitlabのジェンキンスさんは、下のウェブサイトに追加したスクリプトコードシェルプロジェクトをのlinux-JOB1を-開発し、バックエンドサーバは、/データ/ tomcatに/ tomcat_appdirディレクトリで圧縮されたファイル、/データ/ tomcatに/下に保存、192.168.7.104ですtomcat_webdir / myappのディレクトリの下に保存されたアクセスコードを尋ねます:

CDの/ var / libに/ジェンキンス/ワークスペース/ linuxの-JOB1-開発
タールCF code.tar.gz index.htmlを
SCP code.tar.gz [email protected]:/データ/ tomcatに/ tomcat_appdir / 
SSH [email protected] 「/apps/tomcat/bin/shutdown.sh && RM -rf /データ/ tomcatに/ tomcat_webdir / myappに/ * && CD /データ/ tomcatに/ tomcat_appdir / &&タールXF code.tar.gz -C /データ/ tomcatに/ tomcat_webdir / myappに/」
SSH [email protected] "/apps/tomcat/bin/startup.sh"

 図2に示すように、最初のホストは、コード変更をプルダウンブランチgitlabを開発し、そこから倉庫gitlab意志

[ルート@ gitlab〜]#gitのクローン-b開発http://192.168.7.100/linux_gitlab/web1.git#-b 指定引っ張っ支店コードクローンhttpアドレスは、コードを提出するが、コードはgitのクローンでありますリポジトリgitlabに提出することはできません
[ルート@ gitlabはweb1]#のCDはweb1 /# ディレクトリコードにプルスイッチ
[ルート@ gitlabはweb1]#猫のindex.html#のコードファイルが変更された
Linuxのウェブ192.168.7.100 
192.168 Linuxのウェブ.7.100 
[ルート@ gitlabはweb1]#ときにgit設定--global user.name「ルート」#コードを最初に提出し、後であなたがログインする必要がない場合も提出し、ログインユーザー名を指定する必要があり
ます。[root @ gitlabはweb1]#gitの設定- グローバルuser.email [email protected]#電子メールアドレスを指定するための最初の必要性
[ルート@ gitlabはweb1]#GITのindex.html#の追加追加のコードを
[ルート@ gitlabはweb1]#gitの "V2" #のコードコミット提出-m gitlab倉庫で
[ルート@ gitlabはweb1]#のGitのプッシュ#のgitlabの上でアップロードするコード
警告:push.defaultは未設定であり、その中には、暗黙の値を変更しています
「シンプル」から「マッチング」からGitリポジトリ2.0。このメッセージをスケルチするには
、デフォルトの変更、使用後の現在の動作を維持する:

  gitの設定--global push.defaultマッチング

、使用をこのメッセージをスケルチし、新しい行動を採用するには:

  gitの設定--global push.defaultシンプル

見る「はgitヘルプの設定」との検索『詳細についてpush.default』。
(「シンプル」モードはGitの1.7.11で導入された同様のモードを使用します。
あなたは、時にはGitリポジトリの古いバージョンを使用する場合代わりに「シンプル」の「現在」)を

「http://192.168.7.100」のユーザー名:ルート
パスワードのために'のhttp://[email protected]':
カウントは、オブジェクト:5、行わ。
書き込みオブジェクト:100%(3/3)、254のバイト| 0バイト/秒、行います。
。3合計(デルタ0)、リユース0(0デルタ)
リモート:
リモート:Aの開発を作成するためのマージ要求、訪問:
リモート:http://192.168.7.100/linux_gitlab/web1/merge_requests/new?merge_request%5Bsource_branch%5D開発= 
リモート:
http://192.168.7.100/linux_gitlab/web1.gitへ
   429d346..1b28d52開発- >#スタートクローニングを開発するブランチを開発され、デフォルトでは、提出された分岐を開発することです

3、コードを見ては、現時点での情報は、gitlabページの開発ブランチに達しました

私たちはgitlabするコードを渡すとき4、この時間ジェンキンスは、自動的にすべてのジェンキンスさんは、スクリプトが完成されたシェル見ることができ、ウェブサイト上でgitlabコード、オープンジェンキンスコンソールを引っ張ってきます

 図5は、この時点では、gitlabを引っ張っコードジェンキンスの内容にアクセスするには、この時間は、アクセスVIPアドレス192.168.7.248/myappをkeepalivedの

 関連項目の建設(オンデマンドで動作)

相互に関係の仕事を複数、複数のシーンを実行するジョブの必要性、例えば、以下:テスト環境としてLinux-JOB1-開発、Linuxベースのジョブ本番環境として、テスト環境が正常に実行されたとき、それは直接コードを引っ張ってきます本番環境へ

1、完成したプロジェクトをのlinux-JOB1-開発ビルド構成後の動作は、このプロジェクトは、LINX-ジョブが追加実行され、実行されたコマンドは、あなたが追加したメールボックスに送信されます。

 2は、Linuxの-JOB1-開発プロジェクトの実施が成功した後、それはカスタムのlinux-ジョブプログラムを構築し、効果をテストするために始めました

 3、アクセスのWebページへの今回のバックエンドサーバー:192.168.7.248/myappは、アクセスが引かれるのlinux-仕事内容コード

 

分散ジェンキンス

1、ジェンキンス分散導入

多くのジョブシナリオの中で、コードクローン、コンパイル、パッケージを実行し、コード効率の展開に影響を与えるであろう発生する可能性があり、パフォーマンスのボトルネックを構築し、公式ジェンキンスは、分散ビルドしながら、単一ジェンキンスマスターは、ジョブの数が異なるに遭遇して分散しますジェンキンススレーブノード、並列ジョブの処理能力が大幅に増加。

2、インストールと展開ジェンキンス・スレーブサーバ

1、インストールと設定ジェンキンスサービス:詳細については、以下を参照してくださいます。https://www.cnblogs.com/struggle-1216/p/12387377.html

ジェンキンス公式ダウンロード: https://jenkins.io/zh/ 

 :公式JDK住所ダウンロード https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlを

[ルート@ジェンキンススレーブSRC]#yumをインストールジェンキンス-2.164.3-1.1.noarch.rpm -y 

#VIMの/ etc /のsysconfig /ジェンキンス#修改ジェンキンス配置文件
JENKINS_USER = "ルート" #将ジェンキンス以ルート身份启动

JENKINS_JAVA_OPTIONS = " - Djava.awt.headless =真-server -Xms1g -Xmx1G -Xss512k -Xmn1g \ 
-XX:CMSInitiatingOccupancyFraction = 65 \ 
-XX:+ UseFastAccessorMethods \ 
-XX:+ AggressiveOpts -XX:+ UseBiasedLocking \ 
-XX:+ DisableExplicitGC -XX:MaxTenuringThreshold = 10 \ 
-XX:NewSizeパラメータ= 2048M -XX:MaxNewSize = 2048M -XX:NewRatio = 2 \ 
-XX:PermSizeを= 128メートル-XX:MaxPermSizeを= 512メートル-XX:CMSFullGCsBeforeCompaction = 5 \ 
-XX:+ ExplicitGCInvokesConcurrent -XX:+ UseConcMarkSweepGCを-XX:+ UseParNewGC \ 
-XX:+ CMSParallelRemarkEnabledます。-Djava.awt.headless = trueに\
-Dcom.sun.management.jmxremote \ 
-Dcom.sun.management.jmxremote.port = 12345 \ 
-Dcom.sun.management.jmxremote.authenticate = falseを\ 
-Dcom.sun.management.jmxremote.ssl = falseを\ 
-Djava .rmi.server.hostname = "192.168.7.103"」#写入本机的I地址

2、ジェンキンススレーブサービスを開始

[ルートジェンキンススレーブ@〜]#はジェンキンスを開始systemctl

192.168.7.103:8080、参照、ログインアカウントのログインジェンキンス特定のインストールの展開手順を作成します。https://www.cnblogs.com/struggle-1216/p/12387377 3は、ジェンキンス - スレーブ構成ページへの訪問は、初期化を操作し始めました.htmlを

JAVA環境Javaで3、ジェンキンス・スレーブノード構成

1、ジェンキンススレーブノード構成Java環境

(1)スレーブスレーブサーバは、コンパイルジョブに実行する必要がある場合、あなたはまた、設定する必要があるとJava環境をインストールし、などMavenの同じ基本的な動作環境のgit、SVNを、マスター作業ディレクトリを作成し、我々は、同じデータのマスターディレクトリを作成する必要があります、なぜならスクリプトのみ相対パスのマスタと呼ばれるパスは、このパスは、マスターノードの各ノードと一致しなければなりません。

[ジェンキンス-奴隷〜@ルート] #ます。mkdirは/ var / libに/ジェンキンス-p# ジェンキンスにサーバーから引き出さマスターを作成し、同じコードディレクトリ
[ルート@ジェンキンスソース]#SCP JDK-8u212-linuxの-x64.tar サーバから送信さ.gzを192.168.7.103:/usr/local/src#JDKのプライマリファイルサーバジェンキンス
[ジェンキンススレーブSRC @ルート] #タールあるxv JDK-8u212-のlinux-x64.tar.gzの# ジェンキンスでJDKパッケージは、サーバーからそれを抽出して
、[ルート@ジェンキンススレーブSRC] #LN -svは/ usr / local / jdkの#は/usr/local/src/jdk1.8.0_212/ サーバからJDKへのソフトリンクを作成
「の/ usr /ローカル/ JDK ' - >' /usr/local/src/jdk1.8.0_212/ " 
[ジェンキンス@ルートSRC-スレーブ] -sv LN#は/ usr / local / JDK / binに/ Javaのは/ usr / binに/のJava#プログラムのJava実装では、ソフトリンクを作成し、それ以外の場合はジェンキンスを起動しません

(2)定義されたJAVAの環境​​変数は/ etc / profile

HISTTIMEFORMAT =エクスポート"`%T%F. whoami`" 
エクスポートエクスポートLANG = "en_US.UTF- 8。" 
エクスポートJAVA_HOME =は/ usr / local / JDK 
エクスポートCLASSPATH = :. $ JAVA_HOME / JRE / libに/ rt.jarの:$ JAVA_HOME /lib/dt.jar:$JAVA_HOME/lib/tools.jar 
エクスポートPATH = $ PATH:$ JAVA_HOME / binに

。[SRCジェンキンス-スレーブ@ルート]#は/ etc / profileの#を有効にする環境変数
[ジェンキンススレーブ@ルートSRC]#のJava -version#Javaのバージョンは、あなたがコマンドjava実行できることを確認してください
Javaのバージョン"1.8.0_212" 
のJava(TM)SEランタイム環境(ビルド1.8.0_212-B10)
は、Java HotSpot(TM)64 Bit-をサーバーのVM(ビルド25.212-B10、混合モード)

4、ジェンキンス・スレーブノードの追加を開始

1、ジェンキンス--->システム管理--->ノードマネージャ---->新しいノード、名前のジェンキンス・ノード1を作成します

図2に示すように、追加ジェンキンス - スレーブ情報

3、資格プロバイダのジェンキンスを追加

 

図5に示すように、最終の情報ジェンキンス・スレーブホスト

6は、ジェンキンス・ノード1ノードのログを参照してください、あなたはジェンキンススレーブノードを見ることができます稼働しています。

 

 図7は、スレーブ同期状態を参照して、通常の同期化されています

 

 この問題を解決するための8、ジェンキンス・スレーブ動作ログはジェンキンススレーブマシン上のディレクトリを作成し、javaディレクトリが見つかりませんでした

[ルートジェンキンススレーブ@〜] #ます。mkdirは/ var / libに/ジェンキンス/ JDK / binに-p# ディレクトリを作成し
、[ルートジェンキンススレーブ@〜] #LN -sは/ usr / local / JDK / binに/ javaのは/ var / libに/ジェンキンス/ JDK / binに #のJavaは、新しいディレクトリ缶にソフトリンクを作成するには、ファイルのディレクトリに保存されます

9、再びジェンキンス-node1日志を表示するには、この時間は、ここでは、ディレクトリが解決された見つけることができません。

 

 新しいノードのノードを追加することを考えた場合10は、唯一のジェンキンス・ノード1にテンプレートをコピーし、それはもはや示されている内部にIPアドレスと名前やその他の情報を変更する必要があります。

 

 

 

  

おすすめ

転載: www.cnblogs.com/struggle-1216/p/12431174.html