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

1. 環境設計java

    搭建一個從開發到測試知道發佈上線能夠自動換完成的CI系統。這個系統中包含4個環境。git

  開發(dev)環境: 碼農使用。github

  測試(test)環境: 測試人員使用。spring

  預發佈(prepublish)環境: 預發佈環境,用於上線前的最後驗證。centos

      正式(realpublish)環境: 正式上線運行環境瀏覽器

  

  我指望的效果是這樣的:springboot

  代碼推送到master分支,自動構建、部署到devbash

  代碼推送到test分支, 自動構建、部署到testmvc

  test上測試經過後,在jenkins中手動觸發relase分支構建, jenkins自動將test分支代碼合併到release上, 而後構建、部署到prepublishssh

      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是 git@192.168.1.35:examples/example-springbootmvc.git

   

  2.4 讓jenkins所在的主機能夠免密碼登陸到其餘的主機上

  生成ssh key

  ssh-keygen

  將公鑰copy目標主機上,而後ssh登陸異常

  ssh-copy-id root@192.168.1.41

  ssh root@192.168.1.41

  重複這兩個步驟,配置好42, 43, 44, 45, 46這幾個主機。

相關文章
相關標籤/搜索