Udemy課程Jenkins 11

建立額外遠端環境來呼叫Jenkins

ZONGRU Li
5 min readAug 13, 2019

為了達成遠端執行job,現在需要一個不同的環境,有兩個選擇

(1)再建一個新的virtual machine

(2)用docker建新的container

在此直接用(2)新增container的方式來當另外的獨立遠端環境

新增目錄名為centos7並進到該目錄裡

為了建置container,我們需要image,如同先前下在了jenkins image

在此我們自己建置自己的image

為了建image我們要先建一個Dockerfile

vi Dockerfile

其內容將包含ssh server的建立

再來要建ssh key當作private key來做連線用輸入:

ssh-keygen -f remote-key

然後兩次Enter

就會出現兩個檔案

在Dockerfile內新增複製pub key到特定目錄的指令

基本幾個檔案就準備好了

回到/home/jenkins/jenkins-data這個目錄下編輯docker-compose.yml

原本內容如下:

改寫為:

會依據context指定的centos7這個目錄下的東西建置,並且跟jenkins這個容器可以透過network互聯

在/home/jenkins/jenkins-data下輸入:

docker-compose build

前面打錯目錄名稱了

重新弄好centos7目錄裡的內容

確認這些內容正確

在一次輸入:

docker-compose build

開始建立!!
成功建完

確認一下

docker images

確認目前的container 輸入:

docker ps

還沒有remote-host的容器

因為要另外輸入(才會重新讀取docker-compose.yml內容):

docker-compose up -d

因為目前的docker-compose.yml有新增

再次確認container輸入:

docker ps

出現remote-host了

所以現在可以透過以下指令先進到jenkins container內:

docker exec -it jenkins bash

在jenkins容器內輸入指令連到remote-host容器內:

ssh remote_user@remote_host

連打兩次指令離開全部的容器:

exit

在上述狀況下我們看到jenkins容器內可以連到host名為remote_host(如下圖)

再來要使用產生的金鑰連線

在容器外的centos7目錄下輸入:

docker cp remote-key jenkins:/tmp/remote-key

再次進到jenkins容器內輸入:

docker exec -it jenkins bash

在jenkins容器切到tmp目錄下並執行指令:

ssh -i remote-key remote_user@remote_host

上述指令意指透過remote-key來登入remote_host

成功登入! 而且不再要求打密碼!

假設少打-i remote-key還是會要你打密碼

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet