1. 程式人生 > >[轉] Gitlab 8.x runner安裝與配置

[轉] 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的持續整合指定一個環境。

安裝

官方文件地址:https://docs.gitlab.com/runner/install/

  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
2
3
cd /opt
mkdir gitlab-runner
cd gitlab-runner/

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
2
./gitlab-ci-multi-runner-linux-386 install --user=gitlab-runner --working-directory=/opt/gitlab-runner
sudo gitlab-ci-multi-runner-linux-386 start

配置

  經過上面的步驟,Runner就已經跑起來了,剩下的還需要Runner與專案對接起來。Runner的型別分為Shared, specific and group Runners。這裡選擇specific型別,即單獨的專案使用。

  在Gitlab專案的setting-runner中,配置過程中會使用到urltoken如下所示:

 

 

 

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
2
3
4
5
6
7
# 下載
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
# 解壓
tar -xf node-v8.11.3-linux-x64.tar.xz
# 建立軟連結,實現全域性訪問
ln -s /opt/gitlab-runner/node-v8.11.3-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/gitlab-runner/node-v8.11.3-linux-x64/bin/npm /usr/local/bin/npm

此時,輸入node -v就能看到node的版本了。

使用軟連線方式可能對非root使用者無效,可以轉而使用配置環境變數的方式

1
2
3
4
5
6
7
# 修改配置檔案
vim /etc/profile
#set for nodejs,新增NODE_HOME並放到PATH上
export JAVA_HOME=/opt/soft/java
export NODE_HOME=/opt/gitlab-runner/node-v8.11.3-linux-x64
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$NODE_HOME/bin

在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