jenkins中通過Publish Over SSH插件將項目部署到遠(yuǎn)程機(jī)器上的講解說明
Publish Over SSH插件使用
在使用Publish Over SSH之前,需要制作SSH私鑰。機(jī)器間做免密登錄配置。假設(shè)機(jī)器A,ip為192.168.AA.AAA,機(jī)器B: 192.168.BB.BBB,機(jī)器A能夠免密登錄機(jī)器B,機(jī)器B能夠免密登錄機(jī)器A,制作方式是:
進(jìn)入A機(jī)器,執(zhí)行:
cd ~ ssh-keygen -t rsa
通過下面的命令,表示可以通過機(jī)器192.168.AA.AAA免密登錄到機(jī)器192.168.BB.BBB
ssh-copy-id 192.168.BB.BBB
驗證方式是:在A機(jī)器上執(zhí)行ssh 192.168.BB.BBB,然后執(zhí)行ifconfig檢查當(dāng)前的ip,若發(fā)現(xiàn)機(jī)器的ip已經(jīng)變成了192.168.BB.BBB說明免密登錄設(shè)置成功。
進(jìn)入B機(jī)器,執(zhí)行:
cd ~ ssh-keygen -t rsa ssh-copy-id 192.168.AA.AAA
驗證方式是:在B機(jī)器上執(zhí)行ssh 192.168.AA.AAA,然后執(zhí)行ifconfig檢查當(dāng)前的ip,若發(fā)現(xiàn)機(jī)器的ip已經(jīng)變成了192.168.BB.BBB說明免密登錄設(shè)置成功。
在系統(tǒng)配置中配置Publish Over SSH
進(jìn)入Jenkins—>系統(tǒng)管理—>系統(tǒng)設(shè)置,配置Publish over SSH
參數(shù)說明:
Passphrase:密碼(key的密碼,如果你設(shè)置了)
Path to key:key文件(私鑰)的路徑
Key:將私鑰復(fù)制到這個框中
Disable exec:禁止運(yùn)行命令
私有配置:
SSH Server Name:標(biāo)識的名字(隨便你取什么)
Hostname:需要連接ssh的主機(jī)名或ip地址(建議ip)
Username:用戶名
Remote Directory:遠(yuǎn)程目錄
Use password authentication, or use a different key:可以替換公共配置(選中展開的就是公共配置的東西,這樣做擴(kuò)展性很好)
私有配置的高級:
Port:端口(默認(rèn)22)
Timeout (ms):超時時間(毫秒)默認(rèn)即可
Disable exec:禁止運(yùn)行命令
Test Configuration:測試連接
對構(gòu)建的項目中的SSH進(jìn)行配置:
在執(zhí)行前要配合Build–>Post Steps中的Execute shell配置,執(zhí)行scp命令,將要拷貝的項目先遠(yuǎn)程拷貝到遠(yuǎn)程機(jī)器上。在Execute shell中的內(nèi)容如下:
scp -r /root/.jenkins/workspace/youxuan_api_pre/qt360-web/target/youxuan_api root@192.168.BB.BBB:/usr/local/jenkinsTempFolder/ export BUILD_ID=DONTKILLME
點擊構(gòu)建的項目—>配置–>構(gòu)建后操作,選擇Send build artifacts over SSH,進(jìn)行如下配置(注意:下面的Exec command是遠(yuǎn)程機(jī)器上執(zhí)行的腳本):
腳本內(nèi)容如下:
#!/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========================="
參數(shù)說明:
SSH Server Name:選個一個你在系統(tǒng)設(shè)置里配置的配置的名字
Transfer Set Source files:需要上傳的文件(注意:相對于工作區(qū)的路徑。看后面的配置可以填寫多個,默認(rèn)用,分隔)
Remove prefix:移除目錄(只能指定Transfer Set Source files中的目錄)
Remote directory:遠(yuǎn)程目錄(根據(jù)你的需求填寫吧,因為我這兒是測試,所以偷懶沒有填寫。默認(rèn)會繼承系統(tǒng)配置)
Exec command:把你要執(zhí)行的命令寫在里面
(新版本的要求Transfer Set Source files和Exec command都要填寫,可以不了他。老版本的允許只填寫一個)
高級:
Exclude files:排除的文件(在你傳輸目錄的時候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你這兒更改了,上面的內(nèi)容也需要更改)
No default excludes:禁止默認(rèn)的排除規(guī)則(具體的自己看幫助)
Make empty dirs:此選項會更改插件的默認(rèn)行為。默認(rèn)行為是匹配該文件是否存在,如果存在則創(chuàng)建目錄存放。選中此選項會直接創(chuàng)建一個目錄存放文件,即使是空目錄。(個人理解)
Flatten files:只上傳文件,不創(chuàng)建目錄(除了遠(yuǎn)程目錄)
Remote directory is a date format:遠(yuǎn)程目錄建立帶日期的文件夾(需要在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):運(yùn)行腳步的超時時間(毫秒)
Exec in pty:模擬一個終端執(zhí)行腳步
Add Transfer Set:增加一個配置
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
詳解利用nginx和docker實現(xiàn)一個簡易的負(fù)載均衡
本篇文章主要介紹了利用nginx和docker實現(xiàn)一個簡易的負(fù)載均衡 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06docker-compose安裝db2數(shù)據(jù)庫操作
這篇文章主要介紹了docker-compose安裝db2數(shù)據(jù)庫操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12解決docker CMD/ENTRYPOINT執(zhí)行sh腳本報: not found/run.sh:
這篇文章主要介紹了解決docker CMD/ENTRYPOINT執(zhí)行sh腳本報: not found/run.sh:的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker Volumn容器間共享數(shù)據(jù)的實現(xiàn)
這篇文章主要介紹了Docker Volumn容器間共享數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01docker?部署hbase并且java?Api連接的操作過程
這篇文章主要介紹了docker?部署hbase并且java?Api連接的操作過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11docker-compose部署MySQL8的實現(xiàn)
本文主要介紹了docker-compose部署MySQL8的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11Docker創(chuàng)建openresty容器的實現(xiàn)步驟
OpenResty可以用來構(gòu)建高性能的Web應(yīng)用和服務(wù),本文主要介紹了Docker創(chuàng)建openresty容器的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03