内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

基于gitlab-ci的CICD

簡介

gitlab-ci全稱是gitlab continuous integration的意思,也就是持續(xù)集成。中心思想是當(dāng)每一次push到gitlab的時候,都會觸發(fā)一次腳本執(zhí)行,然后腳本的內(nèi)容包括了測試,編譯,部署等一系列自定義的內(nèi)容。

目前成都創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、如皋網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

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

GitLab-CI
這個是一套配合GitLab使用的持續(xù)集成系統(tǒng),是GitLab自帶的,也就是你裝GitLab的那臺服務(wù)器上就帶有的。.gitlab-ci.yml的腳本解析就由它來負(fù)責(zé)。

GitLab-Runner
這個是腳本執(zhí)行的承載者,.gitlab-ci.yml的script部分的運(yùn)行就是由runner來負(fù)責(zé)的。GitLab-CI瀏覽過項(xiàng)目里的.gitlab-ci.yml文件之后,根據(jù)里面的規(guī)則,分配到各個Runner來運(yùn)行相應(yīng)的腳本script。這些腳本有的是測試項(xiàng)目用的,有的是部署用的。

.gitlab-ci.yml
這個是在git項(xiàng)目的根目錄下的一個文件,記錄了一系列的階段和執(zhí)行規(guī)則。GitLab-CI在push后會解析它,根據(jù)里面的內(nèi)容調(diào)用runner來運(yùn)行。

Pipeline
一次 Pipeline 其實(shí)相當(dāng)于一次構(gòu)建任務(wù),里面可以包含多個流程,如安裝依賴、運(yùn)行測試、編譯、部署測試服務(wù)器、部署生產(chǎn)服務(wù)器等流程。

Stages
Stages 表示構(gòu)建階段,說白了就是上面提到的流程。我們可以在一次 Pipeline 中定義多個 Stages,這些 Stages 會有以下特點(diǎn):

所有 Stages 會按照順序運(yùn)行,即當(dāng)一個 Stage 完成后,下一個 Stage 才會開始

只有當(dāng)所有 Stages 完成后,該構(gòu)建任務(wù) (Pipeline) 才會成功

如果任何一個 Stage 失敗,那么后面的 Stages 不會執(zhí)行,該構(gòu)建任務(wù) (Pipeline) 失敗

Jobs
Jobs 表示構(gòu)建工作,表示某個 Stage 里面執(zhí)行的工作。我們可以在 Stages 里面定義多個 Jobs,這些 Jobs 會有以下特點(diǎn):
相同 Stage 中的 Jobs 會并行執(zhí)行
相同 Stage 中的 Jobs 都執(zhí)行成功時,該 Stage 才會成功
如果任何一個 Job 失敗,那么該 Stage 失敗,即該構(gòu)建任務(wù) (Pipeline) 失敗

發(fā)布流程圖如下:

基于gitlab-ci的CICD

安裝部署

添加gitlab官方庫

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

安裝最新版本的gitlab-runner

yum -y install gitlab-runner

啟動服務(wù)

gitlab-runner list 查看各個 Runner 的狀態(tài)
gitlab-runner stop 停止服務(wù)
gitlab-runner start 啟動服務(wù)
gitlab-runner restart 重啟服務(wù)

注冊

注冊之前需要先獲取到注冊令牌

  1. specific令牌位置為:?gitlab 項(xiàng)目 -> 設(shè)置 -> CI / CD -> Runners 設(shè)置

基于gitlab-ci的CICD

share runner令牌位置為:Admin Area -> Runners設(shè)置

基于gitlab-ci的CICD

開始注冊

gitlab-runner? register

[root@localhost ~]# gitlab-runner register

Runtime platform????????????????????????????????????arch=amd64 os=linux pid=1784 revision=577f813d version=12.5.0

Running in system-mode.

##輸入你的Gitlab URL

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):

http://192.168.60.133/

##輸入注冊令牌來注冊Runner

Please enter the gitlab-ci token for this runner:

SeyTs9_4mKEsYjmfPr4e

##輸入Runner說明

Please enter the gitlab-ci description for this runner:

[localhost]: test

##輸入Runner的tags

Please enter the gitlab-ci tags for this runner (comma separated):

test

Registering runner... succeeded?????????????????????runner=SeyTs9_4

##輸入Runner的執(zhí)行方式

Please enter the executor: parallels, ssh, virtualbox, docker+machine, custom, docker, docker-ssh, shell, 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!

配置文件保存在/etc/gitlab-runner/config.toml

配置項(xiàng)類似下面,可能需要手動添加builds_dir和cache_dir這兩個變量,再重啟服務(wù)

[[runners]]

name = "216XX"

url = "https://git.XX.com/"

token = "xxxxxx"

executor = "shell"

builds_dir = "/home/gitlab-runner/builds"

cache_dir = "/home/gitlab-runner/cache"

[runners.cache]

如果要同時處理多個 build 的話,需要進(jìn)?/etc/gitlab-runner/config.toml?文件配置?concurrent?它的值為 >1 的值

注銷runner:

gitlab-runner? unregister --url https://asdf.com/ci --token 43f334f34f34f34f4

或者

gitlab-runner? unregister --name NAME? ? ?刪除特定的Runner

下面我們?nèi)バ枰l(fā)布的項(xiàng)目里面的根目錄編寫.gitlab-ci.yml腳本進(jìn)行自動發(fā)布

.gitlab.-ci.yml文件必須在項(xiàng)目的根目錄進(jìn)行創(chuàng)建:

stages:
- build
- test
- deploy

#打包階段

? build-job:
? stage: build
? tags:
? - report
? script:
? - mvn clean package -Dmaven.test.skip=true -Pprod
? only:
? - master

#測試階段

test-job:
? stage: test
? tags:
? - report
? script:
? - docker run -d -v $(pwd)/target:/opt/tomcat-8.5/webapps?-p 8099:8080 --name=xxxx? public/tomcat-8.5
? only:
? - master

#手動部署階段

deploy-job:
? stage: deploy
? tags:
? - report
? only:
? - master
??environment:
? name: $report_v
? url: $report_url
? script:
? - echo $(whoami)
? - ssh -p 222 $report_host "/test/apache-tomcat/bin/shutdown.sh"
? - ssh -p 222 $report_host "rm -rf /test/tomcat/webapps/*"
? - scp -P 222 target/report.war $report_host:/test/tomcat/webapps
? - ssh -p 222 $report_host "/test/tomcat/bin/startup.sh"
? when: manual

配置.gitlab-ci.yml文件中用到的變量信息:CI / CD Settings/Variables,也可以直接在.gitlab.-ci.yml文件中指定,這里是為了安全考慮配置在了外面。

基于gitlab-ci的CICD

在項(xiàng)目的根目錄寫好.gitlab.-ci.yml腳本后就會自動觸發(fā)構(gòu)建部署

基于gitlab-ci的CICD

我們在jobs里面可以看到執(zhí)行的狀態(tài),是否執(zhí)行成功或者報錯。

手動執(zhí)行部署

需要在手動執(zhí)行的階段添加參數(shù)

when:?manual

這里可以看到build_job階段任務(wù)已經(jīng)執(zhí)行成功,test_job階段任務(wù)等待手動執(zhí)行部署。

基于gitlab-ci的CICD

點(diǎn)擊test_job狀態(tài)可以查看到執(zhí)行過程;如果有報錯,這里也可以顯示報錯信息。

基于gitlab-ci的CICD

接下來我們手動執(zhí)行部署test_job階段任務(wù)。

基于gitlab-ci的CICD

執(zhí)行后刷新下,就可以看到已經(jīng)執(zhí)行成功了。

基于gitlab-ci的CICD

上面我們在.gitlab-ci.yml中配置了回滾和手動執(zhí)行部署任務(wù);接下來我們看看回滾。

回滾

在deploy的任務(wù)時,添加參數(shù)如下:

environment:
? name:?lims3_v


我們可以看到這里有我們自定義的版本,點(diǎn)進(jìn)去可以看到之前的歷史記錄。

基于gitlab-ci的CICD
點(diǎn)擊后面的回滾按鈕即可進(jìn)行回滾。

基于gitlab-ci的CICD

Q&A:

報錯如下:

圖1:

基于gitlab-ci的CICD

原因是git版本太低,升級git版本到2.12之后版本即可。

圖2:

基于gitlab-ci的CICD

解決方法:

缺少git組件導(dǎo)致,可以重新編譯安裝git

圖3:

基于gitlab-ci的CICD

是用戶權(quán)限問題:

解決方法:chown -R gitlab-runner:gitlab-runner??/home/gitlab-runner

分享標(biāo)題:基于gitlab-ci的CICD
當(dāng)前URL:http://m.rwnh.cn/article6/gddoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化關(guān)鍵詞優(yōu)化、微信公眾號、網(wǎng)站維護(hù)、軟件開發(fā)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
松溪县| 临清市| 阜城县| 广河县| 隆回县| SHOW| 隆昌县| 白水县| 宕昌县| 土默特左旗| 安平县| 吉安市| 武山县| 金昌市| 桐庐县| 通河县| 鱼台县| 正阳县| 五莲县| 桐柏县| 水富县| 榕江县| 依安县| 闽清县| 增城市| 琼结县| 阿坝县| 攀枝花市| 新昌县| 邵东县| 类乌齐县| 凤翔县| 抚宁县| 漳州市| 鄂托克前旗| 桓仁| 安康市| 广汉市| 南靖县| 新民市| 饶平县|