成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Gitlab CI/CD執(zhí)行流程

社區(qū)管理員 / 884人閱讀

一、什么是CI/CD

  • CI 持續(xù)集成

  • CD 持續(xù)交付

CI/CD就是在開發(fā)階段,通過自動(dòng)化發(fā)布,來頻繁部署應(yīng)用的一種方式

二、為什么要配置CI/CD

想象一下,一個(gè)項(xiàng)目的發(fā)布如果手動(dòng)部署,需要的操作有:

  • 單元測(cè)試

  • 打包文件

  • 上傳服務(wù)器

  • 等等

如果每個(gè)過程都需要手動(dòng)執(zhí)行,每次都要保證不出錯(cuò),這個(gè)已經(jīng)很繁瑣了。

而現(xiàn)在大的前端項(xiàng)目多達(dá)10+的人開發(fā),而且人員流動(dòng)大。

如果每個(gè)人都這么發(fā)布,快速迭代就容易出錯(cuò)。

這時(shí)候就需要CI/CD了,

CI/CD提供了自動(dòng)化部署、代碼質(zhì)量檢查、版本管理、快速回退等的能力

三、準(zhǔn)備工作

  1. 前端項(xiàng)目:用來部署前端業(yè)務(wù)的代碼

  2. Gitlab: 8.0.0版本以上支持CI/CD

  3. Gitlab runner:

    • 理解為一個(gè)應(yīng)用,可以通過Api和Gitlab交互,需要提前部署。

    • .gitlab-ci.yml配置的一個(gè)個(gè)CI/CD任務(wù),需要Runner執(zhí)行,然后將結(jié)果反饋Gitlab實(shí)例。

    • 這些任務(wù)可以配置,比如構(gòu)建鏡像,代碼檢測(cè),部署發(fā)布...等等。

  4. Docker倉(cāng)庫(kù):用來保存構(gòu)建的鏡像版本,方便隨時(shí)回退

  5. K8S集群:用來部署項(xiàng)目,多集群部署可以容災(zāi)

四、具體的執(zhí)行流程

1、圖示流程

配置Gitlab的CI/CD發(fā)布,要了解這個(gè)發(fā)布過程

image.png

2、配置文件

項(xiàng)目中需要配置

  • .gitlab-ci.yml

  • Dockerfile

  • gitlab runner

  • production.yml

3、具體執(zhí)行

(1)開發(fā)代碼完畢

開發(fā)完畢后,提交代碼到master,并推送遠(yuǎn)程倉(cāng)庫(kù),執(zhí)行下面語句,將觸發(fā)CICD

git tag v1.0.0 && git push origin v1.0.0  復(fù)制代碼

注意,觸發(fā)CI/CD有多種方式,包括:git tag,合并分支,調(diào)用Api,或者Gitlab頁面操作,需要配置.gitlab-ci.yml文件

(2)觸發(fā)CICD

image.png

如圖所示,Gitlab將會(huì)啟動(dòng)一個(gè)pipeline,這個(gè)pipeline包括了.gitlab-ci.yml文件定義的一系列任務(wù),包括自定義的并行和串行任務(wù)。

具體執(zhí)行任務(wù)是在Gitlab Runner中,Runner要提前配置好。 如下圖i6PHy8wy就是一個(gè)共享的runner:

image.png

(3)構(gòu)建并上傳鏡像到自建的docker倉(cāng)庫(kù)

CI/CD的過程中可以構(gòu)建一個(gè)用來部署的docker鏡像,然后根據(jù)[product].yml(k8s)的配置文件,部署k8s。

我們可以看到,整個(gè)過程中,我們僅僅執(zhí)行命令git tag,然后后面的一些任務(wù),如靜態(tài)檢查,單元測(cè)試,打包,部署都不需要操心,直到完成,完成也可以配置郵件或微信提醒,有問題可以回退版本。這樣就避免了人為的操作失誤。

五、Gitlab Runner的安裝和注冊(cè)

1、Gitlab Runner 是什么

由上面的流程,我們可以看到在觸發(fā)CI/CD后,必須要有一個(gè)可以執(zhí)行pipeline的runner,所以就先來部署gitlab runner。

Runners are processes that pick up and execute CI/CD jobs for GitLab

意思就是runner是一個(gè)可以跑CI/CD任務(wù)的一系列進(jìn)程。

gitlab-runner是一個(gè)執(zhí)行Gitlab CI/CD的應(yīng)用,先注冊(cè)gitlab-runner,然后配置的.gitlab-ci.yml的任務(wù)和指令就可以成功執(zhí)行,然后再通過api將結(jié)果反饋Gitlab。

2、Gitlab Runner的分類

  • 共享runner 可以讓當(dāng)前gitlab倉(cāng)庫(kù)的所有項(xiàng)目共用

  • 組runner 可以讓組中的項(xiàng)目共用,在組cicd中注冊(cè)

  • 項(xiàng)目runner 僅可以在當(dāng)前項(xiàng)目使用,在當(dāng)前項(xiàng)目下配置

3、安裝

這三類runner的安裝一樣,支持安裝在本地,虛擬機(jī),云服務(wù)器,docker,k8s等。官方安裝說明

這里我們選擇安裝到一臺(tái)linux云服務(wù)器,文檔

(1)根據(jù)不同的服務(wù)器版本,下載對(duì)應(yīng)的gitlab-runner

# Linux x86-64 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64" # Linux x86 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386" # Linux arm sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm" # Linux arm64 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64" # Linux s390x sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-s390x" 復(fù)制代碼

(2) 給gitlab-runner權(quán)限

sudo chmod +x /usr/local/bin/gitlab-runner 復(fù)制代碼

