国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DevOps持續(xù)交付之容器化CICD流水線

這篇具有很好參考價值的文章主要介紹了DevOps持續(xù)交付之容器化CICD流水線。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

DevOps持續(xù)交付

隨著DevOps?規(guī)?;穆涞睾蛻?yīng)?,持續(xù)集成以及持續(xù)交付已經(jīng)是?種常態(tài)的。CI指的是持續(xù)集成,使?的開源?具是Jenkins,CD指的是持續(xù)交付和持續(xù)部署,?個完整的軟件開發(fā)?命周期為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

主要流程可以具體為:

構(gòu)建階段->單元測試階段->部署階段->?動化測試階段->部署到?產(chǎn)環(huán)境階段->度量和驗證階段。

DevOps體系

持續(xù)集成

持續(xù)集成(Continuous Integration)的?的就是讓產(chǎn)品可以快速交付,同時還能保 持?質(zhì)量的業(yè)務(wù)交付。它的核?代碼集成到主?分?后,必須通過 ?動化測試,只要有?個測試?例失敗,那么就不能集成。這樣互聯(lián)?的產(chǎn)品研發(fā),就形成了?套標(biāo)準(zhǔn)化的流程。

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

如上是互聯(lián)?產(chǎn)品交付的基本形態(tài)。持續(xù)集成指的是頻繁地(?天多次)將代碼集成到主?分?。它的好處具體有兩點:

1、快速發(fā)現(xiàn)錯誤,每完成?點更新,就集成到主?分?,可以快速發(fā)現(xiàn)錯誤, 定位錯誤也是很容易

2、防?分??幅度偏離主?。如果不是經(jīng)常集成,主??在不斷更新,會導(dǎo)致以后集成的難度變?,也有可能導(dǎo)致難以集成。

持續(xù)交付

持續(xù)交付(Continuous delivery)指的是頻繁地將軟件的新版本,交付給測 試團隊或者是客戶,以供評審。如果評審?fù)ㄟ^,代碼就進?到?產(chǎn)階段 。持續(xù)交付可以把它理解為持續(xù)集成的下?步,它強調(diào)的是不管怎么更新,軟件 是隨時隨地都可以進?交付

持續(xù)部署

持續(xù)部署(Continuous deployment)是持續(xù)交付的下?步,指的是代碼通過 評審以后,?動部署到?產(chǎn)環(huán)境。持續(xù)部署的?標(biāo)是,代碼在任何時刻都是 可以部署的,可以進?到?產(chǎn)階段。持續(xù)部署的前提是?動化測試完成,構(gòu)建, 部署等步驟。持續(xù)部署與持續(xù)交付的區(qū)別如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

Jenkins

Jenkins環(huán)境搭建?

在https://get.jenkins.io/war-stable/2.277.4/的地址下載最新穩(wěn)定版的Jenkins,下載成功后,把它放在tomcat下的webapps下的?錄下,然后啟動tomcat,啟動成功后,在鏈接地址http://localhost:8080/jenkins/login?from=%2Fjenkins%2F就會顯示出登錄的信息,密碼顯示在/Users//.jenkins/secrets/initialAdminPassword的?錄下,在該?錄下獲取密碼,然后輸?到輸?框??,點擊繼續(xù)。如下圖所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

我們選擇推薦安裝的插件,就會?動安裝插件,如下所示:DevOps持續(xù)交付之容器化CICD流水線,devops,運維?備注:如果是離線的情況,需要解決的思路使? skip-certificate-check.hpi 插件來解決Jenkins離線的問題。

參數(shù)話構(gòu)建

?先需要安裝插件Persistent Parameter,Git Parameter,Build With Parameters,Active Choices(動態(tài)選擇參數(shù),可以根據(jù)不同需求選擇不同執(zhí)?的的動態(tài)參數(shù))。

Git

認(rèn)識Git?

Git是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)?開發(fā)的?個開放源碼的版本控制軟件,它采?了分布式版本庫的?式,
不必服務(wù)器端軟件?持??梢哉f它是?個開源的分布式版本控制系統(tǒng),?于敏捷?效地處理任何?或者?的項?。


集中式&分布式?


集中式?


從中央代碼服務(wù)器獲取具體的代碼,把代碼下載到??的本地,然后把代碼,必須在有?絡(luò)的情況下提交到中央服務(wù)器。典型的產(chǎn)品是SVN,所謂集中式的版本控制系統(tǒng),只有?個中央數(shù)據(jù)倉庫,如果中央數(shù)據(jù)倉庫癱瘓或者是不可訪問的情況下,所有的使?者?法使?SVN,?法進?提交或者備份?件。


