返回文章列表

CI 工具鏈 with Docker (3) — 安裝 Jenkins

2017-06-21
1 分鐘
DockerJenkinsCI

系列文章:

安裝 Jenkins CI

Step1. 建立 Jenkins 資料夾並啟動容器

$ mkdir /srv/jenkins
$ sudo chown 1000 /srv/jenkins
$ sudo chmod  775 /srv/jenkins
$ sudo docker run --name jenkins -p 8888:8080 -p 50000:50000 -v /srv/jenkins:/var/jenkins_home -d --restart unless-stopped jenkins

Step2. 取得初始登入密碼

進入 Docker GUI,前往 Containers → jenkins → stdout/stderr,在 STDERR 區找到亂數字串密碼:

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

e956cf3e8a4c4aa392f5396653255d78

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

Step3. 第一次登入 Jenkins

透過 http://<IP/Domain>:8888/ 存取,輸入 Step2 的初始密碼。

Step4. 安裝建議外掛

選擇 Install Suggested Plugin,讓 Jenkins 自動安裝常用外掛。

Step5. 等待外掛安裝完成

Step6. 完成初始設定

Step7. 安裝額外所需外掛

前往 管理 Jenkins → 管理外掛程式 → 可用的,搜尋並安裝:

  • Docker Commons Plugin
  • Docker build step plugin
  • Git plugin
  • Gitlab Hook Plugin
  • Gitlab Merge Request Builder
  • Publish Over SSH
  • Slack Notification Plugin
  • SSH plugin
  • Maven Integration plugin(Maven 專案用)
  • nvm wrapper(Node.js 專案用)

Step8. 等待外掛安裝完成

Step9. 重啟 Jenkins

在瀏覽器輸入 http://<IP/Domain>:8888/restart 並確認。

Step10. 設定 Docker Builder plugin

前往 管理 Jenkins → 設定系統,找到 Docker Builder,將 Docker URL 設為:

http://<IP/Domain>:2376

Step11. 設定 Jenkins 的 SSH 金鑰

$ sudo su
$ cd /srv/jenkins/
$ mkdir .ssh
$ cp /root/.ssh/id_rsa* /srv/jenkins/.ssh/.
$ chown -R 1000 /srv/jenkins/.ssh
$ chmod -R  775 /srv/jenkins/.ssh
$ exit

Step12. 設定 Publish over SSH plugin

前往 管理 Jenkins → 設定系統,找到 Publish over SSH,將 Path to Key 設為 .ssh/id_rsa,並在 SSH Servers 新增遠端主機:

  • Name: [USER]@[IP/FQDN]
  • Hostname: [IP]
  • Username: [USER]
  • Remote Directory: /
  • Port: [ssh port number](展開 Advanced)

Step13. 設定 SSH Plugin

前往 管理 Jenkins → 設定系統,找到 SSH remote hosts,在 SSH sites 新增:

  • Hostname: [IP]
  • Port: [ssh port number]
  • Username: [USER]
  • Keyfile: /var/jenkins_home/.ssh/id_rsa
  • Pty: ✓(勾選)
  • serverAliveInterval: 0

原文發表於 Medium

Command Palette

Search for a command to run...