1. 程式人生 > >Linux下搭建Jenkins持續整合

Linux下搭建Jenkins持續整合

環境:centos7

1.安裝準備

A.Maven(也可留在Jenkins安裝完成後,配置maven時選擇自動安裝)
B.SVN(或Git
C.OpenJDK(不是JDK。也同樣可以留在安裝完成後,配置JDK時選擇自動安裝) D.Tomcat(Jenkins也自帶有Jetty伺服器,可使用“service jenkins start”來開啟安裝後的Jenkins服務,如需使用Tomcat則需要將安裝目錄 /usr/lib/jenkins/下的war包放於Tomcat的webapps目錄下)

2.  安裝Jenkins

A.建立Jenkins的yum原始檔

vi /etc/yum.repos.d/jenkins.repo

B.在 Jenkins.repo中加入以下內容:

[jenkins]

name=Jenkins

baseurl=http://pkg.jenkins-ci.org/redhat

gpgcheck=1

C.rpm增加Jenkins源的key

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

D.安裝 jenkins

sudo yum install jenkins

3.Jenkins相關目錄和配置

安裝完成後,有如下相關目錄:

/usr/lib/jenkins/:jenkins安裝目錄,WAR包會放在這裡。

/etc/sysconfig/jenkins:jenkins 配置檔案,埠、JENKINS_HOME等都在這裡配置。

配置如下:

## xxxxxxx省略註釋
JENKINS_HOME="/usr/lib/jenkins"

## xxxxxxx省略註釋
JENKINS_JAVA_CMD=""

## xxxxxxx省略註釋
JENKINS_USER="jenkins"

## xxxxxxx省略註釋
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

## xxxxxxx省略註釋
JENKINS_PORT="8080"

## xxxxxxx省略註釋
JENKINS_AJP_PORT="8009"

## xxxxxxx省略註釋
JENKINS_DEBUG_LEVEL="5"

## Txxxxxxx省略註釋
JENKINS_ENABLE_ACCESS_LOG="no"

## xxxxxxx省略註釋
JENKINS_HANDLER_MAX="100"

## xxxxxxx省略註釋
JENKINS_HANDLER_IDLE="20"

## xxxxxxx省略註釋
JENKINS_ARGS=""

4.啟動Jenkins

A:如果是使用自帶的Jetty伺服器,啟動可以使用命令:sudo service jenkins start

B:如果是部署在Tomcat伺服器上,直接啟動Tomcat即可

5.初始化Jenkins

Step1、開啟頁面http://[ip]:[port]/jenkins

Step2初始啟動需要密碼,密碼檔案位於/var/lib/jenkins/secrets/initialAdminPassword, 複製填入,點選Continue

Step3Customize Jenkins選擇Install suggested plugins即可

Step4建立使用者

6.配置Jenkins

Step1配置前先安裝Publish Over SSH外掛,用於支援遠端shell。

安裝方法:

首頁->系統管理->管理外掛->可選外掛->過濾(搜尋外掛名)->勾選->點選直接安裝即可(需要等待一段時間,詳情可以檢視控制檯輸出日誌(圓球形狀)變化)

Step2系統設定配置,Jenkins的所有全域性配置都在系統管理->系統設定中,這裡面配置的全域性屬性如郵件系統、Maven專案設定、Post Steps等都可以在新建的專案屬性中得到援引。具體配置如下:

A.主目錄->高階,可以配置工作空間目錄和構建日誌目錄。每個專案(ITEM)預設存在於${}JENKINS_HOME}/workspace/${ITEM_FULLNAME}下。

  【這裡說到了工作空間,大致就說說Jenkins運作流程,首先它會繫結版本控制伺服器,如svn。每當有svn版本倉庫有變更時(觸發器),Jenkins會檢查到並馬上將版本倉庫指定目錄下的檔案(Source files,一般是svn倉庫中的一個專案)載入到工作空間,之後會根據指定專案路徑的pom.xml(Build)構建專案,然後會使用Publish Over SSH外掛(需配置)將構建的專案(如war)傳送到指定目標伺服器的指定路徑(Remote directory)下,並且執行目標伺服器的shell指令碼(該指令碼主要完成war包移動至webapps下,並重啟tomcat)。

B.Maven專案配置,在全域性MAVEN_OPTS中新增“-Dmaven.repo.local=“你的maven本地倉庫路徑”來使maven強制使用該路徑作為自身的本地倉庫。

