星期六, 11月 19, 2016

Jenkins farm on Docker

單獨一部 Docker based Jenkins 不稀奇:
  • docker run -d --name jenkins -p 80:8080 jenkins
假設開起來了,查一下配到的 IP:
  • docker inspect jenkins | grep IPAddress
這裡得到的結果是 172.17.0.2,用瀏覽器訪問 http://localhost 與 http://172.17.0.2:8080 的結果應該是一樣的,我們用後者。首先需要 Unlock Jenkins。在 Terminal 下指令:
  • docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
再把結果複製,貼到網頁裡,接著裝一下眾插件,設好管理帳號,Jenkins Standalone 就可以用了。

接下來要準備讓 Slave 掛上來,首先在 Jenkins 管理介面建一個新 Node,假設取名為 slave1,並設定 Remote root directory 為 /var/opt/jenkins,存檔,再點進去,畫面會像這樣:



點選超連結下載 slave.jar 並移到新建的 ~/share 目錄,然後在 Terminal 下指令:
  • docker run -d --name slave -v ~/share:/var/opt/jenkins:Z -w /var/opt/jenkins java:8-jre-alpine java -jar slave.jar -jnlpUrl http://172.17.0.2:8080/computer/slave1/slave-agent.jnlp -secret 1689af1c531a13800eff7b69113622c383d30b218cf7d28fea1322b3faf651b4
請注意不要抄我的密文,要與網頁上的一致,就能看到最輕量級的 Jenkins Slave 已在待命。

[2016/11/27]
補充不在 Docker 又限制 https,若憑證是自簽或沒有預設信任的狀況下,當然增加信任根憑證是治本之道,不過也可以應急:
  • java -jar slave.jar -jnlpUrl https://172.17.0.2:8080/computer/slave1/slave-agent.jnlp -secret 1689af1c531a13800eff7b69113622c383d30b218cf7d28fea1322b3faf651b4 -noCertificateCheck

沒有留言:

張貼留言