1. 程式人生 > >Jenkins+Maven+Svn 快速釋出環境

Jenkins+Maven+Svn 快速釋出環境

Jenkins 是一款持續整合工具,它可以做的事情很多,其中一個主要的功能就是簡化部署流程

  • 傳統的釋出流程
    • 本地把把專案打包
    • 通過FTP等工具,傳輸到伺服器
    • 關閉tomcat,備份專案包,然後將新上傳的包放到webapp目錄下
    • 啟動tomcat
  • Jenkis的釋出流程
    • 使用者在Jenkis上點選某個按鈕
    • Jenkis收到釋出命令
    • Jenkis從svn上把原始碼download下來
    • Jenkis根據你設定的mvn命令打包
    • Jenkis把你打包好的war傳輸到遠端的tomcat的webapps目錄下
    • tomcat啟動

一、安裝Jenkis

  • 到官網下載Jenkis的war包,其官網下載地址為:http://mirrors.jenkins.io/war/latest/jenkins.war

  

  • 將war包copy到tomcat的webapp目錄下
    • 需要設定JENKINS_HOME,否則windows系統會安在C盤,liunx會安裝在/root/.jenkis下
    • tomcat和jdk和傳統的方式一樣
  • 啟動tomcat伺服器
  • 訪問Jenkins
    • 瀏覽器輸入:http://127.0.0.1:8080/jenkis,進入Jenkis訪問頁面
    • 首先是輸入初始密碼,這個有提示,跟著提示找到檔案,找到密碼,輸入即可
    • 安裝推薦的外掛

二、安裝外掛

  • 安裝Maven外掛
  • 安裝svn外掛
    • 點選系統管理-->管理外掛-->可選插
    • 查詢Subversion Plug-in外掛
    • 直接安裝

三、建立構建專案

  • 全域性工具配置
    • 點選系統管理-->全域性工具配置-->配置jdk、maven配置
  • 構建一個maven專案

  

  • 新增原始碼下載路徑
  • 新增maven打包設定
  • 打包完成後執行shell命令,將打包好的war包copy到遠端伺服器,並執行遠端伺服器的的shell指令碼
    • scp為傳輸檔案命令,ssh是遠端登入命令,都需要免祕鑰登入
    • 指令碼jenkins內容為:

      

tomcat_home=/usr/local/tomcat
tomcat=`ps -ef|grep tomcat|grep -v 'grep'|awk '{print $2}'`;
echo ${tomcat}
if test -z ${tomcat}
then
   echo "tomcat 沒有啟動"
else
   echo "準備結束tomcat程序..."
   sh ${tomcat_home}/bin/shutdown.sh
   sleep 5
   kill -9 ${tomcat}
   echo "tomcat 程序已經結束"
fi

##備份war包
mkdir ${tomcat_home}/bak
mv ${tomcat_home}/webapps/hb.war ${tomcat_home}/bak/hb.war-$(date "+%Y%m%d-%H%M%S")


##釋出war包
rm -rf ${tomcat_home}/webapps/hb*
cp -r /root/hb.war ${tomcat_home}/webapps/

##啟動tomcat
sh ${tomcat_home}/bin/startup.sh

echo "啟動tomcat完成"

 

Linux之間配置SSH互信(SSH免密碼登入)

為簡化SSH過程,採用證書方式,免去SSH登入時需要輸入賬號密碼的過程,具體操作如下:

一、在SSH伺服器所在機器上

1、以root使用者登入,更改ssh配置檔案 /etc/ssh/sshd_config,去除以下配置的註釋

RSAAuthentication yes #啟用rsa認證
PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys #公鑰檔案路徑

 

 2、重啟SSH服務

[[email protected] /]#systemctl restart sshd  //重啟ssh服務

 

二、在客戶端機器上

1、生成公鑰私鑰對

[[email protected] /]#ssh-keygen -t rsa

 

一路預設回車,系統在/root/.ssh下生成id_rsa、id_rsa.pub

2、把id_rsa.pub傳送到服務端機器上

[[email protected] /]#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.20 #server ip

 

3、驗證

[[email protected] /]#ssh 192.168.1.20 #server ip