Udemy課程Jenkins 11
為了達成遠端執行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
原本內容如下:
改寫為:
在/home/jenkins/jenkins-data下輸入:
docker-compose build
前面打錯目錄名稱了
重新弄好centos7目錄裡的內容
在一次輸入:
docker-compose build
確認一下
docker images
確認目前的container 輸入:
docker ps
因為要另外輸入(才會重新讀取docker-compose.yml內容):
docker-compose up -d
因為目前的docker-compose.yml有新增
再次確認container輸入:
docker ps
所以現在可以透過以下指令先進到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還是會要你打密碼