1. 部署環境
本次部署環境完全斷網。需要離線下載gitlab-runner及其依賴。
本次部署環境為中標麒麟7.4。目前機器上部署了gitlab,安裝了maven。
2. 部署步驟
2.1 在外部下載好依賴
我首先在騰訊云上布置了一個centos7.9的虛擬機,沒有安裝任何東西。
之后在這上面安裝yumdownloader,命令為:
yum install -y yum-utils
之后創建gitlabrunner文件夾(非必須),并下載依賴:
yumdownloader --resolve gitlab-runner
主要下載了這些包
同時,經過測試,gitlabrunner還依賴rsync,我的中標麒麟7.4上并沒有,所以后續下載且只下載了rsync:
yumdownloader --resolve rsync
將上述軟件包都放進中標麒麟7.4機器的文件夾下。我個人放在了/opt/gitlabrunner/下了。
2.2 安裝gitlab-runner
------------個人猜想------------
如果上述依賴包完整,在/opt/gitlabrunner/下使用命令:
sudo rpm -ivh *.rpm
就能完成安裝。
-------華麗的分割線---------
下面是我的安裝步驟:
#第一步安裝rsync
sudo rpm -ivh rsync-3.1.2-12.el7_9.x86_64.rpm
#第二步安裝這倆,因為沒有循環依賴問題
sudo rpm -ivh perl-TermReadKey-2.30-20.el7.x86_64.rpm
sudo rpm -ivh perl-Error-0.17020-2.el7.noarch.rpm
#第三步同時安裝git和perl-git,因為這倆循環依賴
sudo rpm -ivh perl-Git-1.8.3.1-25.el7_9.noarch.rpm git-1.8.3.1-25.el7_9.x86_64.rpm
#第四步同時安裝gitlab-runner和gitlab-runner-help
sudo rpm -ivh gitlab-runner-18.3.0-1.x86_64.rpm gitlab-runner-helper-images-18.3.0-1.noarch.rpm
#驗證gitlab runner是否安裝成功
sudo gitlab-runner register
3 gitlab-runner的配置、連接與使用
gitlab runner可以理解為一個執行你的項目下文件.gitlab-ci.yml的執行器的配置工具,你需要再gitlabrunner中通過配置過程生成一個執行器,將執行器與gitlab項目/個人/全局綁定在一起,通過在.gitlab-ci.yml中寫的tag和gitlabrunner中配置時設置的tag相匹配,決定使用哪個執行器執行.gitlab-ci.yml的內容。
那么gitlab runner在配置的過程中就涉及一些選擇了,一是執行器選擇,二是標簽設置,三是如何配置,四是如何與gitlab相連接。
3.1 如何進行配置
一個gitlab runner是可以進行多個執行器配置的。可以分別服務于不同的項目、人員、全局,具體權限的配置在gitlab里,不在gitlab runner這邊。
首先去gitlab這邊,我們按照在項目級配置一個runner,只給本項目使用要求配置一個runner實例。 進入Settings -> CI/CD -> Runners。點擊“新建項目runner”。進入新建一個runner。
這些配置好之后點擊“創建runner”
之后選擇你安裝gitlab runner的平臺。比如你在linux服務器上,或者在某臺機器的docker內安裝。(一般直接裝在服務器上就可以了。)
之后會給出提示,去gitlabrunner那里使用命令,url和token在gitlab這邊也給出了,復制過去即可。
之后會要求設置名稱,隨便設置即可。
之后會要求你選擇執行器,其實選擇docker最好,這里為了方便,我直接用shell了。
總結一下你需要輸入的內容
GitLab實例URL: (你的GitLab地址)
注冊令牌:從你項目的 Settings -> CI/CD -> Runners 頁面獲取 Registration token。
Runner描述符:給你這個Runner起個名字,比如 shell-runner-for-maven。
Runner標簽:可以給這個Runner打上標簽,比如 shell, maven。標簽可用于在CI/CD中指定某個Runner運行作業。
執行器:輸入 shell。這告訴Runner直接在宿主機的Shell環境中執行作業命令。
之后回到gitlab頁面,點擊頁面最下方的“查看運行器”,你就能夠看到你的runner實例了。
3.2 執行器選擇
執行器決定了這個runner實例接收的各種任務在哪里進行。直接使用shell是一個方便的選擇,但是可能會產生垃圾文件。使用docker是最好的選擇,每次都會清理。但是我還沒有學會配置。
3.3 標簽填寫
gitlab runner這邊的標簽和名字與gitlab那邊沒有直接的關系。你在gitlab-ci.yml中寫的tag與gitlab中配置的標簽有關,與gitlabrunner中的無關。
出于方便以后辨識和維護,最好統一成一樣的標簽。