(3) 創(chuàng)建一個(gè)gitlab-ci的用戶,之后在CICD都會(huì)在這個(gè)用戶下進(jìn)行

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash 復(fù)制代碼

(4) 安裝并且啟動(dòng)gitlab-runner

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start 復(fù)制代碼

4、注冊(cè)

(1)執(zhí)行g(shù)itlab-runner命令

sudo gitlab-runner register 復(fù)制代碼

然后根據(jù)提示,依次輸入下圖中1、2的url和token,還有一個(gè)tag,是用來和.gitlab-ci.yml聯(lián)動(dòng)的,可以自行定義,像下圖的test。

注冊(cè)需要在setting/cicd頁面,打開runner模塊,拿到圖中的urlh和token

  • 項(xiàng)目的runner就到項(xiàng)目下的setting/cicd,

  • 組的runner就到組的setting/cicd

  • 共享的runner就去管理員權(quán)限下拿

這里安裝了項(xiàng)目的runner,安裝好后就可以看到如圖中3所示的runner

image.png 到這里,就安裝好了,然后接著配置.gitlab-ci.yml文件,讓CICD跑起來。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127953.html

相關(guān)文章

  • Kubernetes如何加速UCloud內(nèi)部代碼部署的CI/CD流程

    摘要:內(nèi)部長(zhǎng)期使用來管理代碼。審核通過并且成功后,觸發(fā)靜態(tài)測(cè)試單元測(cè)試鏡像構(gòu)建鏡像部署集成測(cè)試等測(cè)試通過后,創(chuàng)建一個(gè)從到的,由負(fù)責(zé)人進(jìn)行審核。從圖中我們可以看到,部分是一個(gè)單元測(cè)試,預(yù)發(fā)布部署,集成測(cè)試,,提交代碼的循環(huán)過程。UCloud內(nèi)部長(zhǎng)期使用 Gitlab 來管理代碼。雖然Gitlab作為一套開源平臺(tái)已很優(yōu)秀,但我們對(duì)于其能為CI/CD提供的敏捷性并不十分滿意,內(nèi)部實(shí)踐中的代碼發(fā)布周期仍需...

    gougoujiang 評(píng)論0 收藏0
  • GitLab CI/CD 在 Node.js 項(xiàng)目中的實(shí)踐

    摘要:近期在按照業(yè)務(wù)劃分項(xiàng)目時(shí),我們組被分了好多的項(xiàng)目過來,大量的是基于的,也是我們組持續(xù)在使用的語言。部署環(huán)境強(qiáng)依賴本地,因?yàn)樾枰诒镜亟}(cāng)庫(kù)的臨時(shí)目錄,并經(jīng)過多次的方式完成部署上線的操作。 近期在按照業(yè)務(wù)劃分項(xiàng)目時(shí),我們組被分了好多的項(xiàng)目過來,大量的是基于 Node.js 的,也是我們組持續(xù)在使用的語言。 現(xiàn)有流程中的一些問題 在維護(hù)多個(gè)項(xiàng)目的時(shí)候,會(huì)暴露出一些問題: 如何有效的使用...

    Profeel 評(píng)論0 收藏0
  • Rancher Pipeline發(fā)布:開源、極簡(jiǎn)、強(qiáng)大的CI/CD

    摘要:來自硅谷的企業(yè)級(jí)容器管理平臺(tái)提供商今日正式發(fā)布與企業(yè)級(jí)容器管理平臺(tái)集成的,極簡(jiǎn)的操作體驗(yàn),強(qiáng)大的功能整合,完全開源,助力在企業(yè)的真正落地使用。 來自硅谷的企業(yè)級(jí)容器管理平臺(tái)提供商Rancher Labs今日正式發(fā)布與Rancher企業(yè)級(jí)容器管理平臺(tái)集成的Rancher Pipeline,極簡(jiǎn)的操作體驗(yàn),強(qiáng)大的功能整合,完全開源,助力CI/CD在企業(yè)的真正落地使用。 云計(jì)算技術(shù)的廣泛采用...

    lewif 評(píng)論0 收藏0
  • GitLab Auto DevOps功能與Kubernetes集成教程

    摘要:從開始,部署管理的集群時(shí),默認(rèn)情況下會(huì)啟用授權(quán)群集端點(diǎn)功能。我們將首先在中創(chuàng)建一個(gè)新項(xiàng)目,該項(xiàng)目將使用功能與我們的集群集成。完成后單擊創(chuàng)建項(xiàng)目。這不僅意味著已被設(shè)為默認(rèn)值,還能夠觸發(fā)構(gòu)建。例如,負(fù)載均衡選項(xiàng)卡顯示已部署的以及創(chuàng)建的主機(jī)名。 介 紹 在這篇文章中,我們將介紹如何將GitLab的Auto DevOps功能與Rancher管理的Kubernetes集群連接起來,利用Ranch...

    GraphQuery 評(píng)論0 收藏0
  • 兩大闡釋、四大流程,拿下CI/CD!

    摘要:使用的公司能大大增加他們的應(yīng)用程序發(fā)行頻率。然而,這是戰(zhàn)略需求,將會(huì)提高交付速度,減少錯(cuò)誤。我們的建議是,最好進(jìn)入流程定義,以實(shí)現(xiàn)零接觸持續(xù)部署的總體目標(biāo)。 在最好的時(shí)候創(chuàng)建用戶喜歡的高質(zhì)量應(yīng)用程序并不是件容易的事情。更何況,要怎樣做才能更快地創(chuàng)建用戶喜歡的高質(zhì)量應(yīng)用程序并且能夠不斷改進(jìn)它們呢?這就是需要引入持續(xù)集成和持續(xù)交付(CI / CD)的地方。 持續(xù)集成(CI) 什么是持續(xù)集成...

    CoderDock 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<