C.Jenkins Location配置,Jenkins Location為Jenkins訪問地址,系統管理員郵件地址應和郵件伺服器配置的發件人郵件地址保持一致。

D.Subversion配置,選擇安裝的svn版本和版本庫地址。

E.Extended E-mail Notification,使用者自定義郵件通知,下面以QQ郵箱為例:

SMTP server:smtp.qq.com(SMTP伺服器IP)

Default user E-mail suffix:@qq.com(預設郵件字尾)

高階->勾選 Use SMTP Authentication(身份認證)

User Name :[email protected](和上面配置的系統管理員郵件地址一致)

Password:••••••••••••••••(QQ郵件設定中需開啟smtp服務,並且會生成一串授權碼,此處填入授權碼)

勾選 Use SSL

SMTP port:465

Charset:UTF-8

Default Content Type:HTML(text/html)

  -》內容模板可參考以下:

(本郵件是程式自動下發的,請勿回覆,<span style="color:red">請相關人員fix it,重新提交到svn構建</span>)<br/><hr/>

        專案名稱:$PROJECT_NAME<br/><hr/>

        構建編號:$BUILD_NUMBER<br/><hr/>
    
        SVN版本號:${SVN_REVISION}<br/><hr/>
    
        構建狀態:$BUILD_STATUS<br/><hr/>
    
        觸發原因:${CAUSE}<br/><hr/>
    
        構建日誌地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
    
        構建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
    
        變更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

F.郵件通知配置如下:

SMTP伺服器:smtp.qq.com

使用者預設郵件字尾:@qq.com

高階->勾選 使用SMTP認證

使用者名稱:[email protected]

密碼:••••••••••••••••(同上)

勾選 使用SSL協議

SMTP埠:465

Reply-To Address:[email protected](收件郵箱)

字符集:UTF-8

G.Publish over SSH配置如下:

Jenkins SSH Key

Passphrase:••••••••••••••••

Path to key 

Key 

Disable exec

Uame:SSH_Test

Username:root

Remote Directory:/data/Jenkins_War/(目標伺服器war包接收路徑)

勾選 Use password authentication, or use a different key

Passphrase / Password:••••••••••••••••

Path to key

Key

Passphrase:••••••••••••••••

Path to key 

Key 

Disable exec

Name:SSH_Test

Username:root

Remote Directory:/data/Jenkins_War/(目標伺服器war包接收路徑)

勾選 Use password authentication, or use a different key

Passphrase / Password:••••••••••••••••

Path to key

Key

     以上配置的Passphrase為目標伺服器root使用者的登入密碼,這裡直接使用的是登入密碼。如需使用SSH祕鑰,可在Path to key配置私鑰路徑,Key中配置私鑰內容,並在目標伺服器/home/相應登入使用者資料夾