分布式?


分布式版本控制系統(tǒng),在每個使?者電腦上就有?個完整的數(shù)據(jù)倉庫,沒有?絡(luò)依然可以使?Git。當(dāng)然為了團隊協(xié)作,會把本地數(shù)據(jù)同步到GitLab服務(wù)器或者是GitHub等代碼倉庫。


Git安裝?


需要到https://git-scm.com/downloads進?下載,根據(jù)具體的操作系統(tǒng)來下載具體的安裝包。


Git配置?


system
針對任意登錄到Linux系統(tǒng)的?戶?效


global
全局,只針對當(dāng)前登錄的?戶?效,git配置寫?~/.config/config


local
本地,只針對某?個?件夾?效。
?般配置的時候,使?的是全局配置,建議使?全局配置的?式。具體配置name和email如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

在mac的系統(tǒng)中,配置信息就會寫在該?錄下cat ~/.gitconfig 查看顯示全局的配置信息,使?到的命令為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

Git核?原理?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

操作的?般都是?作?錄,如果執(zhí)?了git add的命令后,那么就會從?作區(qū)進?到暫存區(qū),如果再執(zhí)?了git commit的命令后,等于是從暫存區(qū)進?到本地倉庫,如果再執(zhí)?git push,就是從本地倉庫進?到原地倉庫。本地倉庫主要記錄的是所有?件的修改,刪除,這些Git都會記錄下來,?的是可以進?歷史回退,追蹤信息。?

Git使?

  • 本地已有代碼,需要使?git來進?管理
  • 本地沒有代碼,需要創(chuàng)建?個新的git版本倉庫
  • 本地沒有代碼,也沒有倉庫,去GitLab平臺下載?個git版本代碼倉庫.使?到的命令為git clone

創(chuàng)建倉庫的命令為:git init

Git命令

git本地倉庫,就是?個git的版本庫,也就是說在代碼?錄下的?個.git的?件夾,這就是管理?件信息的?錄,也是git核?的本地倉庫。github是共有代碼托管平臺,?Gitlab是私有代碼托管平臺。
A、本地有代碼進?管理
直接到這個?錄,執(zhí)?git init就可以創(chuàng)建本地倉庫了,那么后?的所有代碼修改,都會記錄相關(guān)的信息。
B、需要新創(chuàng)建本地倉庫
git init來創(chuàng)建新的倉庫信息。具體創(chuàng)建的過程如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

C、托管平臺下載
git clone來創(chuàng)建代碼倉庫,在公司??很多時候使?的是這種?式。?

Git?命周期

它的?命周期可以完整的描述為:
git init #?成git?作區(qū)
git status #掌握git?作區(qū)的信息
git add #確認(rèn)需要添加以及跟蹤的?件
git commit -m "注釋信息"#提交到本地倉庫

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

Git?件命名?

在git中對?件進?重命名,因為修改都會進?監(jiān)測到,那么操作的步驟為:如果使?常規(guī)的命令mv,那么就?需要進?add和commit的過程,這個過程可以說是有了刪除的操作,也進?創(chuàng)建的過程,我們可以使?git mv的命令來輕松的解決,命令為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

修改?件名稱后,也是需要進?提交到本地倉庫的,也就是使?git commit -m的命令

Git的log?

查看Git的?志信息,主要使?到的命令具體匯總?cè)缦拢?br> ????????git log --oneline #查看簡陋的信息
????????git log
????????git log -1 #顯示最新的?條提交記錄信息
????????git log --all --graph #查看提交的版本演變
????????git reflog #記錄git所有的操作,包含了提交以及回退

Git回退

git的版本管理是通過指針來進?管理的,這個指針就是HEAD,那么也就是說HEAD表示當(dāng)前版本,HEAD^表示的是上?個版本,HEAD^^表的是上上個版本。

????????git reset --hard 版本ID
????????git reset --hard HEAD管理

備注:結(jié)合git reflog,可以回到過去,也是可以到未來的版本信息,也就是回退了,也是可以還原回去的

Git Stash

git stash可以稱為臨時空間。它的使?場景主要可以總結(jié)為:git stash就是把暫存區(qū)未提交的內(nèi)容,臨時存放到?個區(qū)域,?便?后取回來再次使?。場景可以描述為:修改?個?件后,進?了git add fileName?件,但是不進?具體的commit,這個時候可能需要?其他的事,?如需要修復(fù)線上的緊急bug,那么就需要把這個臨時的存放到?個區(qū)域。具體命令如下:

localhost:learnGit liwangping$ git add index.py
localhost:learnGit liwangping$ git status
位于分? master
要提交的變更:
(使? "git restore --staged <?件>..." 以取消暫存)
修改:     index.py
localhost:learnGit liwangping$ git stash save "保存新增的?件信息"
保存?作?錄和索引狀態(tài) On master: 保存新增的?件信息
localhost:learnGit liwangping$ git status
位于分? master
??件要提交,?凈的?作區(qū)

?完其他事后,可以再把stash區(qū)域的?件恢復(fù)回來,使?到的命令具體為:
git stash list #查看stash區(qū)域的?件信息

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

git stash pop #恢復(fù)最新的stash進度到?作區(qū)

?DevOps持續(xù)交付之容器化CICD流水線,devops,運維

git stash pop stash_id#恢復(fù)指定的stash的進度?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

git stash clear #清空所有存儲的stash進度

Git分?管理

master是主?分?,?般我們的分?可以分為test dev stage的分?。分?涉及的命令具體如下
????????git branch #查看當(dāng)前的分?
????????git branch test #創(chuàng)建?個測試分?
????????git checkout test #切換分?
????????git checkout -b 分?名稱#創(chuàng)建新的分?并且?即切換到新的分?信息
????????git branch -D 分?名稱
????????git merge 分?名稱#分?的合并信息,如下就是顯示的是把test的分?代碼合并到master的分?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

Git沖突解決?

git merge分?合并的時候,就需要解決各個沖突的問題,那么下?就具體的說明怎么樣來解決沖突的問題。

git merge dev
?動合并 index.py
沖突(內(nèi)容):合并沖突于 index.py
?動合并失敗,修正沖突然后提交修正的結(jié)果。
localhost:learnGit liwangping$
如下是顯示出圖的?件內(nèi)容信息,具體如下:
<<<<<<< HEAD
def func():
   print("this is a test branch")

針對合并出現(xiàn)如上的問題,解決的思路是:
出現(xiàn)沖突
查看沖突?件的內(nèi)容
怎么修改?件,就需要?為處于進去
修改完成后,再針對?件進?add和commit的操作
Git標(biāo)簽 
git tag可以理解為:這對每個版本加上?個標(biāo)簽。標(biāo)簽涉及到的命令具體可以總結(jié)為:
git tag -a tagName -m 標(biāo)簽注釋:創(chuàng)建?個標(biāo)簽,并且加上注釋
git tag #查看標(biāo)簽信息
git log --decorate #查看標(biāo)簽的詳細信息
git log --oneline --decorate #命令如上是?樣的
git tag -a標(biāo)簽名稱 commitID -m 標(biāo)簽注釋
git show tagName #查看標(biāo)簽的具體詳細的信息
Gitlab 
Gitlab環(huán)境搭建 
代碼版本的管理是持續(xù)集成??很重要的?個環(huán)節(jié),在現(xiàn)代企業(yè)??,對代碼的管理都是通過Gitlab來進?管理
的。Gitlab是基于Ruby的代碼來進?開發(fā)的。下?具體演示下Gitlab的安裝。在Linux中安裝Gitlab的依賴項,具體
為:
針對防?墻的處理,具體如下:
下來進?下載安裝:
=======
def func():
   print("this is a dev branch")
>>>>>>> dev

針對合并出現(xiàn)如上的問題,解決的思路是:
????????出現(xiàn)沖突
????????查看沖突?件的內(nèi)容
????????怎么修改?件,就需要?為處于進去
????????修改完成后,再針對?件進?add和commit的操作

Git標(biāo)簽

git tag可以理解為:這對每個版本加上?個標(biāo)簽。標(biāo)簽涉及到的命令具體可以總結(jié)為:
????????git tag -a tagName -m 標(biāo)簽注釋:創(chuàng)建?個標(biāo)簽,并且加上注釋
????????git tag #查看標(biāo)簽信息
????????git log --decorate #查看標(biāo)簽的詳細信息
????????git log --oneline --decorate #命令如上是?樣的
????????git tag -a標(biāo)簽名稱 commitID -m 標(biāo)簽注釋
????????git show tagName #查看標(biāo)簽的具體詳細的信息

Gitlab

Gitlab環(huán)境搭建

代碼版本的管理是持續(xù)集成??很重要的?個環(huán)節(jié),在現(xiàn)代企業(yè)??,對代碼的管理都是通過Gitlab來進?管理的。Gitlab是基于Ruby的代碼來進?開發(fā)的。下?具體演示下Gitlab的安裝。在Linux中安裝Gitlab的依賴項,具體為:

yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd
systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix
yum install -y policycoreutils-python

針對防?墻的處理,具體如下:?

firewall-cmd --permanent --add-service=http?
systemctl reload firewalld

下來進?下載安裝:

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-
ce/packages/el/7/gitlab-ce-12.0.2-ce.0.el 7.x86_64.rpm/download.rpm
rpm -i gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm?

啟動gitlab:

gitlab-ctl reconfigure
#就會啟動gitlab,?次啟動時間?較??

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

啟動后,在瀏覽器訪問,默認(rèn)端?是80,?次顯示的??:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

在后?的啟動中,就沒有?次啟動那么?的時間了,啟動的命令為:

gitlab-ctl start?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

ssh-key配置

下來是配置ssh,以及本地提交代碼到Gitlab,具體配置如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來配置user和email,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后會在當(dāng)前的?錄下?成.ssh的?錄,進?后,可以看到對應(yīng)的?件。把id_rsa.pub的內(nèi)容復(fù)制,然后加到Gitlab的密鑰中,具體如下:?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

點擊AddKey進?添加,然后就會出現(xiàn)如下的界?信息:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維?下來在Gitlab上創(chuàng)建項?,然后把本地的代碼提交上去。

localhost:saas $ git log
commit 42ed46bce3d68c03b9c52f47742e17c6a9a9a11a (HEAD -> master)
Author: wuya <759178811@qq.com>
Date:   Wed Jun 16 15:41:35 2021 +0800
this is a test code
commit 87c9cc43f0f5dfd80baeb9db8669622f81475db8 (origin/master, origin/HEAD)
Author: wuya <759178811@qq.com>
Date: Wed Jun 16 15:36:03 2021 +0800
Initial commit
localhost:saas $ git push
Username for 'http://47.95.142.233': 759178811@qq.com
Password for 'http://759178811@qq.com@47.95.142.233':

然后就會在Gitlab的系統(tǒng)??看到提交的代碼,具體如下:
Gitlab之CI&CD 
基于Gitlba-ci的需要安裝gitlab-ci的插件,安裝的命令為:
執(zhí)?如上命令后顯示如下的信息:
枚舉對象: 4, 完成.
對象計數(shù)中: 100% (4/4), 完成.
使? 8 個線程進?壓縮
壓縮對象中: 100% (3/3), 完成.
寫?對象中: 100% (3/3), 327 字節(jié) | 327.00 KiB/s, 完成. 總共 3 (差異 0),復(fù)? 0 (差異 0)
To http://47.95.142.233/wuya/saas.git 87c9cc4..42ed46b master -> master

然后就會在Gitlab的系統(tǒng)??看到提交的代碼,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

Gitlab之CI&CD?

基于Gitlba-ci的需要安裝gitlab-ci的插件,安裝的命令為:

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

安裝成功后下來進?插件的安裝,安裝的命令為:

yum install gitlab-ci-multi-runner -y
#執(zhí)?后輸出的信息為:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
runner_gitlab-ci-multi-runner/x86_64/signature
|  862 B  00:00:00
runner_gitlab-ci-multi-runner/x86_64/signature
| 1.0 kB  00:00:00 !!!
runner_gitlab-ci-multi-runner-source/signature
|  862 B  00:00:00
runner_gitlab-ci-multi-runner-source/signature
|  951 B  00:00:00 !!!
Package gitlab-ci-multi-runner-9.5.1-1.x86_64 already installed and latest version

?下來查看gitlab-ci-multi-runner是否可以正常的啟動以及它的狀態(tài),具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來進?gitlab-ci的注冊,注冊需要獲取到具體的URL和TOKEN的信息,步驟為:

  • 打開項?
  • 在項???選擇settings??的CICD

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后選擇Runners,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來進?CICD的注冊的信息,具體命令為:

[root@iz2ze4dcz1c36xtn6io522z ~]# gitlab-ci-multi-runner  register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://47.95.142.233/
Please enter the gitlab-ci token for this runner:
   9pzo1oicss-T6f7nVz_Q
Please enter the gitlab-ci description for this runner:
   [iz2ze4dcz1c36xtn6io522z]:
Please enter the gitlab-ci tags for this runner (comma separated):
   test
Whether to run untagged builds [true/false]:
[false]:
Whether to lock Runner to current project [true/false]:
[false]:
Registering runner... succeeded                     runner=9pzo1oic
Please enter the executor: docker, parallels, shell, ssh, docker+machine, docker-ssh,
virtualbox, 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!

