47.22.33.159 jenkins 47.22.33.102 /root/shell/aa.sh
/root/shell/aa.sh腳本內容: #! /bash/bin echo "hello"
演示:
a、47.22.33.102啓動ssh,配置47.22.33.159公私,支持47.22.33.159經過ssh訪問47.22.33.102
b、經過jenkins遠程執行shell腳本,打印hello字符串。shell
一、Jenkins插件Publish over SSH安裝
打開Jenkins的「系統管理>插件管理」,選擇「可選插件」,在輸入框中輸入「Publish over SSH」進行搜索,若是搜索不到能夠在「已安裝」裏確認是否已經安裝過。在搜索結果中選中「Publish over SSH」,點擊頁面的「直接安裝」按鈕,系統會自動安裝,此插件安裝後不須要重啓Jenkins。若是插件安裝成功在「系統管理>系統設置」會出現相關配置項。
二、插件配置
插件安裝成功後使用前須要在「系統管理>系統設置」中進行配置,處如圖:
Passphrase:SSH的密碼
使用用戶名/密碼登陸時爲用戶名的密碼,使用私鑰登陸時爲私鑰的密碼。bash
Path to key:SSH私鑰的文件路徑
私鑰文件的路徑,能夠是絕對路徑,也能夠是相對$JENKINS_HOME的相對路徑服務器
Key:私鑰
私鑰導出後的文本內容ssh
若是「Key」和「Path to key」都設置,則「Key」的優先級較高,私鑰的密碼是「Passphrase」中設置的內容。測試
注意:私鑰指的是47.22.33.159的私鑰,安裝Jenkins的服務器。
Disable exec:禁止在目標機上執行命令
勾選後將會忽略在Job配置中「Exec command」選項中設置的命令。Jenkins的說明文檔中的「The Disable exec in the advanced settings for individual configurations will be ignored.」沒有徹底理解,從實際效果來看,只要「Disable exec」被勾選後,無論SSH Server中是否勾選「Disable exec」,Job中設置的命令都將補忽略。spa
Test Configuration:測試配置是否成功,界面出現"Success"表示配置成功插件
SSH Server 配置
Name
SSH節點配置的名稱,在Job中使用Publish over SSH插件時,此名稱將出如今「SSH Server」中「Name」的下拉列表中,以下圖:日誌
Hostname
經過SSH鏈接到的機器的主機名或IPcode
Username
SSH服務使用的用戶名,使用key進行鏈接時爲key指定的用戶名blog
Remote Derictory
運程機器上真實存在的目錄,而且「Username」指定的用戶要有訪問此目錄的權限,插件將把文件傳送到此目錄下。
三、在Jenkins中配置構建
點擊」構建「選項,在「增長構建步驟」裏選擇「Send files or execute commands over SSH」,便可以Job中使用Publish over SSH插件,配置以下圖:
參數說明
Name
「系統管理>系統設置」設置的SSH Sverver的名字列表。
Source files
容許爲空,複製到運程機上的文件,相對workspace的路徑,也支持表達式,如上圖中的「**/*.war」。
Remove prefix
容許爲空,文件複製時要過濾的目錄,如上圖中的target目錄。
Remote directory
容許爲空,文件獲得到遠程機上的目錄,此目錄是相對於「SSH Server」中的「Remote directory」的,若是不存在將會自動建立。
Exec command
在這裏能夠填寫在運程機器上執行的腳本,如:觸發aa.sh腳本打印hello。
四、查詢效果
點擊"當即構建",查看日誌如圖: