1. 環境設計
搭建一個從開發到測試知道釋出上線可以自動換完成的CI系統。這個系統中包含4個環境。
開發(dev)環境: 碼農使用。
測試(test)環境: 測試人員使用。
預釋出(prepublish)環境: 預釋出環境,用于上線前的最後驗證。
正式(realpublish)環境: 正式上線運作環境
我期望的效果是這樣的:
代碼推送到master分支,自動建構、部署到dev
代碼推送到test分支, 自動建構、部署到test
test上測試通過後,在jenkins中手動觸發relase分支建構, jenkins自動将test分支代碼合并到release上, 然後建構、部署到prepublish
prepublish驗證通過後,在jenkins中手動觸發publish建構,使用release分支代碼, 建構、部署到publish
以上步驟中,在不同的環境中自動使用不同的配置。
2. 環境準備
作業系統:centos7
用虛拟機虛拟出5個主機:
192.168.1.35: gitlab
192.168.1.36: jenkins
192.168.1.41: dev環境
192.168.1.42: test環境
192.168.1.43, 192.168.1.44 prepublish 環境
192.168.1.45,192.168.1.46 realpublish環境
2.1 安裝gitlab, 建立實驗用的project
在192.168.1.35上安裝gitlab, 這個主機需要配置至少4G記憶體,否則gitlab會很慢。
具體安裝過程參考:https://about.gitlab.com/installation/#centos-7
第一步:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
第二步:
sudo EXTERNAL_URL="http://192.168.1.35" yum install -y gitlab-ce
完成之後gitlab将會在192.168.1.35 提供服務
打開浏覽器輸入: http://1192.168.1.35
第一次進入初始化root賬号
建立一個用于建立project的賬号
至此,gitlab環境就準備好了。
2.2 安裝配置jenkins
在192.168.1.36上運作jenkins
安裝jdk8
下載下傳jenkins: http://mirrors.jenkins.io/war-stable/latest/jenkins.war
将jenkins.war放在 /root/jenkins中
啟動jenkins
cd /root/jenkins
./
java -jar jenkins.war --httpPort=80
打開浏覽器輸入192.168.1.36登入jenkins。第一次進入會要求安裝預設的plugin, 安裝完成之後, 建立一個管理者賬号,然後用這個管理賬号重新登入。
系統管理 - 管理插件 - 可選插件 選擇gitlab相關插件進行安裝:
GitLab Plugin
Gitlab Hook Plugin
2.3 建立實驗project 在gitlab中建立一個group: examples
建立一個用于實驗的project: example-springbootmvc。 我在github上有這個用于實驗的project: https://github.com/brandonlyg/examples-springbootmvc.git。可以clone下來,導入到gitlab中。使這個project在gitlab中個url是 [email protected]:examples/example-springbootmvc.git
2.4 讓jenkins所在的主機可以免密碼登入到其他的主機上
生成ssh key
ssh-keygen
将公鑰copy目标主機上,然後ssh登入異常
ssh-copy-id [email protected]
ssh [email protected]
重複這兩個步驟,配置好42, 43, 44, 45, 46這幾個主機。
轉載于:https://www.cnblogs.com/brandonli/p/8367251.html