關於linux搭建git-runner,實現ci/cd自動部署

關於linux搭建git-runner,實現ci/cd自動部署

整理最近搭建gitlab的ci/cd流程,方便自己以後使用,本文只記錄服務器端,關於gitlab服務器搭建,以及windows端runner實現會在其他博客中說明,通俗易懂部分不做說明

將可能遇到的問題寫在前面

1.runner部署完成,提交代碼.CI/CD流水中出現相應的任務,但一直在執行中(卡在pedding狀態),這個問題遇到兩種情況
(1)在流水任務中顯示pendding狀態,並且有提示stuck,點進去後顯示沒有該項目指定的tag存在,請,檢查你的gitlab-ci.yml配置中指定執行該任務的的runnner與註冊runner名稱是否一致
(2)沒有任何提示,只是一直顯示pendding狀態,刪掉runner重新註冊,問題解決
2.執行失敗
查看是否已將文件所有者改爲gitlab-runner

準備工作

1.從倉庫中把項目拉下來
2.在gitlab創建一個runner用戶
3.在代碼中寫好.gitlab-ci.yml中配置

.gitlab-ci.yml簡要說明

以下爲master分支和test分支分別對應正式和測試環境,當更新不同分支時,根據tag觸發不同的runner實現相應服務器的代碼更新

stages:
    - build
job1:             
  stage: build
  tags:
    - master     //指定由哪個runner運行
  script:
    # 打開到項目目錄
    - cd /www/wwwroot/yyy
    #更新對應分支代碼
    - git pull origin master
   
  only:
    # 只有master分支才執行
    - master
    
job2:
  stage: build
  tags:
    - test
  script:
    # 打開到項目目錄
   - cd /www/wwwroot/xxx
    - git pull origin test
  only:
    # 只有test分支才執行測試
    - test

1.線上環境安裝git

yum -y install git

2.安裝runner

 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

yum install gitlab-ci-multi-runner

3.註冊runner

gitlab-ci-multi-runner register

在註冊是需要填寫一些必要信息,信息如下
1.項目地址
2.項目token
3.runner的描述(本人作爲備註來使用一般記錄xx服務器yy項目zz環境)
4.runner標籤(在只有一個環境時不需要在意此處,當有多個環境a,b,c時每個環境需要有一個tag標籤,用於當某個分支更新時去執行哪個runner,下面會做簡單說明)
5.是否運行在沒有tag的build上面,根據情況選擇true或false
6.是否鎖定runner到當前項目(這裏我沒用感受過直接的效果直接選擇true)
7.選擇執行器,有很多種選擇,根據具體情況,我在linux上直接部署的選擇shell,在windows選擇powershell

4.查看runner狀態,並運行

gitlab-ci-multi-runner verify    #查看狀態
gitlab-ci-multi-runner run       #運行runner

5.修改文件所有者

chown -hR gitlab-runner:gitlab-runner /yyy/xxx

6.切換到gitlab-runner用戶

su gitlab-runner

7.配置git

git config --global user.email "[email protected]"
git config --global user.name "gitlab-runner"

8.生成ssh

    1  mkdir  ~/.ssh
    2  cd   ~/.ssh
    3  ssh-keygen
    4  cd /home/gitlab-runner/.ssh/
    5  cat id_rsa.pub

獲取gitlab-runner的ssh並更新到gitlab服務器中

此時配置已完成,提交本地代碼,在gitlab中查看ci/cd流水查看執行情況,測試功能是否實現即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章