/.ssh/authorized_keys中新增公鑰(如果沒有該檔案,則手動建立之

Step3、Global Tool Configuration,全域性工具配置,裡面配置Jenkins需要使用到的工具的配置,如svn、maven、jdk等。

A.JDK配置:可選擇自動安裝,然後勾選合適的JDK版本進行安裝,或者指定已安裝的JDK目錄。

B.Maven Configuration配置:maven的setting.xml路徑配置。

C.Maven 配置:可選擇自動安裝,然後勾選合適的Maven 版本進行安裝,或者指定已安裝的Maven目錄。

Step4、在目標伺服器上傳自動化部署指令碼,檔案詳見上傳檔案deploy.sh”。大概邏輯為:

1.指令碼支援三個引數,預設只傳入第一個引數,第一個引數:應用名稱;第二個引數:Tomcat埠;第三個引數:Tomcat所在路徑。
2.設定相關變數(Tomcat所在路徑Tomcat_Home、Tomcat埠Tomcat_port、應用名稱Project)
3.Kill掉Tomcat程序
4.刪除應用
5.拷貝新的war包
6.備份war包
7.刪除war包
8.啟動Tomcat
7.對專案進行持續整合
Step1對於maven專案,需要先安裝Maven Integration plugin外掛,安裝方法同安裝Publish Over SSH外掛。 Step2首頁->新建->構建一個maven專案(輸入item名稱)->進入該專案->配置,具體配置如下:
A.General,專案名稱不用說,勾選 丟棄舊的構建->儲存構建天數、保持構建的最大個數(自己視情況而定),勾選 引數化構建過程->choice parameter:
Name=VERSION
Choices=1.0.1
Description=產品系統/模組的版本號
B.原始碼管理Subversion:
Repository URL=svn://[ip]/svn版本倉庫/其中一個專案(資料夾)
Credentials=svn訪問使用者名稱和密碼(Add中新增Username和Password即可)

C.構建觸發器,勾選 Poll SCM,日程表=H/60 * * * *(表示每60分鐘檢查svn版本庫一次)
D.Build:
Root POM=pom.xml(在工作空間目錄下pom.xml的相對位置,其實也就是svn配置中Repository URL
屬性後面的地址)
Goals and options=clean -DskipTests=true install -Pprod -U(maven執行命令,跳過了Test)

E.Post Steps,Add post-build step->Send files or execute commands over SSH,配置如下:
Name=下拉選擇開始系統設定中設定的SSH-Test Source files=target/*.war(相對於工作空間目錄下的war包相對位置,其實也就是svn配置中Repository URL屬性後面的地址)
Remove prefix=target/(移除字首)
Remote directory=war(在系統設定中配置的Remote Directory路徑下的相對位置,即該專案將傳於目標伺服器/data/Jenkins_War/war/目錄下)
Exec command=/data/Jenkins_War/deploy.sh MySpringBoot(自動部署指令碼在目標伺服器的位置,並傳入第一個引數:專案名)

F.構建後操作,增加構建後操作步驟->Editable Email Notification->Advanced Settings:
Send-TO 刪除Developers,在高階裡面直接配置:Recipient List=接受者郵箱
8.自動構建和手動構建
A根據上面配置,將每60分鐘檢視一次svn版本庫是否有變更並執行構建,這既是自動構建。 B手動構建,選擇Build with Parameter->可選擇此處構建產生的版本->立即構建。左邊導航欄可看到構建歷史,點選小球可以檢視控制檯輸出。   

注意

1. 專案配置中,一般像路徑這些東西,配置有問題都會出現紅色警告的,除了Publish Over SSH配置外。

2.上面沒說到的配置,都直接預設即可。

Jenkins搭建到這裡就結束了,在搭建Jenkins的路上走了不少坑,特此記一筆。

相關推薦

Linux搭建Jenkins持續整合

環境:centos7 1.安裝準備 A.Maven(也可留在Jenkins安裝完成後,配置maven時選擇自動安裝) B.SVN(或Git) C.OpenJDK(不是JDK。也同樣可以留在

linux環境搭建Jenkins持續整合Jenkins+git+shell+maven+tomact)

準備環境   jenkins.war包 ,jdk1.8  ,tomact , maven,git 1.Jenkins  war包,下載地址https://jenkins.io/zh/download/  ,當然你可以通過wget 下載, 也可以通過xftp遠端傳輸 2.

安裝jenkins centos搭建Jenkins持續整合環境(安裝jenkins)

1、安裝JDK yum install -y java 2、安裝jenkins 新增Jenkins庫到yum庫,Jenkins將從這裡下載安裝。 1 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redh

aliyun centos搭建Jenkins持續整合環境(安裝jenkins)

環境: 阿里雲輕量級伺服器 CentOS 7.3 安裝步驟: 1.安裝jdk(這裡安裝的openJDK) yum install -y java 2.安裝jenkins 新增Jenkins庫到yum庫,Jenkins將從這裡下載安裝。 wget -O /etc/

centos部署jenkins持續整合環境

1)線上安裝jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenki

Linux上使用Jenkins持續整合JavaWeb專案

什麼是Jenkins? Jenkins是一個開源軟體專案,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。 用於監控持續重複的工作,功能包括: 1、持續的軟體版本釋出/測試專案。 2、監控外部呼叫執行的工作。 為什麼要用Jenkins

UbuntuJenkins 持續整合(一)

Ubuntu下的Jenkins 持續整合 1、需要安裝JDK JDK分為OpenJDK和常用的oracle JDK,一般輸入java -version後出現SE字元的是Oracle公司的,也就是我們常用的JDK。如果是openJDK,請先解除安裝後在安裝oracle的JD

工作環境Apache Jmeter + ANT +Jenkins 持續整合環境搭建(續)----Linux伺服器上搭建ant和jmeter

接上文https://blog.csdn.net/be_x_man/article/details/80997740 在本地配置好了jmeter和ant之後,還需要將指令碼放在jenkins上執行,所以也需要在jenkins所在的Linux伺服器上搭建jmeter和ant 配置過程基本上和W

Linux搭建Git伺服器 Jenkins持續整合環境部署

1、安裝Git 見 Jenkins持續整合環境部署 第四節 2、建立Git使用者和使用者組 1 groupadd git 2 useradd git -g git 3、建立證書切換到git使用者建立證書 1 su git 2 cd /home/git 3 mkdir .ssh 4 c

工作環境Apache Jmeter + ANT +Jenkins 持續整合環境搭建

最近工作需要在公司使用jmeter實現介面自動化測試,我就選取了jmeter+ant+jenkins,搭建環境過程如下 本地環境:win7 64位 雲桌面系統 1,本地電腦上JDK安裝,網上教程很多,這裡不再記錄 2,本地電腦上Apache jmeter下載與安裝 地址:http:/

Linux環境 搭建Jenkins+SVN+Maven持續整合環境

準備 作業系統:Linux 環境:JDK 1.6+ 檔案: jenkins.war apache-maven-3.1.1 apache-tomcat-6.0.xx 一、部署Jenkins 1.複製tomcat,命名為jenkins-server,刪除jenkins-se

Mac搭建 Jenkins+Github+蒲公英/fir.im 持續整合環境(iOS自動打包)

看了幾篇關於使用jenkins持續整合的部落格,記錄一下自己搭建的過程,順便做一些更新 或者使用命令列安裝 //安裝jenkins $ brew install jenkins //啟動jenkins $ jenkins //解除安裝

Linux 環境搭建 Jenkins(Hudson)平臺

效果 swd gpo conf 有一個 信息 hudson track 文件 安裝jenkins:安裝 jenkins 有兩種方式:安裝方式一: [java] view plain copy sudo java -jar jenkins.war –htt

Jenkins持續整合Linux Git 安裝

一、 下載git原始碼包 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz 二、解壓並進入該原始碼包目錄下 三、安裝所需依賴包 yum install curl-devel expat-devel ge

Jenkins持續整合01---Jenkins服務搭建和部署

一、介紹Jenkins 1、Jenkins概念   Jenkins是一個功能強大的應用程式,允許持續整合和持續交付專案,無論用的是什麼平臺。這是一個免費的原始碼,可以處理任何型別的構建或持續整合。整合Jenkins可以用於一些測試和部署技術。Jenkins是一種軟體允許持續整合。 2、Jenkins目的

Docker+Jenkins持續整合環境(1)使用Docker搭建Jenkins+Docker持續整合環境

來源:https://www.cnblogs.com/xiaoqi/p/docker-jenkins-cicd.html 本文介紹如何通過Jenkins的docker映象從零開始構建一個基於docker映象的持續整合環境,包含自動化構建、釋出到倉庫\並部署上線。 0. 前置條件 伺服器安

Linux使用Jenkins+Git+Maven+碼雲搭建自動化部署,可遠端部署jar和war

寫在前面:       本教程為2臺全新阿里雲伺服器CentOS 6.8(以下稱搭建Jenkins的為第1臺伺服器,可訪問專案工程的為第2臺伺服器,以免混淆,沒有說明的都是在第1臺伺服器root目錄上操作,記得新增埠安全組和關閉防火牆),git倉庫使用的是碼雲。       

從零搭建Robot Framework+Jenkins持續整合環境

安裝Jenkins 系統環境:CentOS Linux release 7.3.1611 x86_64 GNU/Linux 安裝JDK Jenkins是基於Java開發的持續整合系統(CI),所以執行環境必須安裝JDK,安裝JDK的方法有很多種,有些Linux系統可能會自帶o

Jenkins 搭建C++持續整合環境

簡介 本文主要介紹如何通過 Jenkins 搭建 C++的持續整合環境。最後達到的效果是每天00:00 - 08:00之間構建、測試和打包一次工程。 開發環境為 VS2015,測試工具為 CppUnit,打包工具為 Inno Setup。 本例的 Jenk

LinuxJenkins+Tomcat+Maven+Git+Shell環境的搭建使用(jenkins自動化部署)

命令 get off ret inux src b- 保存 image 一、軟件安裝 1.安裝jdk環境 JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down