?注冊成功后,就可以在Gitlab??進?基于shell的?式來進?CICD的交互了。下?來看是否注冊成功,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

在Gitlab的CICD中也就能看到剛才注冊成功的CI的信息了,如下所示:

下來在具體的項???增加?個.gitlab-ci.yml的?件來進?,具體如下:DevOps持續(xù)交付之容器化CICD流水線,devops,運維

?下來在具體的項???增加?個.gitlab-ci.yml的?件來進?,具體如下:?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

實際案例知行命令行如下

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

保存提交后再次到項?的CICD??,就可以看到我們新增的CICD,具體如下:?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

我們再次查看執(zhí)?的結(jié)果信息,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

?基于GitLab的框架執(zhí)?

下來我們在Gitlab??執(zhí)?測試框架的代碼,整體代碼的結(jié)構(gòu)圖具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

我們需要在執(zhí)?的服務(wù)器安裝需要的第三?的庫,安裝好后,在.gitlab-ci.yml?件??編寫如下內(nèi)容:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來我們就可以看到它會在gitlab??被執(zhí)?,具體執(zhí)?結(jié)果的信息如下所示:

?Running with gitlab-ci-multi-runner 9.5.1 (96b34cc)
on iz2ze4dcz1c36xtn6io522z (Td6rjStK)
Using Shell executor...
Running on iz2ze4dcz1c36xtn6io522z...
Fetching changes...
Removing tests/.pytest_cache/
Removing tests/__pycache__/test_login_token_book.cpython-37-pytest-5.4.3.pyc
Skipping Git submodules setup
$ cd tests/
$ python3 -m pytest -v test_login_token_book.py

?
Jenkins整合Gitlab?
Jenkins&Gitlab通信?
在Jenkins的系統(tǒng)管理中,找到Gitlab,然后配置Connection name,以及填寫Gitlab服務(wù)的地址信息,具體如下:
下來需要配置認(rèn)證授權(quán)的信息,也就是說從Jenkins獲取Gitlab的代碼,在Gitlab的Settings中,找到Access
Tokens,具體如下:
============================= test session starts ==============================
platform linux -- Python 3.7.1, pytest-5.4.3, py-1.10.0, pluggy-0.13.1 --
/usr/bin/python3
collecting ... collected 6 items
test_login_token_book.py::test_login_book[datas0] PASSED ? ?[ 16%]
test_login_token_book.py::test_login_book[datas1] PASSED ? ?[ 33%]
test_login_token_book.py::test_login_book[datas2] PASSED ? ?[ 50%]
test_login_token_book.py::test_login_book[datas3] PASSED ? ?[ 66%]
test_login_token_book.py::test_login_book[datas4] PASSED ? ?[ 83%]
test_login_token_book.py::test_login_book[datas5] PASSED ? ?[100%]
============================== 6 passed in 1.12s ===============================
Job succeeded

Jenkins整合Gitlab?

Jenkins&Gitlab通信

在Jenkins的系統(tǒng)管理中,找到Gitlab,然后配置Connection name,以及填寫Gitlab服務(wù)的地址信息,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來需要配置認(rèn)證授權(quán)的信息,也就是說從Jenkins獲取Gitlab的代碼,在Gitlab的Settings中,找到AccessTokens,具體如下:

?DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后選擇不同的權(quán)限,來?成?個token的授權(quán)信息,拿到該信息后,在Jenkins的系統(tǒng)管理的GitLab的填寫token的信息,然后點擊添加,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

添加后的信息如下所示:DevOps持續(xù)交付之容器化CICD流水線,devops,運維?

下來點擊右邊的Test Connection來進?測試,具體測試結(jié)果如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

?動觸發(fā)構(gòu)建

我們期望的?的是?動push后,進?智能化的構(gòu)建,?不需要設(shè)置什么定時任務(wù)或者是?動觸發(fā)構(gòu)建,下?具體詳細的來說這部分的應(yīng)?。

Jenkins插件安裝

在CI中安裝插件Gitlab hooks,具體的插件名稱為:GitLab,Gitlab Hook Plugin,Git,Git client。

Jenkins配置

在項?的代碼管理中,把分?部分取消,也就是任意分?提交都是能夠進??動觸發(fā)的,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

在Jenkins中選擇要觸發(fā)的項?,如saas的項?,然后點擊配置,在構(gòu)建觸發(fā)器中選擇Build when a change is pushed to GitLab,如下所示:?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后點擊?級,到Secret token中點擊Generate,就會?動?成Secret token的信息,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

備注:需要記住的是GitLab Web Hook的URL地址信息和Secure token的信息,切記。?

WebHook配置

在Gitlab的saas?程中,點擊Settings中的Itergrations,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后填寫Web Hook的URL地址和Secure token的信息,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

主要填寫正確的Web Hook地址和Secure token信息后,其他的都是默認(rèn)的,最后點擊

Add webhook添加按鈕,添加成功就會顯示這些信息:?

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

點擊Push events后,就會?動觸發(fā)遠程的Jenkins項?執(zhí)?

?動觸發(fā)實戰(zhàn)

下?我們到saas下編輯代碼后,進?push,就會?動觸發(fā)執(zhí)?,如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

持續(xù)流?線

配置?式

在?個產(chǎn)品經(jīng)過技術(shù)內(nèi)部評審和?案評審后,以及到后?的?案評審和轉(zhuǎn)測階段,交付給測試后,測試這邊會進?多個不同階段的驗證,這個階段具體為:
unitTest-->smoke測試-->外部API測試階段-->API?動化測試-->UI?動化測試,設(shè)計到的?程具體可以展示為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

安裝插件Parameterized Trigger plugin,Delivery Pipeline Plugin,Build Pipeline Plugin后,依次來設(shè)置它的順序,設(shè)置步驟為增加構(gòu)建后操作步驟??選擇“構(gòu)建 其他?程”,選擇下?個需要執(zhí)?的?程,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來增加新的試圖信息,也就是測試流?線,具體為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

然后出發(fā)執(zhí)?初始化的項?,也就是UnitTest,執(zhí)?后,它的結(jié)果信息為:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

開始管道式流?式的執(zhí)?,當(dāng)然試圖模式也可以使?另外?種?格,具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

腳本?式

上?的?式都是通過配置的?式,我們創(chuàng)建流?線式的?程,然后編寫Pipeline的腳本,具體如下:

pipeline{
    agent any
        stages{
            stage('unitTest')
            {
                steps{
                    script{
                        'cd /Applications/devOps/CICD/saas'
                        'python3 -m pytest -v test_login.py'
                    }
                }
            }
            stage('smokeApi'){
                steps{
                    script{
                        'cd /Applications/devOps/CICD/saas'
                        'python3 -m pytest -v test_login.py' 
                    }
                }
            }
            stage('thridApi'){
                steps{
                    script{
                        'cd /Applications/devOps/CICD/saas'
                        'python3 -m pytest -v test_login.py' 
                    }
                }
            }
            stage('apiTest'){
                steps{
                    script{
                        'cd /Applications/devOps/CICD/saas'
                        'python3 -m pytest -v test_login.py' 
                    }


                }
            }
            stage('uiTest'){
                steps{
                    script{
                        'cd /Applications/devOps/CICD/saas'
                        'python3 -m pytest -v test_login.py' 
                    }
                }
            }
        }
}

然后執(zhí)?,?執(zhí)?的過程信息:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

報告&通知整合?

在測試代碼執(zhí)?后,我們需要得到測試執(zhí)?的結(jié)果信息以及執(zhí)?過程中,如果出現(xiàn)其他的問題希望能夠得到回應(yīng)。測試報告我們可以把Pytest與Allure整合起來,?通知可以和釘釘整合起來。下?具體說明這部分的配置以及案例應(yīng)?實戰(zhàn)。

Allure報告
配置應(yīng)?

?先需要在Jenkins中安裝Allure Jenkins Plugin的插件,安裝插件成功后。在“全局?具配置”的Allure中,選擇?動 安裝Allure,具體如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

下來在“系統(tǒng)配置”的Allure Report中配置它的全局變量,信息具體如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

案例實戰(zhàn)

下來在CI的?程中,在構(gòu)建中需要帶上配置的Allure的信息,具體執(zhí)?的命令為:

?cd tests
python3 -m pytest -v -s ?test_login_token_book.py --alluredir ${WORKSPACE}/report

在構(gòu)建后操作??選擇Allure Report,在Path??填寫report的關(guān)鍵字,切記,項?的?程?錄?定得要有report的?件夾信息,配置信息具體如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

點擊構(gòu)建后,就會在?程的詳細??顯示Allure Report的報告信息,具體如下所示:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

點擊Allure Report,就會顯示具體的測試報告信息。

企業(yè)級的CICD

DevOps持續(xù)交付之容器化CICD流水線,devops,運維

基于Docker的CICD?

?動化部署&驗證

