iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0
自我挑戰組

DevOps學習之旅系列 第 10

Day 10 Jenkins CI/CD 伺服器(二)

簡介

上一篇介紹了使用 Jenkins 來做 CI 流程,這篇來部署到正式機或QA主機,我們會使用到 SSH Key 來讓 Jenkins 專案可以控制正式機或QA主機,並且使用更新腳本來讓主機更新.

Jenkins SSH key 設定

Jenkins 創建 SSH key

ssh jenkins_domain.com
sudo su - jenkins
ssh-keygen

取得私鑰

cat ~/.ssh/id_rsa

取得公鑰

cat ~/.ssh/id_rsp.pub

Jenkins 增加 SSH 金鑰

螢幕快照 2018-08-22 下午3.41.15.png
螢幕快照 2018-08-22 下午3.41.29.png
螢幕快照 2018-08-22 下午3.42.01.png

複製 Jenkins ssh key,到主機端設定

ssh server_domain.com  #登入服務主機
ssh-keygen  #創建 ssh 設定檔
vim ~/.ssh/authorized_keys #貼上Jenkins ssh key #設定驗證 Key
chmod 700 ~/.ssh  #設定 ssh 資料夾權限
chmod 640 ~/.ssh/authorized_keys #設定驗證key 檔案權限

測試登入是否正常

ssh account@server_domain.com

更新腳本

更新三步驟:

  1. 下載最新的程式碼
  2. 關閉服務
  3. 開啟服務
ssh account@server_domain.com 'cd project;git pull'
ssh account@server_domain.com '/home/project/ithome_pellok_2018/supenv/bin/supervisorctl -c /project/ithome_pellok_2018/supervisor.conf stop all'
ssh account@server_domain.com '/project/ithome_pellok_2018/supenv/bin/supervisorctl -c /project/ithome_pellok_2018/supervisor.conf start all'

https://ithelp.ithome.com.tw/upload/images/20181011/20072651BWo59LQXh5.png

結論

以上是基本的專案 CI/CD 的過程,在這邊沒有用到多複雜的工作,只是把平常在做的事情都使用 Jenkins 來自動化,光是這個就可以解放很多時間,讓我有更多的時間專注在下一個可以自動化的事情上,不用一天到晚被要求要更新主機等雜事上面.做到這邊團隊已經有感覺到方便了,因為同事開發已經不用請我幫忙更新主機,只要他們寫好程式碼,提交到遠端 Bitbucket ,就會自動測試部署到測試主機,QA 人員可以馬上進行測試,而我呢就有更多的時間(偷懶).

參考

pyramid deploy


上一篇
Day 9 Jenkins CI/CD 伺服器(一)
下一篇
Day 11 ELK 收集系統Log
系列文
DevOps學習之旅30

尚未有邦友留言

立即登入留言