jenkins+svn+maven+tomcat一鍵構建部署

1背景 
這是這種多人協同開發,自動構建,自動部署的方案。就不用自己打包,然後上傳部署了,解放人力,便於管理。這裏只是簡單介紹各自軟件的使用與集成,其實不論svn和maven還有很多實用的用法,svn的管理規劃,maven的倉庫等。 
svn用來做代碼版本管理,maven用來編譯,tomcat是web容器,jenkins是自動化構建的工具。這裏沒使用nginx來做方向代理,以後做 
軟件版本 
jdk1.8 
tomcat8-部署jenkins,端口8080 
tomcat7-部署應用web項目,端口8090 
jenkins2.46 
maven3.5

2安裝jenkins 
2.1安裝jdk 
官網下載,解壓,改名,修改配置文件,最後使用java -version驗證,非常簡單。不過多描述

2.2安裝tomcat8 
官網下載,解壓,改名

2.3安裝jenkins 
然後把jenkins的war放入tomcat的webapp(/home/tomcat8/webapps),然後啓動tomcat 
/home/tomcat8/bin/startup.sh

2.4修改防火牆,開通8080端口 
vim /etc/sysconfig/iptables 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT 
重啓防火牆service iptables restart 
訪問url 
http://192.168.247.141:8080/jenkins/ 
這裏寫圖片描述
這裏按照他的提示,進行密碼驗證。 
more /root/.jenkins/secrets/initialAdminPassword 
這裏寫圖片描述 
下面安裝插件 
這裏寫圖片描述

選擇插件,就安裝推薦的吧 
然後是慢長的等待,然後輸入用戶名和密碼 
這裏wangqi,wangqi,[email protected] 
插件安裝完成之後

這裏寫圖片描述
2.5自己安裝插件 
安裝SSH Slaves plugin(運行shell命令),Maven Integration plugin(構建maven項目), 
Deploy to container Plugin(部署應用web)。 
在jenkins的系統管理-插件管理-可選插件中可以選擇 
這裏寫圖片描述

3安裝svn 
3.1查是否已經安裝svn 
rpm -qa subversion 
如果已經安裝,請刪除yum remove subversion

3.2yum安裝 
yum install subversion 
mkdir /home/svn/game 
svnadmin create /home/svn/game 
cd /home/svn/game 
ll 
這裏寫圖片描述 
conf目錄是配置文件,db目錄就是放置各個版本的代碼(加密) 
3.3規劃svn與配置svn 
規劃: 
策劃組:開策劃、美術讀寫 
後端組:開後端讀寫,策劃只讀 
前端組:開前端讀寫,策劃、美術只讀 
美術組:開美術讀寫,策劃只讀 
管理員組:所有的讀寫

權限配置 
vim /home/svn/game/conf/authz 
rw的含義是讀寫

[game:/server] 
@server=rw 
這個含義是server用戶可以多svn的game下面的server目錄有讀寫權限

[groups]
#管理組
manager = boss
#服務端用戶組
server = server1,server2
#客戶端用戶組
client = client1,client2
#美術組
art = art1,art2
#策劃組
design=design1,design2
[game:/]
@manager=rw
[game:/server]
@server=rw
[game:/client]
@client=rw
@design=r
@art=r
[game:/art]
@design=rw
@art=rw
@client=r
[game:/design]
@design=rw
@server=r
@client=r
@art=r
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

修改用戶密碼 
vim /home/svn/game/conf/passwd

[users]
boss=123456
server1=123456
server2=123456
client1=123456
client2=123456
art1=123456
art2=123456
design1=123456
design2=123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

修改svn服務 
vim /home/svn/game/conf/svnserve.conf

auth-access = write
anon-access = read
password-db = passwd
authz-db = authz
realm =game
  • 1
  • 2
  • 3
  • 4
  • 5

防火牆開發svn端口 
vim /etc/sysconfig/iptables 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3690 -j ACCEPT

service iptables restart

3.4啓動svn服務 
svnserve -d -r /home/svn/ 
-d:守護進程 
-r:svn根目錄 
假設服務端IP爲192.168.247.141,那麼如下設置後game的訪問目錄就爲: 
svn://192.168.247.141/game

