Jenkins系列-Jenkins通過Publish over SSH插件實現遠程部署


配置ssh免秘鑰登錄                                                                                  

安裝Publish over SSH插件

插件使用官網:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin

主界面——>系統管理——>管理插件——>可選插件——>右上角過濾框中輸入“Publish over SSH”——>勾選安裝

 

 

插件配置

主界面——>系統管理——>系統設置——>Publish over SSH

 

參數說明

  • Passphrase: 密碼(目標機器的密碼)
  • Path to key:key文件(私鑰)的路徑
  • Key:將私鑰復制到這個框中
  • Disable exec:禁止運行命令

私有配置

  • SSH Server Name: 標識的名字(隨便你取什么)
  • Hostname: 需要連接ssh的主機名或ip地址,此處填寫應用服務器IP(建議ip)
  • Username: 用戶名
  • Remote Directory: 遠程目錄(要發布的目錄,比如/usr/local/tomcat/webapps/)
  • Use password authentication, or use a different key:可以替換公共配置(選中展開的就是公共配置的東西,這樣做擴展性很好)

私有配置的高級

  • Port:端口(默認22)
  • Timeout (ms):超時時間(毫秒)默認即可
  • Disable exec:禁止運行命令

配置完成后,可以 通過 “Test Configuration” 測試是否配置正確。

構建配置

點擊構建的項目—>配置–>構建后操作,選擇Send build artifacts over SSH,進行如下配置(注意:下面的Exec command是遠程機器上執行的腳本):

 

腳本內容如下:

#!/bin/bash
echo "==================start deploy project========================="
ps -aux | grep /usr/local/tomcat/ | grep -v grep > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt
sed 's/ / /g' tomcat_info1.txt > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt 
cat tomcat_info1.txt | cut -d' ' -f 2 > tomcat_info.txt

for line in `cat tomcat_info.txt`
do
kill -9 $line
done

cd /usr/local/tomcat/webapps
rm -rf youxuan_api*
mv /usr/local/jenkinsTempFolder/youxuan_api /usr/local/tomcat/webapps

/etc/init.d/tomcat start
sync
echo 3 > /proc/sys/vm/drop_caches
echo "==================deploy project success========================="

參數說明

  • SSH Server Name:選個一個你在系統設置里配置的配置的名字
  • Transfer Set Source files:需要上傳的文件(注意:相對於工作區的路徑。看后面的配置可以填寫多個,默認用,分隔)
  • Remove prefix:移除目錄(只能指定Transfer Set Source files中的目錄)
  • Remote directory:遠程目錄(根據你的需求填寫吧,因為我這兒是測試,所以偷懶沒有填寫。默認會繼承系統配置)
  • Exec command:把你要執行的命令寫在里面 (新版本的要求Transfer Set Source files和Exec command都要填寫,可以不了他。老版本的允許只填寫一個)

高級:

  • Exclude files:排除的文件(在你傳輸目錄的時候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)
  • Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你這兒更改了,上面的內容也需要更改)
  • No default excludes:禁止默認的排除規則(具體的自己看幫助)
  • Make empty dirs:此選項會更改插件的默認行為。默認行為是匹配該文件是否存在,如果存在則創建目錄存放。選中此選項會直接創建一個目錄存放文件,即使是空目錄。(個人理解)
  • Flatten files:只上傳文件,不創建目錄(除了遠程目錄)
  • Remote directory is a date format:遠程目錄建立帶日期的文件夾(需要在Remote directory中配置日期格式),具體格式參考下表:
  • Remote directory Directories created
  • 'qa-approved/'yyyyMMddHHmmss qa-approved/20101107154555
  • 'builds/'yyyy/MM/dd/'build-${BUILD_NUMBER}' builds/2010/11/07/build-456 (if the build was number 456)
  • yyyy_MM/'build'-EEE-d-HHmmss 2010_11/build-Sun-7-154555
  • yyyy-MM-dd_HH-mm-ss 2010-11-07_15-45-55
  • Exec timeout (ms):運行腳步的超時時間(毫秒)
  • Exec in pty:模擬一個終端執行腳步
  • Add Transfer Set:增加一個配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM