DevOps課程-Jenkins 24自研

嘗試Jenkins Master Slave架設-一般安裝Jenkins連動容器的Jenkins Slave(失敗)

ZONGRU Li
7 min readMay 16, 2022

記得前篇有搞RH帳號訂閱,這篇實驗完要解訂閱狀態!

回到Jenkinsagent的官方doc流程

前面我已經因為在實體Slave VM要用的憑證做完以下這步驟:

接著要在Slave機台上跑起Slave的container參考:

#實際Slave起Container指令就變成:
docker run -d --rm --name=agent1 --network jenkins -p 5001:22 `
-e "JENKINS_AGENT_SSH_PUBKEY=[your-public-key]" `
jenkins/ssh-agent:jdk11

另外上面還要帶前面私鑰對應的公鑰,所以實際指令:

#實際指令改為如下(是一行喔!),並且用root運行:
sudo docker run -d --rm --name=agent1 -p 5001:22 \
-e "JENKINS_AGENT_SSH_PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzp6aJXz5eLR6RU39IwGQcJTEujPksP+UIhBPQcYkG+oOhSmKMNaLHj688Ues8P7Lb+kxyDf96OZaXlyjbDVDKvWNLGXtbY/KZJRa4dnjhdcEU529fKM3Fqbo5aujnqhdJefF59zPuzq+POuSZKEKSL4Mhx8ggh7gNnuEjrh/rtrgds695byQqGC1Aj1ORoy1UlOtYn3SXONRkoBoAce51msSVgWbU6EOEgB3OvcvlZvg2vZVYcy9Fe3WohgfKBrBmuaBcZxIPxxcxZUZwVpEoZRVJB2/uv3jrd6DOcDbdVBaPEHiEnzcPobLtDJ3wBa2acW90jMm6Kl85ElAWhuG4P//q2lYlQQ0lHfH4mpRaWhuLbgpy6OFQPfun/K3JPBJ9Z0h/T6/GvJTxy2fs1Fk//mZjW6spVCNtRHmeLtp2A5jNWf5ZYRTpdhQmOWIWz4hc4mddUsBU5TcLR4ORED1+CsB3t5KKvwd0558ZcMXzn7cRdYSrV+HW5csBiLFCshk= root@ip-10-0-10-76.ap-northeast-1.compute.internal" \jenkins/ssh-agent:alpine

接著還要跑這一段給設定:

#整理指令如下,依樣在Slave機上跑:
VARS1="HOME=|USER=|MAIL=|LC_ALL=|LS_COLORS=|LANG="
VARS2="HOSTNAME=|PWD=|TERM=|SHLVL=|LANGUAGE=|_="
VARS="${VARS1}|${VARS2}"
sudo docker exec agent1 sh -c "env | egrep -v '^(${VARS})' >> /etc/environment"

由於要開通Slave機要開5001防火牆給master機連線調度container agent

所以這邊改一下TerraformSG設定:

上面一個ingress是指給Slavemaster提供22 PORT進去

下一個ingress是另外給5001master連進去

由於建立順序問題,我只能先寫死

然後更新一下上面的Terraform Code

接著回到Jenkinsagent建立步驟,回到MasterWeb建立Node頁面開始:

點開那個進階可以看到:

改一下:

其他就如上,然後儲存!

後來ssh連不上,有調整這邊:

#改成:
docker run -d --rm --name=agent1 -p 5001:22 \
-e "JENKINS_AGENT_SSH_PUBKEY='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzp6aJXz5eLR6RU39IwGQcJTEujPksP+UIhBPQcYkG+oOhSmKMNaLHj688Ues8P7Lb+kxyDf96OZaXlyjbDVDKvWNLGXtbY/KZJRa4dnjhdcEU529fKM3Fqbo5aujnqhdJefF59zPuzq+POuSZKEKSL4Mhx8ggh7gNnuEjrh/rtrgds695byQqGC1Aj1ORoy1UlOtYn3SXONRkoBoAce51msSVgWbU6EOEgB3OvcvlZvg2vZVYcy9Fe3WohgfKBrBmuaBcZxIPxxcxZUZwVpEoZRVJB2/uv3jrd6DOcDbdVBaPEHiEnzcPobLtDJ3wBa2acW90jMm6Kl85ElAWhuG4P//q2lYlQQ0lHfH4mpRaWhuLbgpy6OFQPfun/K3JPBJ9Z0h/T6/GvJTxy2fs1Fk//mZjW6spVCNtRHmeLtp2A5jNWf5ZYRTpdhQmOWIWz4hc4mddUsBU5TcLR4ORED1+CsB3t5KKvwd0558ZcMXzn7cRdYSrV+HW5csBiLFCshk= root@ip-10-0-10-76.ap-northeast-1.compute.internal'" \jenkins/ssh-agent:alpine#後面接著:
VARS1="HOME=|USER=|MAIL=|LC_ALL=|LS_COLORS=|LANG="
VARS2="HOSTNAME=|PWD=|TERM=|SHLVL=|LANGUAGE=|_="
VARS="${VARS1}|${VARS2}"
sudo docker exec agent1 sh -c "env | egrep -v '^(${VARS})' >> /etc/environment"

不過最後還是看到:

爬文看到(LINK)

可能因為我有重啟機台,所以

sshd_config設定跑掉

不過後來還是沒辦法ssh連線

連在slave要連上自己的5001 PORT的container也沒辦法!

最後Slave機先解除RH的訂閱註冊:

#執行以下指令解除訂閱:
sudo subscription-manager remove --all
sudo subscription-manager unregister
sudo subscription-manager clean

然後關掉!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet