1. 程式人生 > >持續整合Jenkins

持續整合Jenkins

轉自:https://blog.csdn.net/qq_26848099/article/details/78901240

一、相關概念

1.1 Jenkins概念:

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

1.2 Jenkins目的:

1、持續、自動地構建/測試軟體專案。 
2、監控軟體開放流程,快速問題定位及處理,提示開放效率。

1.3 特性:

開源的java語言開發持續整合工具,支援CI,CD。 
易於安裝部署配置:可通過yum安裝,或下載war包以及通過docker容器等快速實現安裝部署,可方便web介面配置管理。 
訊息通知及測試報告:整合RSS/E-mail通過RSS釋出構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測試報告。 
分散式構建:支援Jenkins能夠讓多臺計算機一起構建/測試。 
檔案識別:Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。 
豐富的外掛支援:支援擴充套件外掛,你可以開發適合自己團隊使用的工具,如git,svn,maven,docker等。

1.4 產品釋出流程:

產品設計成型 -> 開發人員開發程式碼 -> 測試人員測試功能 -> 運維人員釋出上線 
持續整合 (Continuous integration,簡稱CI) 
持續交付(Continuous delivery) 
持續部署(continuous deployment)

二、安裝部署

2.1 yum安裝

最低配置: 不少於256M記憶體,不低於1G磁碟,jdk版本>=8 
安裝jdk1.8

yum install -y java-1.8.0-openjdk && \
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins
.io/redhat/jenkins.repo && \ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key &&\ yum clean all && yum makecache && \ yum install -y jenkins && \ systemctl start jenkins
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

less /var/log/jenkins/jenkins.log //查詢admin密碼 
訪問 http://ip:8080/ 進行安裝 
jenkins相關目錄: 
rpm -ql jenkins

 #檢視jenkins安裝相關目錄 
安裝目錄/var/lib/jenkins 
配置檔案 /etc/sysconfig/jenkins 
日誌目錄 /var/log/jenkins

2.2 下載war包安裝

yum install -y java-1.8.0-openjdk && mkdir -p /usr/local/jenkins/ && \
wget -c -O /usr/local/jenkins/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war &&\
nohup java -jar /usr/local/jenkins/jenkins.war &
  • 1
  • 2
  • 3

密碼檢視:/root/.jenkins/secrets/initialAdminPassword 
訪問 http://ip:8080/ 進行安裝

2.3 docker形式安裝

yum install docker -y  && systemctl start docker && \
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s && systemctl restart docker
docker search jenkins
docker pull docker.io/jenkins
docker run -d -p 8080:8080 docker.io/jenkins
  • 1
  • 2
  • 3
  • 4
  • 5

docker exec -it 52873fa3dce4 /bin/bash 
cat /var/jenkins_home/secrets #檢視密碼 
訪問 http://ip:8080/ 進行安裝

2.4 相關工具安裝

工具安裝可在jenkins的web介面系統管理—管理外掛—可選外掛勾選需要的,也可以手動安裝。

a.git安裝

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf -y
wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz
tar xf git-2.7.3.tar.gz
cd git-2.7.3
make configure
./configure --prefix=/usr/local/git
make profix=/usr/local/git
make install
echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh
source /etc/profile.d/git.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

b.maven安裝

cd /usr/local/ && wget -c wget  http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz &&\
tar -zxf apache-maven-3.5.2-bin.tar.gz && \
echo "export PATH=$PATH:/usr/local/apache-maven-3.5.2/bin" > /etc/profile.d/maven.sh && \
source /etc/profile.d/maven.sh
  • 1
  • 2
  • 3
  • 4

mvn –version 檢視版本

c.svn安裝

yum install subversion -y
mkdir /svnrepo
svnadmin create /svnrepo/project1      #建立一個新的Subversion專案
  • 1
  • 2
  • 3

 
 
 
啟動專案1:svnserve -d -r /svnrepo/project1/ 
啟動整個專案:svnserve -d -r /svnrepo/

d.jdk安裝

某些情況下會遇到openjdk無法編譯java程式,或在編譯中存在異常,需要我們手動安裝jdk,首先去Oracle官網下載對應版本的jdk

tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local && \
ln -sv /usr/local/jdk1.8.0_121 /usr/local/jdk1.8 && \
echo "export PATH=$PATH:/usr/local/jdk1.8/bin" >/etc/profile.d/java.sh
source /etc/profile.d/java.sh
  • 1
  • 2
  • 3
  • 4

三、WEB介面配置

3.1 密碼破解


cd /var/lib/jenkins/users/admin #此為admin使用者的目錄,也可以對應自己建立的使用者 
vim config.xml //定位到<passwordHash>那一行 
刪除改行,改為 
<passwordHash>#jbcrypt:$2a$10$pDQks0ytOkCfmpdgpLygrOC3uY7i/XnZHBKRQDhrBPwKoN2f5Kz8C</passwordHash> 

重啟一下jenkins 
新密碼為admin

3.2 maven配置

針對之前手動安裝的maven需要在web介面配置進行結合。 
系統管理—全域性工具配置(Maven Configuration)配置: 

此處為手動安裝的maven,需要取消自動安裝maven,name可以自定義,MAVEN_HOME指定下載安裝的maven具體檔案目錄 

3.3 GIT配置

手動安裝的git,web介面只需新增具體可執行路徑即可 

3.4 jdk配置

對應手動安裝的jdk,需要web配置java_home路徑 

3.5 郵件配置

jenkins有內建的郵件功能但由於其對於成功的釋出不會發送郵件可定製化程度低,在此直接配置外掛郵件(Editable Email Notification),2.32以上版本的jenkins,常用的外掛都已經在最初部署的時候安裝了(如果你當初選擇的是suggest的plugins)。 
可以使用qq郵件伺服器或163等其他郵件伺服器,在此配置使用163郵箱,首先需要開啟163郵箱的smtp服務。 

需要記錄此處開啟smtp時的密碼。 
在jenkins 系統管理—系統設定—Extended E-mail Notification 

在預設的觸發器 Default Triggers 標籤下,可以勾選郵件通知觸發的情況,如任何情況下均需要選擇always,也可以在僅失敗情況下發送,也可以對應的郵件接受人不通,進行郵件分類。 
以下的內容,如郵件主題,內容均可自定義,可以參考url: 
至此全域性外掛郵件已經配置完畢,需要在具體的專案中使用此郵件進行傳送通知。

四、實戰php程式自動釋出

4.1 外掛安裝

系統管理—管理外掛—已安裝 
檢查是否有“Git plugin”和“Publish Over SSH”兩個外掛,如果沒有,則需點選“可選外掛”,找到它並安裝 
安裝好兩個外掛後,點選“系統管理”– “系統設定”

4.2 SSH配置

系統管理—系統設定—Publish over SSH 
在key內填寫jenkins伺服器的私鑰,如果沒有需要先在jenkins伺服器生成私鑰與公鑰。ssh-keygen -t rsa回車後會在登入使用者的家目錄下生成一個.ssh 的目錄,此目錄下存在id_rsa私鑰與id_rsa.pub公鑰。且講公鑰釋出至程式碼釋出的目標伺服器上ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

SSH Server配置 
name:需要將php程式釋出到目標伺服器的名稱,可自定義 
Hostname:填寫目錄伺服器的IP地址 
Username:使用那個使用者進行釋出,此處為進行金鑰互信的使用者 
Remote Directory:此出為釋出到目標伺服器的相對根路徑,建議填寫/,防止後續填寫路徑異常。 

注:如果為多臺目標伺服器,可以繼續新增,如果目標伺服器存在代理,也可設定proxy

4.3 構建專案

新建Item—填入專案名稱—選擇構建一個自由風格的軟體專案—確定 
原始碼管理選擇git 
Repository URL 填寫具體git上的倉庫url,如果為私有,需要繼續新增Credentials,如果為公有直接填寫url即可,Credentials為none,

構建後夠操作 
選擇(Send files or execute commands over SSH) 
SSH Server選擇目標伺服器如:php-server 
Source files:/ #將git拉去下來的原始檔案 
Remote directory:/var/www/html #釋出到目標伺服器的制定目錄 
Exec command:chown apache:apache -R /var/www/html/* #制定後續的操作 

此時可以選擇Editable Email Notification來構建郵件通知。 
在此處,之前的郵件主題,內容均可以自定義,在高階裡面,選擇郵件接受人。 

點選儲存,並立即構建,可以點選console output檢視日誌 


此時開啟php程式發現程式檔案已經成功釋出到目標伺服器上 

此時可以檢視郵件也已經發送成功。 

相關推薦

持續整合Jenkins-Linux離線部署.md

考慮公司伺服器未開通網路訪問許可權,因此所有的東西要通過本地下載後上傳linux,所以初始先在本地安裝好整體環境,再進行移殖。 移殖中最主要是移殖本地的.jenkins目錄,移殖後基本沒有什麼問題,只是後續專案中有新引入的maven包,需要手動上傳至伺服器maven倉庫。

.net core 2.x - docker-linux容器-持續整合(jenkins)

  1.準備工作      先說明哈,以下操作都是在windows中:      a).需要下載安裝 jenkins 的windows版本      b).需要下載安裝 docker for windows,安裝之後使用的 linux容器,如果不知道的,可以看上一篇      c).我們這裡的演示使

自動持續整合——Jenkins整合SpringBoot

  自動持續整合,簡而言之就是在程式碼每次提交時,自動持續整合的工作主要是能對專案進行構建、自動化測試和釋出等等。jenkins是一個自動持續整合工具,目前比起前沿的還有gitlab。使用自動持續整合

iOS持續整合jenkins+xcode+svn+七牛

吐個槽:隨著程式碼的不斷累積每次iOS打包都要焦急等待小十分鐘,Xcode卡爆了有沒有,Archives有時證書都無法驗證,上傳20M的.ipa檔案一定要看網路給不給力。 jenkins實現目標: 生成ipa檔案 生成plist檔案 ipa、plist七牛

手摸手聊聊小程式持續整合Jenkins

本文首發在我的github部落格 github.com/Pasoul/blog… ,感興趣的同學可以點個star,不要迷路哦~ 我們為什麼要持續整合? 試想以下兩個場景: 場景一:你在開發新功能的時候,同事A找你要小程式體驗二維碼,於是你只能: git stash // 快取本地修改 git

持續整合(jenkins)中的持續釋出配置.(Deploy to container Plugin外掛)

引數詳解: 第一項(WAR/EAR files):是war包的相對路徑(相對於工作區路徑,即在工作區中war包的相對路徑.)如我的maven執行完成之後會在工作區的target目錄下生成專案.war,所以這裡我的路徑就寫target\專案.war. 第二項:(conten

持續整合Jenkins+sonarqube部署教程

    新增如下內容,sonar預設自帶mysql驅動。 Js程式碼   sonar.jdbc.username=root   sonar.jdbc.password=11111   sonar.jdbc.url=jdbc:mysql://localhost:3306/sona

如何做好持續整合——Jenkins on Mesos 實踐

首先講一下持續整合的優勢。過去公司做測試可能需要十幾、二十幾個元件,整合一次往往要一兩個小時,費力費時,而且複雜容易出錯,而一旦配置出錯的話耗時會更久。因此,一次整合測試一週才會做一次,測出Bug要到下一週才能更新,再做測試,這個週期會非常漫長。而持續整合的意義

持續整合Jenkins

轉自:https://blog.csdn.net/qq_26848099/article/details/78901240一、相關概念1.1 Jenkins概念:Jenkins是一個功能強大的應用程式,允許持續整合和持續交付專案,無論用的是什麼平臺。這是一個免費的原始碼,可以

持續整合jenkins+weblogic部署啟動(二)

專案已經可以順利的釋出到linux上指定的目錄了,接下來是我對weblogic部署的思路 有的人認為只要專案放到指定位置,weblogic立即關閉再啟動,他就會載入專案,這個時候載入的就是最新的,專案就是最新的, 這個想法是錯的。這樣專

Framework專案持續整合(jenkins)及集合SonarQube

[toc] -------------------- # Framework專案持續整合及集合SonarQube - 前言 個人部落格原文地址:[http://book.levy.net.cn/doc/devops/jenkins_sonar.html](http://book.levy.net.cn/

微服務下的持續整合-Jenkins自動化部署GitHub專案

@[TOC] ## 一、前言 只從公司用了Jenkins後就很想寫這個了,因為這個真真真的是太方便了,想起小農剛工作的時候,那個時候部署專案怎麼部署呢?首先需要將對應的class檔案和xml一個一個匯出來,放到對應的包檔案裡面,有時候一不小心很有可能會導錯,這個時候又要去重新拉一下對應的class檔案,然後

Jmeter+jenkins如何快速搭建介面和效能測試持續整合解決方案-[基於windows篇]

  Jenkins + Jmeter 構建介面、效能測試持續整合解決方案   Jenkins + Jmeter 可以很輕鬆的進行打包釋出程式後自動進行介面冒煙測試,或者定時效能測試。以下是詳盡的Jenkins + Jmeter

Jmeter+Maven+jenkins介面和效能可持續整合測試

話說無時無刻都覺得有很多東西需要學習,但是我所奉行的理念的就是每天都進步一點,不斷完善不斷提高!!!!話不多說,進入正題:其實在本文最重要的應該就是jmeter的指令碼和pom.xml檔案 一、首先當然是在Jmeter的工具裡面編寫好自己的指令碼,除錯執行成功。本文就以專案測試中的兩個

Jenkins持續整合工具安裝

文章目錄 安裝Jenkins 安裝OpenJDK war包方式安裝Jenkins 登入 安裝Jenkins 這裡不建議docker安裝,因為使用Jenkins的時候會依賴很多宿主機的東西,如果使用docker

工作環境下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

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

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

基於Docker容器的,Jenkins、GitLab構建持續整合CI

摘要: 一、場景: 開發者將程式碼提交(push)到GitLab後,GitLab通過Hook通知jenkins,jenkins自動從GitLab中獲取專案最新的原始碼進行整合和釋出。 二、準備: 基於Docker,建立一個私有GitLab的容器,建立一個jenkins的容器 三、步驟 1、

CI持續整合系統環境--Gitlab+Gerrit+Jenkins完整對接

原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年來,由於開源專案、社群的活躍熱度大增,進而引來持續整合(CI)系統的誕生,也越發的聽到更多的人在說協同開發、敏捷開發、迭代開發、持續整合和單元測試這些拉風的術語。然而,大都是僅僅聽到在說而已,國內

docker+jenkins+maven+gitlab搭建整合java持續整合環境(待完成)

環境:虛擬機器下centos7   首先配置jdk: mkdir /usr/local/java 下載jdk1.8:官網:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133