svn客戶端使用烏龜(tortoise svn安裝直接下一步),找一個目錄checkout,如果成功svn就安裝成功。 
這裏寫圖片描述

4安裝maven 
從 http://maven.apache.org/ 下載 
這裏寫圖片描述

解壓,改名 
tar -zxvf apache-maven-3.5.0-bin.tar.gz 
rm -rf apache-maven-3.5.0-bin.tar.gz 
mv apache-maven-3.5.0/ maven3.5

配置環境變量 
vim /etc/profile

M2_HOME=/home/maven3.5
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin
  • 1
  • 2

修改maven的配置,vim settings.xml

<localRepository>/home/maven3.5/jar</localRepository>
  • 1

然後把自己的maven的jar拷貝到jar中,不然的會,會重新下載 
基礎的軟件已經準備好了。

5 spring tool suit 
我是使用spring tools suit編寫代碼,這裏通過help-install已經安裝了svn的插件哈。 
右鍵項目-temp-shareproject-選擇svn 
然後填寫svn連接,賬戶,密碼,就可以上傳去了。安裝提示一步一步走就可以了。

這裏寫圖片描述 
這裏寫圖片描述 
上傳svn成功之後,項目就會出現如圖的連接,說明代碼已經被svn管理了。

6使用jenkins構建部署web應用 
6.2新建一個job 
這裏選擇自由風格,項目名nsfw-server 
這裏寫圖片描述

然後配置這個job 
6.2配置job的svn 
這裏寫圖片描述
配置svn,這裏特別注意svn的路徑,需要指定到項目名哈 
這裏使用svn的boss用戶,boss用戶具有所有目錄的讀寫權限

6.3構建計劃 
每晚8點運行,時間自己改哈,配置方式和crontab的一樣 
這裏寫圖片描述

6.4構建環境 
這裏需要先source /etc/profile,不然不能使用mvn命令(我這裏確實是這樣),這裏的ssh(需要先裝ssh插件哈),需要在系統配置

這裏寫圖片描述

這裏寫圖片描述

6.5構建方式 
構建方式選擇invoke top-level maven targets。 
goals是maven命令,setting是maven的配置路徑 
這裏寫圖片描述
clean install的意思是刪除以前編譯過的target,然後重新編譯生成war

6.6自動部署到web容器 
這裏寫圖片描述
war路徑是相對於jenkins的workspace目錄的相對路徑 
我的全路徑:/root/.jenkins/workspace/nsfw-server/nsfw-server/target/nsfw-server.war 
/ 代表的是會把crm.adminWeb.war 換成ROOT.war放到 tomcat的webapps目錄. 
/nsfw-server,不是在root目錄,就是webapp下面的就好 
tomcat的信息主要是用戶名和密碼(來自tomcat-users.xml)。 
jenkins好像支持tomcat7的部署 
這裏插播一個tomcat7的安裝,這裏主要配置一個tomcat-userx.xml。

<role rolename="manager-gui"/>

<user username="wangqi" password="wangqi" roles="manager-gui"/>
  • 1
  • 2
  • 3

使用這個wangqi用戶,可以執行部署命令就可以。

job的配置已經完成

6.7執行構建 
手動執行構建 
這裏寫圖片描述

下面的那個小圓點,就可以看執行的日誌。 
這裏寫圖片描述
從日誌中可以看出,已經mvn編譯出來了war包,然後部署到了tomcat服務器,最後finished:success。

查看tomcat的是否部署完成 
這裏寫圖片描述

訪問http://192.168.247.141:8090/nsfw-server/pic/upIndex,成功 
這裏寫圖片描述
自動化構建成功。

ps: 
1如果mvv -s * clean install,能在機器上運行,但是jenkins不能運行,那麼一定是環境變量的問題,使用在構建之前使用source /etc/profile 
2如果你修改了svn的代碼,上傳之後,馬上執行構建可能會不成功,因爲svn版本沒有同步,過一會就可了,就幾分鐘。

發佈了0 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章