00:00
那接下来我们就使用cooper fair来体验一下它给我们带来的daily OPS功能,同样呢,我们还是以这个project regular登录进来,我们来参照官方文档给我们的这个第九章快速入门的这一块,有一个叫基于spring boot项目构建的这个流水线,这个呢就是我们来体验整个Cscd流水过程的,我这个流水线呢,它是使用我们这个金更S来做的,金更S是我们整个持续集成,持续部署我们用的自动化工具,那这个金更s in s SCM,意思呢,就是我们这个金更S里边有一个金更S费,就是我们来编写一个类似于我们的配置文件,这个配置文件呢,可以作为我们这个源代码管理工具的这个一部分,那么在配置文件里边可以来配置我们各个阶段,比如我们CIICD的各个阶段要怎么做,只要我们配置好了金克S,就可以按照这个金克S费能帮我们来执行整个自动化流程,所以呢,其实就是如果我们敲好的这个。
01:00
的代码,我们只需要编写好这个金克s fair,然后呢,我们让金克S按照我们这个金克s fair这个流水呢,帮我们来执行下面的流程就行,而这个金克S费该怎么编写这一块呢?其实官方文档也非常提示的清楚,我们在这来搜一下这个金克S这个官方文档也是非常详细的,我们来找到这个官方文档,这有使用金ins来切到中文,那就更好看了。下边呢有一个这个流水线,这块流水线呢,从入门开始给大家介绍,特别下边会有一个流水线的语法,流水线里边该怎么写,每一个阶段该怎么写,阶段里边的代理是什么意思,该怎么用,这块呢都说的非常清楚,我们相当于只要编写好了一个项目的流水线,金克斯呢,就会基于我们的这个金克斯费流水线指定的流程来给我们构建我们的整个项目,那我们现在呢,这一块我们都不用写金克斯的这个流水线配置文件了,因为库珀S菲尔给我们带来的是一个可视化界面,我们直接可以从可视化界面里。
02:00
边点击一个创建,创建一个我们这个流水线,然后我们通过可视化界面的编辑,编辑出我们整个流水线工程,当然如果你的这个项目里边已经有了这个流水线文件,那就更方便了,那直接就来执行,所以们接下来测试的这个事例就是基于我们已经有一个spring BOO项目,而且呢也写好了金fair,我们来进行部署的,那么部署的整个流程就是如我们这个下边所示,然后呢,我们来看一下它的这一块流水线的操作流程,首先我们熟悉一下流水线的整个流程,来知道这整个流程,以后呢,我们再来进行部署,先流程里边第一步就是checkout SCM,就是从我们的这个代码管理工具里边,我们先来检出我们的代码,我们代码呢,一般托管给GI,或者我们一些GI的这个服务端,然后呢,我们从get里边,我们把代码拉取下来,拉取下来以后呢,我们第二阶段可以让它做一个单元测试,单是测试完了以后我们还可以使用。
03:00
我们金克啊,倒不是金克S,是我们的这个sona cube第三方的,我们这有一个代码分析软件,我们分析一下代码里边一些潜在的bug漏洞等等,那分析完了以后呢,接下来我们可以把我们这一块代码,因为我们这个代码呢,都是Java代码,我们来构建成一个比如镜像,我们可以把这个镜像呢,我们推送到我们的镜像仓库,那镜像推送到镜像仓库以后,我们的库ne集群就能下载到这个镜像去来构建它了,所以这一块呢,我们就来可以有一个人工的介入确认,你确认呢,是不是要部署到我们的开发环节,如果我们说了yes,那我们就会命令他把我们这个项目呢部署到我们的开发环境,然后我们这个开发环境完了以后呢,你还可以再来确认是不是这个项目呢?已经在开发环境测试稳定,你要不要部署到咱们这个生产环境,如果我们来选了yes,我们也可以帮我们来自动部署到生产环境,这是我们一整套流程。
04:00
所以我们希望呢,这一套流程都是通过金克S来做的自动化,而我们这个金克斯费呢,我们就是基于我们有一个项目就已经有了,咱们就按照这个流程来做就行了,那我们整个的测试流程,那么我们就来看这边,我们先来做第一件事情叫创建凭证,注意我们这里创建的呢是凭证,不是我们之前用的密钥,密钥是我们用在环境变量里边的那一个保护我们这个铭文信息的,那们这个凭证呢,是我们要登录到一个系统里边的账号密码之类的信息,而且呢,我们这个凭证的创建,我们先来看我们的步骤,首先我们这个凭证呢,需要非常多的凭证,第一个是我们这个doer helpb的凭证,就是我们这个登录doer的账号密码,第二个呢,是我们GI的凭证,还有我们cooper con的凭证,因为现在呢,要把我们的访问接入到我们CUNE里边,我们得有这个cooper config这个凭证,那这个凭证呢,我们就来创建这三个凭证,那创建凭证呢。
05:00
要参考这个创建凭证这一块的流程,那么就点过来,来看一下凭证该如何创建,首先我们来创建第一个docker help的凭证,我们可以在我们这个里边来点击创建,我们先来到我们这个cooper fair,因为我们现在project regular这个呢是来管理我们这个d vos项目,它倒不是管理,但是它是可以配置我们这个项目的,在我们这个自动化这个项目里边,我这有一个凭证,我们就可以在这来点一个创建凭证,这个凭证的第一个我们先来创建我们的doer APP凭证,就是我们登录doer APP的这个凭证的ID我们来随便填,比如就叫doer APP ID。我们在这呢粘贴过来,那凭证的类型我们支持非常多种类型,可以使用账户的,也可以使用SSH这种登录方式的,那我们现在来看一下,那么这个doer have呢,我们可以选择账户的这种凭证类型,那么就来选择账户凭证类型,然后来填写自己docker help的账号密码。但创建这个的前提就是大家已经在这个doer APP里边有注册了账号密码,我要他凭证的原因就是因为我们要把这个镜像能推送到doc APP,当然如果大家有搭建自己的私有仓库,那就可以不用doc APP的凭证了,那我这儿呢,就已经创建好了我们这个doc APP的这个账号信息,那没有的同学可以在这来注册,注册一个dog help的这个账号就行了,好,我现在来写我的dog help的凭证,Do help凭证创建好以后,我来点击确定,那我们doc help这块的凭证呢,就第一个创建好了,接下来其他的这个凭证也一样,比如再来创建一个giarb的凭证,我就叫giar HUB ID,那么这个giar HUB呢,大家可以使用账户,如果自己开启了giar HUB的SSH这个免密连接,我们就可以使用这个免密链接,好,我现在还是为了方便我直接使用这个账户,同样的这个get help这个账号呢,大家一定是要有的,我来点进来,然后呢,我现在就。
06:58
来使用我的这个get HUB账号来进行登录,我在这来创建凭证账号名,我们来一输,还有我们的这个密码,这个这一块凭证一定要创建,对我们后来还要用的,点击确定,那么这个doer haveb,那是我们这个giitar HUB这个凭证呢就创建好了,然后呢,我们再来创建一个凭证,这个凭证是我们的CU conflictf这个凭证,所以接下来创建一个CU conflictf,我们就叫DEMO CU conflictf,名字呢随便命名,然后我们在这来创建一个凭证,点击创建凭证类型呢,我们就来写库包con就行了,好,我们创建凭证,剩下的东西呢,都不用改,来点一个确定,那库包con这三个凭证呢,我就创建好了,那接下来再根据我们这个项目的流程,那么这个凭证创建好以后呢,最后我们再来创建一个什么,就是SOA cube的这个凭证,这个凭证talk呢,是用于我们后来来做我们的代码质量分析的,这na cube,我们cooper s在安装的时候,它的。
07:58
DA维OS整个系统里边其实已经带了包括这个sona cube凭证的,怎么创建,我们可以来参照这一块的流程,比如访问sona cube并创建凭证啊,我们把这个打开,首先我们得访问我们内置的sona cube,它内置的是A的命呃的in这个账号密码,然后呢,我们来为一个新工程,我们首先得创建一个工程,然后呢,让他再来生成一个凭证就行了。那接下来我们就来先来访问我们内置的sna cube,来登录进来创建一个凭证,因为我们这个sona cube它没有暴露对外访问,而且呢是内置的,所以我们必须呢连接我们这个虚拟机,我这一块虚拟机已经连接好了,我的这个远程主机里边,我们来使用这个命令行工具,我们先来连上这个master,然后master我们先得找一下我们soda cube这个服务呢,它是在哪部署的,那整个的这个找法呢。
08:49
官方这一块呢,也说的非常清楚,我们来看下边这没有,没有的话,那我们就来自己找这自己找呢,在这儿我们直接输入一个命令扣包ctrler get s VC就是service,那能对外访问,我们现在要自己能访问,肯定是暴露的service,然后呢,杠杠O,我获取所有名称空间的service来看它暴露什么了,首先呢,我们来主要来看我们的David UPS这个系统,这个David UPS系统里边呢,肯定就会有s cube,我们来找一下,我们发现呢,这有一个叫ks sona cube,我们相当于把这个sona cube以note pot的方式暴露了,那暴露到哪个节点我们也不用管,我们现在直接把这个暴露的端口复制过来,来访问一下sona cube,好,我们在这来,我们直接来访问,使用我们这个集群的IP,然后呢,再加上我们soda cube的端口号走,然后现在呢,就。
09:44
登录进我们的这个sona cube,当然大家第一次进来得使用adin adin来进行登录,那登录以后呢,我们这一块的token,我们先来起一个名字,这是我们古励mail来分析古励mail的这个代码的,比如我们andless来让它点击一个生成,然后呢,接下来它就会生成我们这么一个token,那么这个token呢,我们得记住,记住以后呢,接下来我们来到外边,我们现在呢就得用,所以我们这个token呢,找到以后,我们接下来到库s fair里边,我们来给它添加一个凭证,就是sona cube,然后呢,它是一个秘密文本,把我们刚才的ton复制过来就行了,好来到这儿来创建凭证,这个凭证呢,我们就叫。
10:28
Sona cube,然后呢,它是一个秘密文本,它的值就是这一块来点一个确定好我们sona cube这个凭证我们就创建好了,那我们先做的第一步我们就全部完成了,为我们这个项目的四个凭证我们就创建就绪了,那接下来我们就要做的就是folk它的这个视力项目,把它这个视力项目呢,拉到我们的GUHUB里边,我们一会儿要拿这个视力项目来做一个测试,好我呢就直接把它这个项目打开,打开以后呢,我们把他的这个项目fok到我们这个里边,我点一个folk,好,那这个项目呢,现在就正folk到我们的这个项目地址里边,那以后我们在我们的这个里边就来编写这个项目的一些代码,我们可以来进行修改就行了,好,这个项目呢,我们现在for folk到自己的get HUB里边,然后注意一定要修改我们的这个金ins fair,而且呢,修改的是这个我们叫金ins online fair,它这呢都指定了我们线上的这个流程,这有一个叫金ins online,我们。
11:28
过来找一个斯online这个feel点进来们来在这来进行修改,那修改哪些东西呢?我们来看官方提示,他这一块在我们这一块修改了以后呢,我们要修改一些变量的这个值,这块变量呢,其中每一个是什么意思,他这都说了,比如docker haveb的这个ID,就是我们这个doer haveb的这个凭证ID,以及GIHUB这些凭证ID CU conflict凭证ID,当时你用的是什么,我们都整的是什么?所以现在呢,来配置一下这些信息。
12:00
我们来到我们这个这,然后呢,第一个doer have凭证的ID,我们得看我们自己的凭证,我们的这个名叫它点进来,我们把这个名呢一复制,CTRLC好复制过来,然后来到这我们do have的凭证ID,那这个就是我们的,然后呢,接下来get have的凭证ID,那就是我们的giub凭证ID,再把giub的这个ID好我们来复制过来,然后呢,这是我们GIHUB这个ID,一模一样,然后呢,接下来cooper config这个凭证的ID,然后来到这来看一下这个CU config这个凭证好我们也叫DEMO CU confic,诶那就正好直接复制过来,来到这,我们在这呢一粘贴。即使是一样,那自己也来手工粘贴一遍,接下来就是docker的这个仓库地址,那默认肯定是docker IO,然后接下来是我们docker HUB的namespace,这个名称空间,这个名称空间呢,我们来看提示它这一块说dob的名称空间其实就是要替换成do haveb的这个账号名的,所以我们在这一块来找到我们doer have的这个账号名是雷凤阳。
13:08
那再接下来我们doctorer habit这个account,哎,这个不是doctorer habit了,这是get habit,那get habit account这块呢,也提示替换我们get汉的账号名就在这来写一下,还是雷凤阳,然后呢,接下来是我们应用的名字,另外是我们这个sona的这个ton,我们刚才叫什么名字,来看一下我们sona的这个凭证,来找一下sona呢,我们叫sona cube,好把这个复制过来,然后我们来到我们这一块。好,我们现在是sona cube的这个凭证,好我们把这块呢,全部这个环境变量信息就改好了,那改好以后呢,我们就可以把我们这次修改直接提交到get have让他来生效就行了,好们这次修改呢,我们就直接提交到我们这个master分支来点一个提交,那么这个生修改呢,在这确认一下,好这些东西呢都生效了没问题,所以这一块大家就看到了凭证的这个重要性了,如果我们在这写的是自己docker get have的账号密码,这肯定就暴露了,所以我们肯定写的呢是凭证。
14:13
凭证呢,由我们这个cuber s fair尔给我们进行秘密存储,然后呢,我们以后想要使用,直接使用它这里边的环境变量来引用就行了,也是非常的安全,那我们这一步呢,我们就做完了,我们现在呢,相当于拿到了一个视力项目,这个视力项目里边呢,定义好了我们金克斯费尔的所有流程内容,这个流程内容呢,每一个stagech其实就是一个阶段,这个阶段的定义就跟我们之前的一模一样,我们可以参照之前他给我们说的这个阶段流程图,我们大概阅读一下它的这个金克S费,大家就知道语法是什么了,我们来看一下这个克费,我们的这个流程图里边呢,是这么几个步骤,诶,我们这个金克词好这个流程图来对照,首先流程的第一个我们stages,我们这一块的第一步是check out SCM,就是呢,从我们的这个guitar HUB里边来。
15:05
下载我们的所有代码,然后呢,第二步是unit test单元测试,单元测试呢,现在是以我们的这个它呢,其实运行的是SH一个命令,就是mvn me clean test先进清空,然后呢在运行一个单元测试,而大家注意这呢有一个杠O,这个官方文档这一块呢,之前好像有一个提示的非常清楚,这个杠O呢,大家要注意这个杠O它呢代表开启的是离线模式,就是离线模式呢,他认为。你的这个代码呢,已经下载完成了,所以相当于他就不用在这儿来进行下载这些相关依赖了,所以我们这一块呢,把这个离线模式我们先来改掉,你们这离线我们现在第一次试用,我们什么都没下载,所以把这个杠O呢,我们一定要全部去掉,我们来到我们的这一块,我同样再来修改一下这个配置文件。好,我们来CTRLF来找一下所有的杠O。
16:04
杠O的第一处,我们把这个去掉,然后呢,下边这一处杠O,所有的这个杠O我们全部呢都要去掉。要不然我们这一块呢,就没法用了,这个杠O也一样,而其他的这个我们只是这个门问的这个O,剩下的呢,我们来看一下这块呢,都没啥问题,好,那我们这一块代码全部修整完了以后,那接下来重新提交到master分支,因为这一块的下载我们要让它慢慢下载的,那回到之前我们继续来看我们的这个金克斯费的这个流程,那这个流程跟他说的这个是不是一样的,来看一下好我们流程的步骤,流程步骤呢,运行到第一阶段是来剪代码,没问题,第二阶段是单元测试,诶叫unit test,然后呢,它会运行一个命令,哎,使用我们这个me这个容器环境运行这个命令,然后呢,第三阶段是我们这个代码的质量分析,这个质量分析呢。在这就是运行我们这个sonabe去来连接上它来使用sona cube的这些账号信息来进行代码分析的啊。第四阶段build and push就是我们这个构建并且推送,我们现在能看到一个叫docker build build呢就是把我们这个东西来构建成一个镜像,然后又运行了一个命令叫docker push,而运行这个命令呢,肯定是要以我们一个凭证信息,这个凭证就是我们docker have的这些账号密码信息,然后呢,他登录进我们这个doer APP,然后把我们这个镜像推送给doer APP我们指定的这个用户。
17:35
这个用户的名称空间和我们指定的应用里边,它推送的这个版本号呢,都是我们这个构建版本号,能看到所有的Dollar这一块都是动态取值,然后我们这个推送就好了,然后接下来。这个阶段,这个阶段呢,就是我们在这呢,有一个doer tank给它加了一个标签,然后呢再把它推送到我们doer Hu的name space,这个name space呢,看有两个,其实呢,这个name space是推送一个最新的,还有一个叫snaphot,相当于是一个快照版,相当于它会同时推送我们两个版本,然后接下来再来deploy to dev,相当于我们就是这个阶段是不是要部署到我们这个dev环境,因为这个阶段呢是需要人工确认,所以下边呢,还会由我们整个确认流程来确认返回成功还是失败,那这一块确认完了以后呢,接下来而且确认成功了以后,它又要推送相关的这个镜像,这一块呢,还有指定的这些分支的等等,然后我们这块确认完了以后,接下来我们deploy投我们的production,相当我们推送到我们的生产环境,这个生产环境只要我们确认了,那么所有的步骤呢就算是完了,这其实就是一个金fair,它呢在stas里边来定义我们每一个阶段要做的事情。
18:48
好,那我们这个项目呢,什么内容信息我们就全部都准备好了,另外我们再给大家补充一个关键的步骤,我们之前在我们的这个内网里边,我们来sona cube生成完token以后,大家一定要点下面的continue按钮,然后呢,告诉sona cube,我们接下来要分析的是一个Java项目,这样它才能分析出我们这个Java项目里边的一些源码漏洞,那其他的项目也可以分析,我们来点一个Java,而且我们是使用me构建的,那这一块都准备好了以后,那么接下来就可以finish我们来完成的这个步骤,所以以后呢,所有的分析报告你都可以进我们的这个项目里边看到,这是我们当前的项目,但现在还没有做任何分析,所以这一块呢没东西,所以只要以后有了我们这一块的所有的分析,有bug的,有warning的这些东西呢,都会有提示,这一块呢,一定大家要点一下。
我来说两句