【From】http://muchstudy.com/2018/07/13/Gitlab-8-x-runner%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
介紹
Gitlab 8.x之后默認集成了Gitlab CI,意味着支持了持續集成相關功能。每一次集成操作都需要對應的runner來跑代碼構建、測試、發布等操作。Runner實際上就是為Gitlab的持續集成指定一個環境。
安裝
Gitlab Runner的版本需要跟Gitlab對應,這里有一個對照表。最新的版本對照表中並沒有Gitlab8.X對應的Runner版本,查了一下Gitlab8.X對應的Runner版本為1.X,所以這里選擇runner 1.11.2版本。
這里運行Gitlab與Runner的環境均為CentOS,之前嘗試在windows上安裝runner,對接Linux上的Gitlab,發現在Gitlab runner運行的控制台出現亂碼問題。
0.准備
在opt下創建gitlab-runner目錄並進入該目錄,后續執行的操作與所有的資源都放在這個目錄中
1 |
cd /opt |
1.下載
下載安裝資源到gitlab-runner目錄中
1 |
sudo wget https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v1.11.2/binaries/gitlab-ci-multi-runner-linux-386 |
2.添加運行權限
1 |
sudo chmod +x gitlab-ci-multi-runner-linux-386 |
3.創建用戶
1 |
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash |
4.安裝
1 |
./gitlab-ci-multi-runner-linux-386 install --user=gitlab-runner --working-directory=/opt/gitlab-runner |
配置
經過上面的步驟,Runner就已經跑起來了,剩下的還需要Runner與項目對接起來。Runner的類型分為Shared, specific and group Runners。這里選擇specific類型,即單獨的項目使用。
在Gitlab項目的setting-runner中,配置過程中會使用到url和token如下所示:
1.運行register命令
1 |
./gitlab-ci-multi-runner-linux-386 register |
之后就按照提示就行了
2.輸入url地址
3.輸入token
4.輸入描述,任意即可
5.輸入標簽,這里直接Enter跳過
6.選擇Runner executor,這里選擇shell
到這里就已經注冊成功了,輸入./gitlab-ci-multi-runner-linux-386 list就能看到上面的注冊的條目。
官方文檔地址:https://docs.gitlab.com/runner/register/index.html
其它
上面兩個步驟做完后,此時按理說Gitlab就能調用Runner跑持續集成了,實際當中還會碰到其它問題,整理如下。
權限問題
如果在Gitlab的Build控制台上報無法創建文件夾、無法運行bash等,證明創建的GitLab Runner權限不夠。
此時,我這里是修改GitLab Runner的權限跟root保持一致。
1 |
vim /etc/passwd |
通過上面命令可以編輯用戶對應的權限,我這里打開默認為gitlab-runner:x:601:601:GitLab Runner:/home/gitlab-runner:/bin/bash,權限組修改為跟root的一致gitlab-runner:x:0:0:GitLab Runner:/home/gitlab-runner:/bin/bash。(root的權限組名為0)
這里在另外一台機器上還碰到這樣修改了也不好使的問題,最終gitlab-runner install的時候,直接指定為root,而不新創建用戶。
環境問題
由於Runner運行需要環境支撐,比如git、node、npm等,需要在Runner所在的服務器上准備好所有的依賴。
- Linux Node安裝
1 |
# 下載 |
此時,輸入node -v就能看到node的版本了。
使用軟連接方式可能對非root用戶無效,可以轉而使用配置環境變量的方式
1 |
# 修改配置文件 |
在vim環境下點擊i進入插入狀態,編輯完成后按Esc鍵,然后輸入 :wq 按回車保存退出。
備注:內外環境還需修改NPM的鏡像源,比如修改為npm config set registry https://registry-npm.daojia-inc.com/
附錄 部分GitLab-Runner常用命令
1.gitlab-runner幫助:gitlab-runner –help
2.gitlab-runner指定命令幫助:gitlab-runner –help
3.注冊runner:gitlab-runner register
4.注銷runner:gitlab-runner unregister
5.當前運行的runner:gitlab-runner list
6.啟動runner:gitlab-runner start
7.停止runner:gitlab-runner stop
8.重啟runner:gitlab-runner restart
9.查詢runner狀態:gitlab-runner status
