[轉] Gitlab 8.x runner安裝與配置
【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對應,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