DevOps課程-Jenkins 15

AWS Services課程建立EC2 instance(redhat Linux Base)來做Jenkins被佈署機台

ZONGRU Li
Feb 2, 2022

Jenkins Server要控制被佈署機台執行佈署,需要透過額外的外掛

SSH Agent

所以首先要在Jenkins上面安裝SSH Agent的Plugin:

安裝成功!

接著我重新建立一個新的multi-branch-pipeline:

Job內容依樣使用到既有的github的Repo(參考之前前面其他Job設置):

接著準備好對應上述的Jenkinsfile:

直接選用既有的branch:

然後在該branch最外層加入檔案 →JenkinsfileEC2

這時候要改造上述JenkinsfileEC2中的deploy來執行docker run指令

執行的Jenkins語法可以到以下頁面參考:

該頁面就不用保留了

並且我們需在該新的Jenkins Job內建立Job可以使用的憑證連向EC2的機台

最後改寫如下:

完整pipeline如下:

Commit進剛剛的Branch內:

然後執行前記得開通AWS的EC2那邊的防火牆,允許Jenkins Server連過去:

然後就可以嘗試執行了:

到這邊發生錯誤:

改寫前面宣告的agent none改成agent any:

然後又很悲劇的失敗了,發現指令有打錯:

StrickHostKeyChecking應該改成StrictHostKeyChecking

上面有一個字母不一樣,所以變為:

一樣commit進到github上再執行看到:

連到該EC2機台上確認是否有容器在跑:

這樣就完成了Jenkins Server透過ssh agent功能

去被佈署機台執行佈署容器的工作

同理也能夠執行jar/war等等才對!

並且再加上前面學到的打包,其實可以做完

拉Code →打包Jar →打包image →推image到hub →

被佈署機台拉image並run

最後記得手動關掉:

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet