Jenkins+Maven+Svn 快速釋出環境
阿新 • • 發佈:2019-01-14
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外掛
- 點選系統管理-->管理外掛-->可選外掛
- 查詢Maven Integration plugin 外掛
- 直接安裝
- 安裝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