DevOps 流水線(xiàn)工具 GitLab-CI 實(shí)踐

GitLab-CI

GitLab-CI 是一套配合 GitLab 使用的持續(xù)集成系統(tǒng)恋腕。當(dāng)然均驶,還有其它的持續(xù)集成系統(tǒng)脏嚷,同樣可以配合 GitLab 使用赁炎,比如 Jenkins是尖。上一遍文章利用自定義 DSL 簡(jiǎn)化 jenkins 流水線(xiàn)意系,就是利用 Jenkins 配合 GitLab 實(shí)現(xiàn)持續(xù)集成。
與 jenkins pipeline 相比析砸,GitLab-CI 更輕昔字,更方便。它直接通過(guò)簡(jiǎn)單 yaml 文件定義 pipeline首繁,相比與 jenkins 復(fù)雜的 groovy 語(yǔ)法作郭,GitLab-CI 更簡(jiǎn)單。

GitLab-Runner

GitLab-Runner 是配合 GitLab-CI 進(jìn)行使用的弦疮。一般地夹攒,在 GitLab 里面定義一個(gè)屬于這個(gè)工程的軟件集成腳本,而 GitLab-Runner 是用來(lái)自動(dòng)化地完成一些軟件集成腳本工作胁塞,從而實(shí)現(xiàn)持續(xù)集成咏尝。

安裝GitLab-Runner(Mac)

1、GitLab-Runner 安裝
請(qǐng)參考官方文檔:
https://docs.gitlab.com/runner/install/osx.html

2啸罢、GitLab-Runner 注冊(cè)
To register a Runner under macOS:

  • Run the following command:

     gitlab-runner register
    
    
  • Enter your GitLab instance URL:

     Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
     https://gitlab.com
    
    
  • Enter the token you obtained to register the Runner:
    token 值按照如下流程獲缺嗉臁:
    GitLab->Setting->CI/CD->Running->Set up a specific Runner manually

     Please enter the gitlab-ci token for this runner
     xxx
    
    
  • Enter a description for the Runner, you can change this later in GitLab’s UI:

     Please enter the gitlab-ci description for this runner
     [hostame] my-runner
    
    
  • Enter the tags associated with the Runner, you can change this later in GitLab’s UI:

     Please enter the gitlab-ci tags for this runner (comma separated):
     my-tag,another-tag
    
    
  • Enter the Runner executor:

     Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
     docker
    
    
  • If you chose Docker as your executor, you’ll be asked for the default image to be used for projects that do not define one in .gitlab-ci.yml:

     Please enter the Docker image (eg. ruby:2.1):
     python:3.7
    

3、GitLab-Runner 啟動(dòng)

 gitlab-runner install
 gitlab-runner start

啟動(dòng)后可以用 gitlab-runner list 查看列表

新建 .gitlab-ci.yml, 觸發(fā) gitlab-ci(以自建項(xiàng)目 poc 為例)

1扰才、GitLab 新建 project 允懂,命名為 poc, 如下


2、新建文件 poc.py ,內(nèi)容如下:

"""
    gitlab-ci poc
    ~~~~~~~~~
    This module implements gitlab-ci poc.
    :copyright: ? 2019 by the scott.lin..
"""

print("hello gitlab-ci!")

3衩匣、然后在新建文件 .gitlab-ci.yml蕾总,添加如下文件:
實(shí)現(xiàn) build stages, 在 build stages 實(shí)現(xiàn) codecheck job

stages:
  - build
  

codecheck:
  stage: build
  script:
    - pip install pylint
    - pylint poc.py
  tags:
    - python3.7

4琅捏、添加完文件后生百,會(huì)觸發(fā) gitlab-ci,成功情況下輸出:
pipeline 包括 build stage柄延,多個(gè) stage 串行執(zhí)行
build 階段包括 codecheck job蚀浆,多個(gè) job 并行執(zhí)行


會(huì)遇到以下錯(cuò)誤,通過(guò)在 gitlab-runner 配置 extra_hosts 參數(shù),以添加 host 映射


具體操作如下:
1蜡坊、 gitlab-runner list 查看 gitlab-runner 配置文件杠输,如下:

2、config.toml 文件添加如下配置:

更多實(shí)踐錯(cuò)誤參考以下:
http://arder-note.blogspot.com/2017/01/dockergitlab.html

總結(jié)

  • stages 是流水線(xiàn)階段秕衙,按照 yml 定義順序執(zhí)行
  • 然后在 stages 定義 job蠢甲,比如上面例子中的 codecheck,job 是在同一個(gè) stages 中并行執(zhí)行的
  • 更多 yml 定義請(qǐng)參考.gitlab-ci.yml
  • 如何整合 kubernetes据忘,待后續(xù)研究鹦牛,kubernetes
  • 還有 ChatOps,ChatOps
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勇吊,一起剝皮案震驚了整個(gè)濱河市曼追,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汉规,老刑警劉巖礼殊,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異针史,居然都是意外死亡晶伦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)啄枕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)婚陪,“玉大人,你說(shuō)我怎么就攤上這事频祝∶诓危” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵常空,是天一觀(guān)的道長(zhǎng)沽一。 經(jīng)常有香客問(wèn)我,道長(zhǎng)漓糙,這世上最難降的妖魔是什么铣缠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮兼蜈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拙友。我一直安慰自己为狸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布遗契。 她就那樣靜靜地躺著辐棒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上漾根,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天泰涂,我揣著相機(jī)與錄音,去河邊找鬼辐怕。 笑死逼蒙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寄疏。 我是一名探鬼主播是牢,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陕截!你這毒婦竟也來(lái)了驳棱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤农曲,失蹤者是張志新(化名)和其女友劉穎社搅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體乳规,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡形葬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驯妄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荷并。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖青扔,靈堂內(nèi)的尸體忽然破棺而出源织,到底是詐尸還是另有隱情,我是刑警寧澤微猖,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布谈息,位于F島的核電站,受9級(jí)特大地震影響凛剥,放射性物質(zhì)發(fā)生泄漏侠仇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一犁珠、第九天 我趴在偏房一處隱蔽的房頂上張望逻炊。 院中可真熱鬧,春花似錦犁享、人聲如沸余素。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桨吊。三九已至威根,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間视乐,已是汗流浹背洛搀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佑淀,地道東北人留美。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像渣聚,于是被迫代替她去往敵國(guó)和親独榴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360