一、先介紹正向代理和反向代理
正向代理
反向代理
二、安裝反響代理得到固定域名
三、Jenkins與Github集成
配置前要求:
1.Jenkins已經安裝Github插件
2.Jenkins服務器已經擁有一個公網IP地址(如果沒有公網IP則需要安裝反向代理進行獲取域名)
第一步:github授權,關聯項目
登錄github---->setting---->Developer settings--->Personal access tokens

Generate new token(選repo,admin:repo_hook)

拉到下面確定生成token

第二步:配置Jenkins全局
盡管Jenkins已經配置與Github代碼庫進行通信,但我們需從Jenkins手動啟動構建,如需啟動自動構建,Jenkins需要在Hook URL中監聽Github的Post請求,才會進行自動構建
要獲取Jenkins的Hook URL,打開Jenkins首頁控制台--》系統管理
在Github插件的配置中,點擊“高級”按鈕
啟用Hook URL,並將Hook URL復制出來,並保存剛才的設置
第二步:配置Github項目倉庫
還需要配置Github項目倉庫,因為Github經常有代碼處理動作,需要配置Github項目倉庫在處理這些動作的同時會發送信號至Jenkins,才使用Jenkins自動構建
在"Webhooks"選項卡中,點擊"Add webhook"
將在Jenkins生成的Hook URL填入至Payload URL中,另外,選擇自主事件
以Push為例,並保存,即當Github收到了客戶端有Push動作時,會觸發一個Hook
保存WebHook之后
第三步:配置Jenkins項目
最后需要配置Jenkins項目觸發的條件,到此刻,Github遇到Push事件時,Jenkins會收到通知,但Jenkins應該做什么呢?此步驟就是做最后的構建的動作。
登錄jenkins,系統管理,系統設置,找到Github服務器



保存
jenkins創建任務

任務配置





先save保存,目前為止jenkins已成功與github項目關聯了,如果push代碼到github上,jenkins就可以得到通知了,關於得到通知后下一步怎么更新服務器上的代碼並重啟項目,看這里jenkins+docker+github實現項目自動部署(下)
緊接上文,本文實現push代碼到github,服務器自動更新代碼並重啟
想要更新服務器的代碼有很多方式,比如如果你項目是java web項目,你可以打包成war包,再發送到服務器的tomcat文件夾下。
我這里采取的方式是在項目里寫一個啟動腳本,啟動腳本里git pull拉取最新代碼,這樣來更新代碼,然后腳本里重啟項目,以springboot項目為例,腳本代碼如下:
#!/usr/bin/env bash
git pull #更新代碼
#后面這些不重要,就是一些啟動項目的指令,別復制了,會有問題的,
#反正就是把項目的啟動指令放這了,比如java -jar 或者打war包,然后mv xxx.war 到tomcat里
proj_home=$PWD
img_output="demo"
#更新依賴
mvn clean package -U
docker build -t $img_output .
docker rm -f demo
docker run -d --restart=on-failure:5 --privileged=true \
-p 8080:8080 \
--name demo demo \
java \
-Duser.timezone=Asia/Shanghai \
-jar /home/demo.jar
好了,現在啟動腳本有了,那么怎么讓jenkins在知道有代碼push時怎么執行這個腳本呢?
回到jenkins,我們需要裝個ssh插件來遠程登錄服務器,運行腳本
系統管理----》插件管理


刷新一下,重啟中,等待片刻

系統管理----》系統配置,如果插件安裝成功的話,會多一個這個配置

保存
繼續完成上一篇尚未完成的任務配置




保存,至此所有配置都已完成,可以點這里測試一下,是否能重啟項目



如果這樣能成功啟動的話,可以試一下push代碼看看是否能自動觸發