DevOps系列GitLab-CICD(三)之安裝git-runner-docker安裝方式



背景

本節是繼DevOps實例演示的第四篇文章, 在上一篇文章中, 我們已經成功安裝部署了GitLab 並且安裝了GitLab-Runner,初步完成了我們的DevOps的第一步需求, 本篇文章目的在於再向大家介紹一種git-runner的安裝, 在閱讀本篇前,筆者強烈建議先閱讀上篇
DevOps系列GitLab-CICD(二)之安裝git-runner-rpm安裝方式

聲明: 在本文以及本系列文中, 不會涉及公司內部相關內容,旨在能幫助到和我一樣摸着光亮前進的人。
備註: 在閱讀本章節前, 若您掌握有一定的git命令Linux以及Docker知識將更容易理解。

介紹/區別

在上一篇文章中, 我們說講到了, 比較常用的git-runner的安裝方式就是shell以及Docker. 那麼他們有什麼不同點呢?
先看一下我們在註冊git-runner的那一條選項有什麼區別

#shell方式

Please enter the executor: docker+machine, kubernetes, docker, parallels, shell, ssh, virtualbox, docker-ssh+machine, docker-ssh:
shell
#docker方式

Please enter the executor: docker+machine, kubernetes, docker, parallels, shell, ssh, virtualbox, docker-ssh+machine, docker-ssh:
docker
# -----可以看到, 當我們選擇了docker之後, 會多一個選項(選擇一個docker鏡像)
Please enter the default Docker image (e.g. ruby:2.1):
# -----因爲筆者要對java進行編譯打包, 在這選擇一個已經包含基本環境`maven:3-jdk-8`的鏡像
maven:3-jdk-8 (針對於java環境)

從上面我們已經看到一條區別了, 那麼下面我們再具體說一下, 區別:

  • 第一點:因爲我們在runner的時候需要不同的環境, 比如你要runner的是Java你可能會需要依賴JDK以及Maven環境, 如果你runner的是前端, 你可能需要依賴node以及npm環境.

    • shell模式: 依賴環境都需要自己提前在服務器上面安裝,配置好
    • docker模式: 依賴環境可以直接通過現有的docker鏡像進行部署
  • 第二點: 如果服務器有限, 或者不想太多的資源浪費, 那麼可以選擇docker部署

  • 第三點: 如果在整個CI的pipeline過程中, 每個階段的產物你可能在下一個階段會用到, 比如build完的jar或者一些其他資源, 在後續步驟中你用到, 那麼選擇shell模式會比較理想一點,因爲可以少去很多配置, 如果docker模式的話, 完成一系列操作, 你可能需要費點勁去掛載目錄, 然後你後續再從掛載的目錄下獲取pipeline的一些成果.

安裝

在上一篇我們的安裝比較詳細, 在該篇文章中, 會涉及到不少重複的步驟, 會省略.

系統

CentOS Linux release 7.5.1804 (Core) 

安裝Docker

請參考筆者的有道雲筆記

Docker版本

[root@gitlab-runner-64 ~]# docker version 
Client:
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:48:22 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:19:08 2018
  OS/Arch:          linux/amd64
  Experimental:     false

啓動gitlab-runner

docker run -d --name gitlab-runner --restart always \
   -v /srv/gitlab-runner/config:/etc/gitlab-runner \
   -v /var/run/docker.sock:/var/run/docker.sock \
   gitlab/gitlab-runner:latest

或者可以使用第三方存儲valume的啓動方式

docker run -d --name gitlab-runner-config \
     -v /etc/gitlab-runner \
     busybox:latest \
     /bin/true

docker run -d --name gitlab-runner --restart always \
     -v /var/run/docker.sock:/var/run/docker.sock \
     --volumes-from gitlab-runner-config \
     gitlab/gitlab-runner:latest

註冊(配置和參考上一篇)

docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner register

執行完成之後,會有以下文件生成/srv/gitlab-runner/config

[root@gitlab-runner-64 ~]# cat /srv/gitlab-runner/config/config.toml 
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-runner"
  url = "http://xxxxxxx/"
  token = "xxxxxxxxxxxxxxxxxxxx"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "golang:latest"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

查看是否已經註冊完成

在這裏插入圖片描述

到這裏, 以及和上一篇文章一樣了, 剩餘後續的pipeline工作, 在這裏就不在多多贅述了,
同時呢, 我們Devops過程中第一步也就介紹到這裏了. 下面的一個系列是關於第二步驟中的Cd自動部署部分

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章