在滴滴雲 DC2 伺服器上搭建 Gitlab+Jenkins 的整合環境

java06051515發表於2018-11-29

前言

GitLab 是使用 Git 作為程式碼管理工具,並在此基礎上搭建起來的 Web 服務。GitLab 含有全部歷史記錄和修訂追蹤能力,不依賴於網路連線或中心伺服器。其最大特色就是“分支”及“合併”的操作非常快速、簡便。

作為目前使用最為廣泛的程式碼管理工具之一,GitLab 被人們廣泛使用。而針對 GitLab,也存在很多種自動化整合部署的解決方案。

本文將簡單介紹如何使用 Docker 的方式搭建簡單的  GitLab+Jenkins  的整合環境,一起來看看吧。

準備

本文基於 滴滴雲 通用型雲伺服器,具體配置為:CentOs7.4;4核 CPU;8GB 記憶體;40GB 普通雲盤,如下圖。

安裝 Docker

工欲善其事必先利其器,首先將 yum 更新到最新版本。

  $   sudo yum  update

安裝需要的軟體包, yum-util 提供 yum-config-manager 功能,另外兩個是 devicemapper 驅動依賴的。

  $   sudo yum  install  - y   yum - utils  device - mapper - persistent - data  lvm2

設定 yum 源

  $   sudo  yum - config - manager  -- add - repo  https : //download.docker.com/linux/centos/docker-ce.repo

安裝 Docker-ce

  $   sudo yum install  docker - ce

安裝 Docker

  $   sudo yum  install  < FULLY - QUALIFIED - PACKAGE - NAME >

  例如: sudo yum install  docker - ce - 17.12.0.ce


啟動 Docker

  $   sudo systemctl start  docker

 

Docker 安裝完成之後就可以開始安裝 GitLab 和 Jenkins 了。

拉取並啟動 GitLab

拉取 GitLab Docker 映象

  $   sudo docker pull  gitlab / gitlab - ce : latest

啟動GitLab

這樣一個簡單的 GitLab環境就搭建成功了。

安裝 Jenkins

下載 Docker 的 Jenkins 映象

  $   sudo docker pull  jenkins : latest

啟動 Jenkins 的 Docker 映象

  $   sudo docker  run  - d  -- name  myjenkins  - v   $ HOME / jenkins :/ var /

  - p   8888 : 8080  - p   55000 : 50000  - p   45000 : 45000   jenkins : latest


首次登入Jenkins,要求輸入  Administrator password 。由於 Jenkins 執行在 Docker 中,應當先按如下命令進入此 container 的 bash,再按照提示的路徑即可找到。

  $   docker  exec  - it  < CONTAINERID bash

  $   cat  / var / jenkins_home / secrets / initialAdminPassword


生成 Jenkins 的 SSH KEY

登入成功後,按提示安裝預設外掛,這會耗費幾分鐘時間,我們在這段時間裡可以生成一下  SSH KEY  以供後面的配置使用。

  $   ssh - keygen

配置 GitLab

登入 GitLab 建立自己的專案(此過程不再贅述),並將生成的 Jenkins 的公鑰配置到 GitLab 中。

建立 Jenkins 任務

在 Jenkins 中建立一個新任務,具體配置如下。

General

勾選 GitHub 專案,填寫專案 URL。

原始碼管理

勾選 Git,填寫 Repository URL,並新增擁有訪問許可權的使用者。

Repository URL:專案的 Git 地址。
Credentials:點選Add按鈕新增使用者(使用者名稱密碼和SSH兩種方式均可)。
Branch Specifier (blank for ‘any’):選擇要 checkout 的 Git 分支。

構建觸發器

勾選觸發遠端構建,輸入下列命令生成 token,將生成的 token 填寫在身份驗證令牌處。

  $   openssl  rand  - hex   12

 

其他配置項

構建環境、構建、構建後操作請根據專案實際需求填寫。

配置 Webhooks

新增

開啟 Git 專案的 Integrations 配置項,按如下要求填寫:
– URL 地址:TOKEN_NAME 即上述生成的 token。
– Trigger:指觸發規則,即什麼時候請求上述 URL 進行構建,根據實際需求勾選。

測試

新增成功後,在當前頁點選 Test 下拉框,選擇觸發型別進行測試,即可在 Jenkins 中看到一項構建任務被觸發了。

可能存在的問題

測試 GitLab Webhook 時,可能會出現通訊問題,原因時 Jenkins 本身禁止跨站點請求。

解決辦法:

進入 Jenkins-系統管理-Configure Global Security

勾選:Allow anonymous read access

取消勾選:防止跨站點請求偽造

結語

至此,一個簡單的  GitLab+Jenkins  的整合環境就搭建好了。由於篇幅有限,未能詳盡的介紹 Jenkins 的強大功能以及支援的複雜場景, 滴滴雲 將在未來為大家奉獻上更加詳盡的技術資料,敬請期待!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2221776/,如需轉載,請註明出處,否則將追究法律責任。

相關文章