Gitlab runner install & setting

之前忘記整理一下,寫來記錄

網路上可以找到不少安裝設定的方式,例如這篇這篇

我在 ubuntu 18.04 & 20.04 等幾台機器上都安裝過,因為時間點的不同所以安裝的方式也不太一樣(看當時 google 到甚麼而定 XD ),然後有些也遇到些問題,整個看來以下的方式會比較順利一些。

安裝與註冊 runner

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
apt-get install gitlab-runner
gitlab-runner register

register 時會要求輸入 gitlab 網址,token 跟 executor (通常是用 shell)。

nano /etc/gitlab-runner/config.toml

config.toml內容應該會長得類似下面這樣

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "your-runner-name"
  url = "http://YOUR_GITLAB_URL/"
  token = "RUNNER-TOKEN"
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

gitlab-runner 權限設定

然後要把 gitlab-runner 加入 no pwd sudo user

nano /etc/sudoers
### skip lines
gitlab-runner ALL=(ALL) NOPASSWD: ALL

然後要記得把 gitlab-runner 加入 sudo 權限

sudo usermod -a -G sudo gitlab-runner

不確定權限是否正確的話應該檢查一下 /etc/passwd 跟 ,應該分別有這樣一行

# /etc/passwd
gitlab-runner:x:999:999:GitLab Runner:/home/gitlab-runner:/bin/bash

# /etc/group
gitlab-runner:x:999:

最後重啟 service

service gitlab-runner restart

然後就可以編輯 repo 內的 .gitlab-ci.yml 來做 ci/cd 了

其他參考文章

https://medium.com/nick-%E5%B7%A5%E7%A8%8B%E5%B8%AB%E5%AD%B8%E7%BF%92%E8%A8%98/%E6%95%99%E5%AD%B8-gitlab-ci-%E5%85%A5%E9%96%80%E5%AF%A6%E4%BD%9C-%E8%87%AA%E5%8B%95%E5%8C%96%E9%83%A8%E7%BD%B2%E7%AF%87-ci-cd-%E7%B3%BB%E5%88%97%E5%88%86%E4%BA%AB%E6%96%87-cbb5100a73d4
https://ithelp.ithome.com.tw/articles/10219427
https://stackoverflow.com/questions/19383887/how-to-use-sudo-in-build-script-for-gitlab-ci