下?我們可以把?動構(gòu)建鏡像,以及?動啟動服務(wù),和?動化驗證測試服務(wù)的過程,完全結(jié)合Jenkins持續(xù)集成的流?線,完全實現(xiàn)?動化的部署和過程。

pipeline

在Jenkins持續(xù)集成的?具??創(chuàng)建Pipeline的項?,設(shè)計到的腳本具體如下:

pipeline{
    agent any
    stages{
        stage('Code Pull') {
            steps {
               git 'http://47.95.142.233/wuya/app.git'
            }
        }
       stage('Code Check') {
            steps {
                withSonarQubeEnv('SonarScanner') {
                    sh '''
                    mvn package
                    mvn clean install -Dmaven.test.skip=true 
org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.1.1688:sonar
                    '''}
            }

        }
        stage('container init'){
            steps{
                sh '''cd src/main/docker
                 docker-compose down 
                 sleep 6s
                 docker rmi app:0.0.1-SNAPSHOT
                 sleep 10s
                 '''
            }
        }
        stage('build the image'){
            steps{
                sh '''
                mvn clean package  -Dmaven.test.skip=true   docker:build'''
            }
        }
        stage('run the container'){
            steps{
                sh '''cd src/main/docker
                docker-compose up -d '''
            }
        }
        stage('smoke test'){
            steps{
                sh '''cd src/main/docker
                sleep 10s
                python3 -m pytest -v test_springboot.py'''
            }
        }
    }
}

下來我們開始構(gòu)建鏡像,其實我們構(gòu)建的過程,第?步主要就是打包鏡像,第?步就是?動化測試的啟動鏡像,第三個步驟就是驗證部署的服務(wù)這部分,這部分也是可以理解為?個冒煙測試的過程。具體構(gòu)建后輸出的結(jié)果信息如下:

DevOps持續(xù)交付之容器化CICD流水線,devops,運維文章來源地址http://www.zghlxwxcb.cn/news/detail-770496.html

