一、背景
在gitlab中新建了一個項目,添加了.gitlab-ci.yml文件,並在文件中寫入了測試腳本內容:
stages: - deploy deploy: stage: deploy script: - ping -c 20 127.0.0.1
提交后,stage處於stuck狀態,無法運行,檢查執行者runner服務,runner服務也存在。
二、分析
考慮是該項目和.gitlab-ci.yml文件腳本的執行者runner之間,還沒有建立聯系。查詢網上資料后,發現需要注冊runner。
注冊runner參考
https://www.jianshu.com/p/82db7ee85e86
https://blog.csdn.net/u011350541/article/details/80392694
三、方法
1、檢查是否有runner服務,並且是否運行。
gitlab-runner status
2、注冊runner和項目之間的聯系
(1)注冊runner前的准備,查詢相關url和token
進入項目
projects-》settings-》CI/CD-》Runners (expand) -》Setup a specific Runner manually (記錄 url 和 token的值)如下圖所示:
(2)命令行注冊runner
gitlab-ci-multi-runner register
以下內容的解釋:
#引導會讓你輸入gitlab的url,輸入自己的url,例如http://gitlab.example.com/ #引導會讓你輸入token,去相應的項目下找到token,例如ase12c235qazd32 #引導會讓你輸入tag,一個項目可能有多個runner,是根據tag來區別runner的,輸入若干個就好了,比如web,hook,deploy #引導會讓你輸入executor,這個是要用什么方式來執行腳本,圖方便輸入shell就好了。
[root@localhost ~]# gitlab-ci-multi-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://10.1.2.3:8881/ Please enter the gitlab-ci token for this runner: 5mJH3e3zj_365voC5oLf Please enter the gitlab-ci description for this runner: [localhost.localdomain]: pro01_runner Please enter the gitlab-ci tags for this runner (comma separated): test01,pro01 Whether to run untagged builds [true/false]: [false]: true Whether to lock Runner to current project [true/false]: [false]: false Registering runner... succeeded runner=5mJHse3z Please enter the executor: docker, docker-ssh, parallels, shell, virtualbox, ssh, docker+machine, docker-ssh+machine, kubernetes: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [root@localhost ~]# gitlab-runner list Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml pro01_runner Executor=shell Token=ccc9f3cb9609d7c52e5a84e8c51fa2 URL=http://10.1.2.3:8881/
(3)在gitlab的web界面可以看到
進入項目
projects-》settings-》CI/CD-》Runners (expand) -》Runners activated for this project 如下圖所示:
3、查看腳本的運行
(1)腳本運行時的狀態
projects-》CI/CD-》Pipelines -》stages -》 向下箭頭 -》 刷新圖標(Retry)
(2)腳本運行后的狀態