目錄web
一、安裝shell
1.一、安裝插件tomcat
1.二、配置bash
二、配置服務器
2.一、配置jenkins支持maven自動編譯app
2.二、配置文件ssh
三、發佈webapp
四、腳本maven
官方特性介紹:publish over ssh ide
SCP - 經過SSH發送文件(SFTP)
在遠程服務器上執行命令(能夠禁用服務器配置或整個插件)
使用用戶名和密碼(鍵盤交互)或公鑰認證
密碼/密碼短語在配置文件和用戶界面中加密
SSH SFTP / SSH Exec可用做構建過程當中的構建步驟(Freestyle和Matrix項目)
(maven)項目構建以前的SSH,或者在構建以後運行,不管構建是否成功(請參閱下面的構建包裝器)
該插件是「提高意識」(直接從正在升級的版本的工件目錄發送文件),請參閱促銷
能夠爲做業配置中的每一個服務器覆蓋認證憑證(或者在全局配置中未提供該服務器的狀況下提供它們)
若是文件傳輸失敗,能夠選擇重試(適用於flakey鏈接)
啓用命令/腳本在僞TTY中執行
一、安裝
官網介紹:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin
1.一、安裝插件
點擊-系統管理-系統插件-可選插件中 直接搜 publish over ssh 點擊安裝,安裝完以後,重啓jenkins
1.二、配置
點擊- 系統管理-系統設置-拉到最下面就有這個窗口了
Passphrase: 密碼(目標機器的密碼)
Path to key:key文件(私鑰)的路徑
SSH Server Name: 標識的名字(隨便你取什麼)
Hostname: 須要鏈接ssh的主機名或ip地址,此處填寫應用服務器IP(建議ip)
Username: 用戶名
Remote Directory: 遠程目錄(要發佈的目錄,好比/usr/local/tomcat/webapps/)
二、配置
2.一、配置jenkins支持maven自動編譯
連接:實例3.2: https://blog.51cto.com/xiong51/2093450
2.二、配置文件
Name : 這裏是自定義的ssh遠程服務器,若是有多臺,點擊add post-build step 繼續添加 Source files : 源文件地址,相對地址 好比 /root/.jenkins/workspace/jobname/target/xx.war 直接寫成 target/xx.war就行 Remove prefix : 這裏指的是忽略前面的 target/ 遠程服務器直接顯示就是xx.war Remote directory : 遠程服務器要保存的文件目錄 Exec command : 這裏直接寫 bash 腳本名稱 xx.sh 這裏也是遠程服務器的腳本
三、發佈
四、腳本
我的練習使用 ,直接修改 server_name 是發佈的項目名,由tomcat定義
tomcat_m2mManger是我定義的tomcat腳本名稱,自帶的腳本 進程可能會刪除不了
war包地址 我定義的爲/mnt,若是是別的更改一下目錄就行
#!/bin/bash # # __auther__: xiong # __ time __: 2018年03月28日 11:00:54 # __ 做用 __: 用於jenkins build完成以後的最後操做shell腳本 # __ 使用 __: 定義jenkins # #---------------------------------- 文件路徑配置 ---------------------------------- # 定義基礎路徑及目錄 server_name=m2mManage # tomcat名稱 tomcat_server_name=tomcat_m2mManage # tomcat 服務啓動腳本 tomcat_serivce=/usr/local/$tomcat_server_name/sbin/$tomcat_server_name # 保存文件路徑 base_dir=/usr/local/website work_dir=$base_dir/m2mManageDest # 以時間的方式來發布版本 time=`date +%Y%m%d%H%M` time_dir=$work_dir/$server_name$time # 連接路徑 link_dir=$base_dir/$server_name # 配置文件路徑 conf_dir=WEB-INF/classes #---------------------------------- 啓動及判斷配置 ---------------------------------- # 建立目錄,若是存在,直接退出從新發布一次 if [ -d $time_dir ];then exit 5 else /bin/mkdir $time_dir fi # 檢測這個端口判斷服務是否啓動, if /usr/sbin/ss -tnl | grep 這裏定義端口地址;then # 啓動了那就直接中止它 $tomcat_serivce stop fi # 將打包上傳的文件傳到這個目錄下 /usr/bin/unzip /mnt/$server_name/$server_name.war -d $time_dir/ &>/dev/null # 建立一個用於保存當前上線包的無效配置文件,並當無效配置文件複製到該文件中 old_conf_dir=$time_dir/$conf_dir /bin/mkdir $old_conf_dir/old_conf /bin/mv -i $old_conf_dir/*.p* $old_conf_dir/old_conf/ # 將上一個版本的配置文件複製到當前上線的文件中 /bin/mv -i $link_dir/$conf_dir/*.p* $time_dir/$conf_dir # 判斷上一個版本的軟連接,用於回滾版本 if [ -d $link_dir ];then /bin/rm -irf $link_dir fi # 從新定義新上線包的軟連接 /bin/ln -sv $time_dir $link_dir # 啓動服務 $tomcat_serivce start