DevOps課程-Jenkins 24自研
記得前篇有搞RH帳號訂閱,這篇實驗完要解訂閱狀態!
回到Jenkins的agent的官方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
所以這邊改一下Terraform的SG設定:
上面一個ingress是指給Slave為master提供22 PORT進去
下一個ingress是另外給5001讓master連進去
由於建立順序問題,我只能先寫死
然後更新一下上面的Terraform Code
接著回到Jenkins的agent建立步驟,回到Master的Web建立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
然後關掉!