jenkins配置git併發布到遠程服務器

 

昨天利用了兩個小時搭建了一套jekins環境用於自動化構建git項目。在這裏和大家分享一下要點。第一個安裝jenkins這裏就不詳細說了,基本步驟就是下載,解壓,配置,啓動。 

當jenkins安裝好之後,我們通過地址訪問,就可以進入jenkins界面。 爲了防止大家走彎路。這裏優化一下配置步驟。

一。 安裝插件

在後面配置的時候,很多功能都需要插件實現。這類一次性說清楚。 安裝插件的位置是在頁面上點擊左側的系統管理-插件管理-可選插件,剩下的右上角輸入關鍵字 搜索就行。

 

三個必裝插件:

Maven Integration plugin : 用於創建maven項目,否則你項目的時候沒有maven這個選項

Git Parameter Plug-In: 用於設置git參數,這樣就可以選擇git分支進行構建

Publish Over SSH:非常重要的一個插件,用於把打好的包發到遠端服務器,同時需要配置和遠端服務器的免密登錄

Role-based Authorization Strategy:基於角色的管理,可以設置不同的角色,對角色授權,設置訪問權限

在右上角輸入關鍵字,搜到以後,直接安裝就行了。 

二。 配置遠端服務器。

這個時候我們需要配置一臺遠程服務器,也就是我們要把項目部署到的那臺服務器。就是通過Publish Over SSH插件實現的

點擊左側菜單的系統管理--選擇第一個系統配置,然後拉到最下面。

配完了之後,點一下 TestConfiguration, 肯定會出現一排紅字,大概的意思就是訪問不到目標主機,這是肯定的,只配置一個用戶名怎麼可能就能訪問到對應服務器呢。所以我們需要給jenkins這臺服務器配置一個免密登錄,可以登錄到我們的目標主機上。

這裏在明確一下目標主機。 我們整個jenkins的流程是這樣的,jenkins這個服務器,假設ip是 192.168.1.1 他會通過我們配置的git賬號和地址,去git上拉去代碼,然後通過maven命令打成一個jar包或war包,然後把它發送到要部署的機器上,假設ip是192.168.1.2 。所以192.168.1.2就是我們的目標主機,那麼192.168.1.1 必須可以登錄到192.168.1.2, 才能把jar包傳過去,所以我們要配置免密登錄。 

方法,由於上面已經生成了祕鑰,如果沒有,參看我下面創建任務那部分開始說的準備祕鑰地址(https://www.cnblogs.com/wyl090512/p/9887795.html)去配一下。然後在jenkins主機上,也就是我例子中的192.168.1.1執行命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub "[email protected]"

之後會要求我們輸入192.168.1.2的密碼,輸入一下。 即可。就完成了免密配置。

在點擊一下 TestConfiguration, 如果顯示綠色的success 就代表已經可以連接成功了

 

 

三。創建任務

我這裏的任務就是使用jenkins從git上下來一個springboot項目,然後打包,發佈到遠程服務器上,啓動這個項目。本篇文章也是基於此處進行的配置。

在開始之前,我們需要準備一個git賬號,要求就是使用這個git賬號可以從git上拉取項目,同時,需要在jenkins所在的機器上,生成一個祕鑰,並將祕鑰粘貼到git賬號的設置當中。這一步我想用過git的應該都設置過。如果沒有設置過,請參照:https://www.cnblogs.com/wyl090512/p/9887795.html,注意是在jenkins所在的機器上生成。也就是將jenkins機器上 .ssh下面的祕鑰粘貼過去。

接下來開始創建項目。點擊左側導航欄上第一個,新建任務。選擇maven,如果沒有maven項目,參看第一步,沒有安裝maven那個插件。

點擊確定。

四. 配置

4.1 接下來進入配置頁面。首先是一個描述的輸入框,可以隨便寫點什麼,比如你要部署到那一臺服務器。

 

4.2  配置參數。 

在下面的參數化構建中,加入幾個參數,可以理解成我們定義的一些常量,方便jenkins後面可以直接使用。首先我們需要先配置一個git branch參數,這個參數的作用就是當我們構建的時候,可以動態指定git分支,如果你沒有這個參數,還是參照第一步,看看插件是不是沒有裝。安裝成功後,在點擊添加參數的時候就會有一個git參數的選項。 

 

這裏給出我配置好的一些參數。大家可以參考。

 

4.3 配置git

接下來在源碼管理中選擇git, 然後輸入git地址,要注意這個不是瀏覽器的地址,而是我們的資源地址,就是你用git clone命令後面跟的地址,可以在git網站上直接複製到粘貼板的那種。 

下圖給出gitlab網站上粘貼項目地址的位置

然後還要配置一個Credentials(憑證),這個就是你的git賬號的用戶名和密碼,沒有的話直接添加一個,點擊添加就會彈出一個頁面,輸入用戶名密碼即可。 要注意,我上面說過的,這個賬號要確保具有拉取代碼的權限。

 

3.4 配置打包命令:

下面兩項用默認就行

然後需要一個打包命令,

這個會maven的應該都能看懂。就是執行maven中的clean package命令,並且跳過測試。

4.4 配置發送到遠程服務器

由於我們上面已經配置好了免密登錄。在 postSteps中選擇下圖中選項

選紅的。然後配置

第一個name是個下拉選項,會自動有我們上面配置好的免密的ip,可以在上面配多個,這裏選其中一個,發到哪就選哪個。

下面重點解釋一下1234。

1. source files: 帶包我們要發送的文件路徑,是一個相對路徑。也就是我們項目執行完上面配置的clean package後,我們生成的jar/war包的路徑。 比如一般我們打完包之後,生成的文件都在target文件夾下,jar包叫  springboot-test-1.0.0.jar 那這個地方就寫target/springboot-test-1.0.0.jar  這個target是相對我們的項目名稱而言的,而我在這裏則使用了變量${JAR_PACKAGE_NAME} 大家可以去上面找一找,就是我上面配置好的一個變量,也就是jar包的名字

2. remove prefix: 要去掉的前綴,1我們配置了要發送的文件路徑,在target/springboot-1.0.0.jar , 這一步把前綴去掉,配置target,代表我們只發送springboot-1.0.0.jar   這裏要注意,如果你是複合式maven項目,這裏可能就需要配置多層,從根項目開始一直到你的jar所在的路徑。

3. 這裏代表把這個jar包發送到目標服務器上的那個目錄下。如果你是tomcat發佈war包,就寫tomcat下面的webapps, springboot就寫你要發佈的地方,反正執行完,你就去這個路徑下找你的文件就行了。

4. exec command : 執行的命令,包發過去了,是不會立即啓動的,所以我們需要執行一個命令。 寫一段腳本就可以了。 

比如: cd /opt/tomcat/bin && sh start.sh   這類的,代表你要執行的命令。

如果你是springboot項目,那最好事先準備好一個啓動腳本,然後在這裏執行這個啓動腳本就行,同時注意,這裏最好寫重啓命令,就是先把原服務kill掉,在啓動。這類腳本網上很多,如果需要可以私信聯繫我

好了到這裏,配置基本上就完成了。

這裏再說一個點,執行的腳本中有幾個注意事項。

1. 一定要給這個腳本賦一個執行權限。  chmod +x 腳本.sh

2. 腳本中有可能讀取不到項目中的環境變量,比如java命令, 最好使用絕對路徑啓動: 

如  /usr/local/java/bin/java -jar xxx.jar

 

五。 構建項目。

點擊進入到你要執行的項目中,點擊菜單左側: Build with Parameter

第一個紅框選擇你要部署的git分支,第二個是選擇profile參數,要注意這個參數是需要傳到腳本中,通過--sping.profiles.active指定的,這樣可以實現靈活部署。

 

好了,時間比較倉促,本次分享就到這裏了,可能有一些描述不夠詳盡的地方,如果大家對於這裏有一些疑問歡迎私信我。

 

 

 

 

五。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章