天天看點

使用gitlab, jenkins搭建CI(持續內建)系統(1) -- 準備環境

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

繼續閱讀