Jenkins——應用篇——插件使用——Publish over SSH


本文是jenkins應用系統文章的一部分,大部分來自工作和學習中的實踐,部分內容來自官方文檔和網友的文章,引用的文章會在“參考資料”部分附上原始鏈接,如無意中侵犯您的權利。請聯系QQ:46106962。如須要進一步的交流請添加QQ群:(Jenkins學習交流)469536515。轉載和使用請注明出處。

依賴環境

  1. SSH,遠程機開啟SSH服務。同意Jenkins所在機器通過SSH服務登錄到遠程機運行腳本。能夠設置SSH使用username/password或通過key登錄,SSH配置請查專門的資料這里不做說明
  2. JDK,本文部署的是JAVA應用。遠程機上要用jdk環境,如非Java應用請忽略
  3. Tomcat或其它web容器,本文是以Tomcat為例,將應用部署到Tomcat中運行,遠程機上安裝Tomcat是必須的,如非Java應用請忽略。如用其它web容器請查找容器的安裝資料

插件安裝

    打開Jenkins的“系統管理>管理插件”,選擇“可選插件”,在輸入框中輸入“Publish over SSH”進行搜索,假設搜索不到能夠在“已安裝”里確認是否已經安裝過。在搜索結果中選中“Publish over SSH”。點擊頁面的“直接安裝”button。系統會自己主動安裝。此插件安裝后不須要重新啟動Jenkins。假設插件成功安裝在“系統管理>系統設置”會出現相關配置項。


Publish over SSH插件安裝

插件配置

全局設置

插件成功安裝后使用前須要在“系統管理>系統設置”中進行配置。處如圖:
Publish Over SSH基本配置
每一項都能夠被SSH Server的設置所覆蓋,這種設計有一個優點。在server環境比較規范的情況下,能夠省去每個SSH Server分別配置的繁瑣步驟。

參數說明

  • Passphrase:SSH的password
    使用username/password登錄時為username的password。使用私鑰登錄時為私鑰的password。
  • Path to key:SSH私鑰的文件路徑
    私鑰文件的路徑,能夠是絕對路徑。也能夠是相對$JENKINS_HOME的相對路徑
  • Key:私鑰
    私鑰導出后的文本內容

    假設“Key”和“Path to key”都設置,則“Key”的優先級較高,私鑰的password是“Passphrase”中設置的內容。
  • 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中設置的命令都將補忽略。

Publisher defaults

SSH Server 配置

SSH Server配置為Publish Over SSH中運程機的配置,分“基本設置”和“高級設置”兩部分。“基本設置”主要是運程機IP、SSHusername、SSHport、連接超時時間等。“高級設置”和大部分“全局設置”中的選項相同。

Job中使用的每個運程機都要在這里進行配置。


基本設置

SSH Server的基本設置例如以下圖:
SSH Server 基本設置
此處設置在使用“172.16.18.192-SSH”的全部設置中都生效。相當於此運程SSH節點的全局設置;基於與“全局設置”中相同的原因這里的設置在Job中也能夠被覆蓋,這在多用戶進行遠程操作時非常有必要,如在172.16.18.192這台機器上有userA和userB兩個用戶分別用來部署"應用A"和“應用B”。
  • 參數說明
    • Name
      SSH節點配置的名稱。在Job中使用Publish over SSH插件時,此名稱將出如今“SSH Server”中“Name”的下拉列表中,例如以下圖:

    • Hostname
      通過SSH連接到的機器的主機名或IP
    • Username
      SSH服務使用的username,使用key進行連接時為key指定的username
    • Remote Derictory
      運程機器上真實存在的文件夾,而且“Username”指定的用戶要有訪問此文件夾的權限。插件將把文件傳送到此文件夾下。

高級設置

高級設置里能夠設置SSHport、重試時間以及又一次設置“全局設置”中的選項。因為做用類似,不再做反復說明,設置例如以下圖:
SSH Server高級設置

在Jenkins中配置Job

在Job設置中“添加構建步驟”里選擇“Send files or execute commands over SSH”,即能夠Job中使用Publish over SSH插件,配置例如以下圖:
Job中使用over ssh

  • 參數說明
    • Name
      “系統管理>系統設置”設置的SSH Sverver的名字列表。
    • Source files
      拷貝到運程機上的文件。相對workspace的路徑,也支持表達式,如上圖中的“**/*.war”。
    • Remove prefix
      文件復制時要過濾的文件夾,如上圖中的target文件夾。

    • Remote directory
      文件得到到遠程機上的文件夾,此文件夾是相對於“SSH Server”中的“Remote directory”的。假設不存在將會自己主動創建。
  • Exec command
    在這里能夠填寫在運程機器上運行的腳本,如:應用部署腳本。下圖中的使用shell部署應用到tomcat的演示樣例:

參考資料


免責聲明!

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



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