gitlab之gitlab-runner

gitlab-ci全稱是gitlab continuous integration的意思兴猩,也就是持續(xù)集成期吓。中心思想是當每一次push到gitlab的時候,都會觸發(fā)一次腳本執(zhí)行倾芝,然后腳本的內容包括了測試讨勤,編譯,部署等一系列自定義的內容晨另。
原理

自動部署涉及了若干個角色潭千,主要介紹如下

  • GitLab-CI
    這個是一套配合GitLab使用的持續(xù)集成系統(tǒng),是GitLab自帶的借尿,也就是你裝GitLab的那臺服務器上就帶有的刨晴。無需多考慮。.gitlab-ci.yml的腳本解析就由它來負責路翻。

  • GitLab-Runner
    這個是腳本執(zhí)行的承載者狈癞,.gitlab-ci.yml的script部分的運行就是由runner來負責的。GitLab-CI瀏覽過項目里的.gitlab-ci.yml文件之后茂契,根據里面的規(guī)則蝶桶,分配到各個Runner來運行相應的腳本script。這些腳本有的是測試項目用的掉冶,有的是部署用的真竖。

  • .gitlab-ci.yml
    這個是在git項目的根目錄下的一個文件,記錄了一系列的階段和執(zhí)行規(guī)則厌小。GitLab-CI在push后會解析它恢共,根據里面的內容調用runner來運行。

  • Pipeline
    一次 Pipeline 其實相當于一次構建任務召锈,里面可以包含多個流程旁振,如安裝依賴、運行測試、編譯拐袜、部署測試服務器吉嚣、部署生產服務器等流程。

  • Stages
    Stages 表示構建階段蹬铺,說白了就是上面提到的流程尝哆。我們可以在一次 Pipeline 中定義多個 Stages,這些 Stages 會有以下特點:

所有 Stages 會按照順序運行甜攀,即當一個 Stage 完成后秋泄,下一個 Stage 才會開始
只有當所有 Stages 完成后,該構建任務 (Pipeline) 才會成功
如果任何一個 Stage 失敗规阀,那么后面的 Stages 不會執(zhí)行恒序,該構建任務 (Pipeline) 失敗

  • Jobs
    Jobs 表示構建工作,表示某個 Stage 里面執(zhí)行的工作谁撼。我們可以在 Stages 里面定義多個 Jobs歧胁,這些 Jobs 會有以下特點:

相同 Stage 中的 Jobs 會并行執(zhí)行
相同 Stage 中的 Jobs 都執(zhí)行成功時,該 Stage 才會成功
如果任何一個 Job 失敗厉碟,那么該 Stage 失敗喊巍,即該構建任務 (Pipeline) 失敗

在centOS上安裝gitlab-ci-multi-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

注冊runner

gitlab-runner register

有兩種runner,一種是shared runner箍鼓,可供全局使用崭参,一種是specific runner,為每個項目專用款咖。兩只的區(qū)別是token不同何暮,shared runner使用admin/runner最頂上的token,specific runner是每個項目里的token之剧。
如果是針對不同類型的項目郭卫,可以建一個shared runner,然后指定哪些項目可以使用這個runner背稼。

vi /etc/gitlab-runner/config.toml

concurrent = 1
check_interval = 0

[[runners]]
  name = "golang-shared-runner"
  url = "http://192.168.100.18:88/ci"
  token = "3e09d7b93eaba18a230f284a6f7055"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    allowed_images = ["192.168.100.18/*:*"]
    image = "golang:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

一般來說,推薦使用docker方式來打包應用
image這一行的意思是缺省容器玻蝌,即使沒在
.gitlab-ci.yml里配置
為了使用私有倉庫
在里面添加allowed_images

clone repos源代碼時無法解析主機

在runner配置文件里加上解析才能去clone repos源代碼
extra_hosts=["gitlab.cacec.com.cn:192.168.100.32"]

常用命令

   exec     execute a build locally
   run      run multi runner service
   register register a new runner
   install  install service
   uninstall    uninstall service
   start    start service
   stop     stop service
   restart  restart service
   status   get status of a service
   run-single   start single runner
   unregister   unregister specific runner
   verify   verify all registered runners --delete 刪除無效的runner
   archive  find and archive files (internal)
   artifacts    upload build artifacts (internal)
   extract  extract files from an archive (internal)
   help, h  Shows a list of commands or help for one command

參考資料:Continuous Delivery of a Spring Boot application with GitLab CI and Kubernetes

配置docker倉庫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末蟹肘,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子俯树,更是在濱河造成了極大的恐慌帘腹,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件许饿,死亡現場離奇詭異阳欲,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門球化,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秽晚,“玉大人,你說我怎么就攤上這事筒愚「坝” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵巢掺,是天一觀的道長句伶。 經常有香客問我,道長陆淀,這世上最難降的妖魔是什么考余? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮轧苫,結果婚禮上楚堤,老公的妹妹穿的比我還像新娘。我一直安慰自己浸剩,他們只是感情好钾军,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绢要,像睡著了一般吏恭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上重罪,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天樱哼,我揣著相機與錄音,去河邊找鬼剿配。 笑死搅幅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的呼胚。 我是一名探鬼主播茄唐,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝇更!你這毒婦竟也來了沪编?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤年扩,失蹤者是張志新(化名)和其女友劉穎蚁廓,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體厨幻,經...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡相嵌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年腿时,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饭宾。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡批糟,死狀恐怖,靈堂內的尸體忽然破棺而出捏雌,到底是詐尸還是另有隱情跃赚,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布性湿,位于F島的核電站纬傲,受9級特大地震影響,放射性物質發(fā)生泄漏肤频。R本人自食惡果不足惜叹括,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宵荒。 院中可真熱鬧汁雷,春花似錦、人聲如沸报咳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暑刃。三九已至厢漩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間岩臣,已是汗流浹背溜嗜。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留架谎,地道東北人炸宵。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像谷扣,于是被迫代替她去往敵國和親土全。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容

  • git Git是一個開源的分布式版本控制系統(tǒng)会涎,可以有效涯曲、高速的處理從很小到非常大的項目版本管理。Git 是 Lin...
    劉曉洋閱讀 1,681評論 0 7
  • 簡介 gitlab-ci全稱是gitlab continuous integration的意思在塔,也就是持續(xù)集成。中...
    st0rm23閱讀 66,720評論 9 46
  • 最近開了小密圈拨黔,會在一年里不斷的分享蛔溃。分享的內容如下: 內容營銷技術與方法 網絡推廣費用每年上漲,拉新用戶、留住老...
    gordonchoi閱讀 318評論 0 0
  • 框架視圖 關鍵代碼 Bird FollowBird GameMannger GameMenu MoveTrigge...
    TonyWan_AR閱讀 962評論 0 5
  • 君知否贺待?一別之后徽曲,相隔千里,兩地相思麸塞,使君子獨身在外秃臣,遠自天南海北,穿山越嶺哪工,奴心相懸奥此,莫要穿心苦戀,郎豈不該當歸...
    古典悠夢閱讀 1,354評論 23 7