搭建GitLabRunner和Docker服務端流程

日期:2018-12-14
作者:謝雪晴

搭建GitLabRunner和Docker服務端流程

環境

  1. 一臺裝有ubuntu16.04的DELL機(當前機器編號107)
  2. 固定IP地址(當前固定IP:192.168.16.212
  3. 注意:安裝runner可能需要翻牆,故需要安裝翻牆工具如lanten

步驟

使用安裝包安裝runner

  1. 更新和安裝一些必要軟件

     sudo apt-get update
     sudo apt-get install \
         apt-transport-https \
         ca-certificates \
         curl \
         software-properties-common
    
  2. 下載runner的二進制文件

    # 查看系統信號,當前爲x86-64
     uname -a
     # Linux x86-64
     sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    
     # Linux x86
     sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
    
     # Linux arm
     sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
    
    
  3. 設置權限

    sudo chmod +x /usr/local/bin/gitlab-runner
    
  4. 若使用docker 下載docker

    # 下方命令若不行,需要加上sudo
    curl -sSL https://get.docker.com/ | sh
    # 安裝成功後若作爲一個non-root使用,需要按提示運行命令如:
    sudo usermod -aG docker pi
    

    若有權限問題解決Docker啓動Get Permission Denied

    # To run docker without super user:
    sudo groupadd docker
    sudo gpasswd -a ${USER} docker
    newgrp docker
    sudo service docker restart
    docker ps
    
  5. 創建一個gitlab ci 用戶

    sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
    
  6. runner服務器安裝和運行

    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    sudo gitlab-runner start
    
  7. 註冊runner

    1. 以管理員身份登錄gitlab進入項目,並在seting->CI/CD->Runners settings中查看URL 和 token
      URL和token
    2. 註冊.敲入如下命令,按照提示輸入
      sudo gitlab-runner register
  8. 修改runner配置,將privileged = false 改爲 privileged = true

    # if runner install successfully , /etc/gitlab-runner/config.toml exist
    sudo ls /etc/gitlab-runner/
    # modify the above file
    sudo gedit /etc/gitlab-runner/config.toml
    
  9. 若讓gitlab服務器從倉庫拿image而非本地,執行如下命令(由於現在docker服務器現在在本地,故跳過該步驟
    修改/etc/gitlab-runner/config.toml,在[runner.docker]下添加pull_policy = “always”

  10. 搭建私有倉庫

    1. 運行registry
      docker run -d -p 5000:5000 --restart=always --name registry registry 
      
    2. 修改文件
    • 舊版docker(如17.02),即文件/etc/default/docker存在,且內容不爲空
      修改該文件中的變量DOCKER_OPTS。
      命令如下:
      sudo gedit /etc/default/docker

      內容如下:
      DOCKER_OPTS="–registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.16.212:5000"
      192.168.16.212爲你的Docker倉庫IP

    • 新版docker(如18.09),即文件/etc/default/docker不存在.root權限下執行如下命令,下方命令解決了docker pull報錯問題

      echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json
      systemctl restart docker
      

    注意:/etc/docker/daemon.json不存在,屬於正常情況

結果

  1. 在項目seting->CI/CD->Runners settings中可看到Runners activated for this project中有在第7步添加的runner
  2. 可以將docker image上傳至該服務器,並能從該服務器下載image
  3. 當ci使用了服務器上的docker時可正常運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章