到了這里,關(guān)于DevOps持續(xù)交付之容器化CICD流水線的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • (十四)devops持續(xù)集成開發(fā)——jenkins流水線使用pipeline方式發(fā)布項目

    (十四)devops持續(xù)集成開發(fā)——jenkins流水線使用pipeline方式發(fā)布項目

    本節(jié)內(nèi)容我們使用另外一種方式pipeline實現(xiàn)項目的流水線部署發(fā)布,Jenkins Pipeline是一種允許以代碼方式定義持續(xù)集成和持續(xù)交付流水線的工具。通過Jenkins Pipeline,可以將整個項目的構(gòu)建、測試和部署過程以腳本的形式寫入Jenkinsfile中,實現(xiàn)對整個流程的可視化管理和控制。在

    2024年02月21日
    瀏覽(35)
  • (十五)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建策略配置及觸發(fā)器的使用

    (十五)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建策略配置及觸發(fā)器的使用

    本節(jié)內(nèi)容我們主要介紹在Jenkins流水線中,其構(gòu)建過程中的一些構(gòu)建策略的配置,例如通過遠程http構(gòu)建、定時任務(wù)構(gòu)建、輪詢SCM構(gòu)建、參數(shù)化構(gòu)建、Git hook鉤子觸發(fā)構(gòu)建等,可根據(jù)不同的需求完成不同構(gòu)建策略的配置。 - 構(gòu)建策略說明: - 測試驗證 - 構(gòu)建說明 - 測試驗證 - 配置

    2024年02月21日
    瀏覽(36)
  • Kubesphere中DevOps流水線無法部署/部署失敗

    Kubesphere中DevOps流水線無法部署/部署失敗

    總算能讓devops運行以后,流水線卻卡在了deploy這一步。碰到了兩個比較大的問題,一個是無法使用k8sp自帶的kubeconfig認(rèn)證去部署;一個是部署好了以后但是沒有辦法解析鏡像名。 k8s:v1.21.5 k8sp:v3.3.0 pipeline 在deploy 的階段總是報各種錯。 報錯內(nèi)容如下: 從message來看,已經(jīng)不

    2023年04月23日
    瀏覽(29)
  • 【DevOps-09-1】Jenkins流水線任務(wù)初體驗

    Jenkins流水線任務(wù)介紹 Jenkins流水線任務(wù)初體驗 Jenkins流水線任務(wù)腳本語法初體驗 Jenkinsfile維護腳本 之前采用Jenkins的自由風(fēng)格構(gòu)建的項目,每個步驟流程都要通過不同的方式設(shè)置,并且構(gòu)建過程中整體流程是不可見的,無法確認(rèn)每個流程花費的時間,并且問題不方便定位問題。

    2024年01月21日
    瀏覽(30)
  • 云計算課程第四次實驗-搭建DevOps流水線

    云計算課程第四次實驗-搭建DevOps流水線

    子任務(wù)2:搭建DevOps流水線環(huán)境 ? 本實驗以主機本地虛擬機為載體,搭建Dev-ops流水線環(huán)境 使用的工具: 目錄 一、實驗概述 1.實驗名稱 2.實驗?zāi)康?3.實驗環(huán)境 二、實驗內(nèi)容 1.實驗設(shè)計 2.實驗過程 1.gitlab-server的搭建 2.harbor-server的搭建 3.Jenkins-server的搭建 4.Web-server的搭建 5.Dev搭

    2024年02月03日
    瀏覽(37)
  • DevOps系列文章 之GitLabCI模板庫的流水線

    DevOps系列文章 之GitLabCI模板庫的流水線

    目錄結(jié)構(gòu),jobs目錄用于存放作業(yè)模板。templates目錄用于存放流水線模板。這次使用? ?default-pipeline.yml? ?作為所有作業(yè)的基礎(chǔ)模板。 作業(yè)模板 作業(yè)分為Build、test、codeanalysis、artifactory、deploy部分,在每個作業(yè)中配置了rules功能開關(guān),由變量控制最終作業(yè)的運行。 jobs/buil

    2024年02月16日
    瀏覽(63)
  • DevOps落地筆記-14|部署流水線:打造一站式部署的關(guān)鍵平臺

    DevOps落地筆記-14|部署流水線:打造一站式部署的關(guān)鍵平臺

    上一課時我主要介紹了實現(xiàn)自動化測試的范圍、流程和結(jié)構(gòu)圖,自動化測試是持續(xù)集成實踐不可或缺的一部分,從而使得軟件向高效率和高質(zhì)量邁進了一大步。持續(xù)集成主要關(guān)注的是代碼是否可以編譯成功、是否可以通過單元測試和驗收測試等。但持續(xù)集成并不能實現(xiàn)軟件包

    2024年02月22日
    瀏覽(34)
  • devops-5:從0開始構(gòu)建一條完成的CI CD流水線

    devops-5:從0開始構(gòu)建一條完成的CI CD流水線

    前文中已經(jīng)講述了靜態(tài)、動態(tài)增加agent節(jié)點,以動態(tài)的k8s cloud為例,下面就以Maven構(gòu)建Java程序為例,開始構(gòu)建出一條完整的CI CD流水線。 實現(xiàn)功能目標(biāo): 1.分別可以根據(jù)分支和tag從源碼倉庫clone代碼 2.拿到源碼后開始編譯 3.構(gòu)建image,并push到鏡像倉庫 4.部署到對應(yīng)k8s集群 5.部署

    2023年04月20日
    瀏覽(41)
  • 【業(yè)務(wù)功能115】微服務(wù)-springcloud-springboot-Kubernetes-k8s集群-Kubesphere實現(xiàn)DevOps流水線-CI/CD-SonarQube- Jenkins

    【業(yè)務(wù)功能115】微服務(wù)-springcloud-springboot-Kubernetes-k8s集群-Kubesphere實現(xiàn)DevOps流水線-CI/CD-SonarQube- Jenkins

    dev 怎么開發(fā) ops 怎么運維 參考項目鏈接:https://github.com/kubesphere/devops-maven-sample 持續(xù)集成是指軟件個人的部分向軟件整體部分交付,頻繁進行集成以便更快地發(fā)現(xiàn)其中錯誤。 CI需要具備這些: 全面的自動化測試 這是實踐持續(xù)集成持續(xù)部署的基礎(chǔ),同時,選擇合適的自動化測

    2024年02月04日
    瀏覽(43)
  • 實戰(zhàn):Docker+Jenkins+Gitee構(gòu)建CICD流水線

    實戰(zhàn):Docker+Jenkins+Gitee構(gòu)建CICD流水線

    持續(xù)集成和持續(xù)交付一直是當(dāng)下流行的開發(fā)運維方式,CICD省去了大量的運維時間,也能夠提高開發(fā)者代碼集成規(guī)范。開發(fā)者在開發(fā)完需求功能后可以直接提交到gitee,然后jenkins直接進行代碼編譯和一體化流水線部署。通過流水線部署可以極大的提高devops效率,也是企業(yè)信息自

    2024年02月14日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包