00:00
好,那我们就在这个可视化界面,我们来编辑一下我们的流水线,来点进去,我们之前创建的这个流水线模板在这已经有了,然后我们只需要在这儿点击编辑流水线,我们开始通过可视化界面的方式来编写我们流水线的每一步步骤。好,我们来看一下这个流水线模板呢,给我们默认的步骤就是第一步克隆代码,我们要自动化部署的话,那我们要做的第一步先远程把代码拉过来。把代码拉下来以后呢,接下来我们可以对它代码进行单元测试,什么unit unit test,单元测试通过以后呢,我们可以把所有的代码打包,这些docker镜像啥的,这个镜像呢,我们最终可以推送到我们这个镜像仓库,推送上去以后呢,我们也可以部署到库集群,所以这是我们以前这个流水线模板给我们的整个流水线过程。而这个过程呢,我们现在自己来编写一下,首先呢,在这个大背景上,在空白的位置点一个这个鼠标,然后呢,接下来在这儿会选择一个叫node叫代理,因为我们库在底层呢,整合的是一个金克集群深度整合,他呢给我们创建了这么四个代理,这四个代理是什么呢?其实就是一句话,我们要做什么功能就使用金克斯的什么代理。
01:16
比如呢,这四个有base go me node JS,如果我们接下来的流水线是要做一些Java应用,那我们可以使用。Me呢,是我们Java里边的一些核心的这个项目,打包构建它的这个核心工具,而如果我们要做前端项目,我们可以在这选择弄的GS,如果我们要做go语言开发的,我们可以选择go,当然如果我们要做其他任意的项目,我们都可以选择base,所以这个呢,相当于给我们创建了四个最基本的,我们称为叫agent,就是金集群里边的代理。金克斯在集群模式下呢,会由一个金克斯的master,就是主控节点,跟K8S一样,然后呢控制各个代理节点,然后代理节点呢,自己去来进行我们流水线的构建,而这个代理呢,我们刚才也说了,在我们库珀斯菲尔内部整合,整合了金克斯的这四种代理,你呢就酌情的选择,什么时候呢需要哪种代理,你在这看,比如贝这个代理呢,他在内部还给我们安装有这些工具,比如getate,他能帮忙拉代码,当然库controller它也有这个命令。
02:24
相当于我们可以在这个代理里边,我们运行K8S的一些命令,给它进行部署啥的,那每一种代理,比如base他能做什么,Node GS能做什么,那像这些库包CTRL啥都是标配的,Nodes呢,额外的有了node和雅安这些命令,包括呢,我们在这儿,当然node GS的这个代理也能get下载代码啥的。还有me是我们Java应用的,他的这个代理呢,给我们的内部有JDK的一些命令,Me的一些命令,什么docker cooper controller he这些东西呢也都有,然后呢,当然也有get拉代码的啊,解压缩的这些等等都有啊,然后呢,还有go这个代理,所以在库巴S对金克斯的整个深度整合里边,他给我们做了这四种代理,我们接下来呢,整个流水线先选中代理。
03:14
当然这个代理啊,不是说我在这一选中以后,在下边儿就没法修改了,比如我在流程的这一步,我突然呢要构建一个前端的应用,难道前边我整个大背景选的是me,就构建不了前端吗?不是的,我们可以在每一步的时候单独再来指定我们用什么,我们称为叫容器也行啊,所以呢,我们先在这儿就默认选中门就行了啊,我们选中这个门。这是我们在大背景空白处,我们点击整个流水线呢,使用me这个代理来进行构建,然后呢,在流水线的第一步这么一个框,就代表流水线的一个步骤,然后呢,接下来继续往下就是流水线的下一个步骤。我们先来点击这个大白框流水线的第一步名字,来给个名字吧,比我们就叫拉取代码。
04:03
这个代码呢,我们我们想要做流水线,肯定先把代码给得给我们拉下来,而这个拉取代码呢,加这块的代理啥都不用选,因为这个呢是可选部分的啊,死代制,也就是说我们每一步级别的这个代理是可选的,然后呢,接下来在下边呢,最重要我可以把这个任务删了,然后呢,在我们第一步我们要做什么呢?它这有两个,一个叫条件,一个叫任务,我们可以先添加条件,而当某一个条件满足以后,我呢去来执行一个任务,那我们现在呢,也是没有啥条件,无论任何情况下,我都要先拉代码,所以呢,我直接在任务里边,我点击添加步骤。而添加步骤的时候呢,接下来大家要做的一件事,在这儿呢,先点一个叫指定容器。就是呢,我接下来我要干的所有活在一个指定的容器里边执行,而容器的名字是什么,接下来呢,你还能选择这四个代理的这个名字的任何一个,比如我们现在呢,只是拉代码,那我可以呢选择base容器名,这也叫对吧,我选择base容器,因为base里边呢也有get命令,能拉代码。
05:11
所以呢,我可以选中叫base,点击确定,然那接下来相当于我在这个容器内部,这能添加嵌套步骤,相当于呢,我在base这个容器内部,我接下来呢,希望做一些事儿,那我们的第一步流水线的第一步自然是拉取代码,所以呢,我点击添加嵌套步骤,那拉取代码呢,我们就在可视化界面里边可以选选选就行了,拿取代码我们一定是这个giate呗,对吧,你现在是通过GI拉取代码的,而SVN的话呢,你就选下边,那么就来选择通过GI拿取代码。而我们的代码在哪呢?我们的代码在这个位置叫。这是我们的代码地址,我复制一下,所以把我们的这个代码在我们远程仓库的这个位置啊,我们这个代码要拉先,正好大家看我的这个代码是不是一个私有仓库,包括呢,大家去公司工作的话,所有的这个代码一定是提交到公司自己的私有仓库的。
06:07
所以你真正想要拉这个代码,是不是还得输入账号密码,所以呢,如果出现这种情况咋办呢?我可以在流水线界面在这儿呢。给他先提前创建一个凭证,这个凭证呢,比如我就叫马云的凭证get e。然后呢,它是一个账号密码,所以我就选择账户凭证,我把账号密码一输,我登录,这是我登录马云的账号,以及我登录马云的密码。大家把自己的马云账号密码一输在这儿,可以输入信息马云账号密码。一书,点击确定以后。K8S平台会自己存储马云的这个凭证,点击确定,然后呢,我们接下来在这要拉取这一块的位置仓库的代码的时候,我就选择凭证是马云的。当然要拉取这个代码的什么分支呢?如果我们是多分支模模式下,因为大家如果可能在公司开发的话,有可能两个分支,比如master release,对吧?那我们版本要发布呢,我们会发布到release分支,那我们想要拉哪个分支下的代码,那如果我们有release分支,那么自然是拉我们release分支的代码,没有的话呢,现在就一个分支,我们就直接选择我的master分支就行了。
07:20
我呢,现在是拉master分支的代码,我点击确定,所以呢,我整个流水线的第一步,其实我就做完了,我让他干嘛,是不是拉取一个代码,拉取完代码以后呢,我不妨。用命令打印一下,这有一个添加嵌套步骤,好,然后呢,这个嵌套步骤呢,我这有一个shell,我可以让他打打印一个密啊,我LSLS是不是叫列出接下来我们这个,呃,文件夹里边的是不是所有内容我可以LL吧。我点一个确定,L呢是一个Linux命令,所以我点击确定。点击保存,相当于我流水线的第一步,我就已经改好了,在我们指定的容器内,那个base容器内我先拉代码,拉完代码以后呢,我想看拉过来的代码整个长啥样,那这个流水线第一步做完了以后呢,我们不妨点击运行,先看一下我们第一步做成了啥样,甚至于呢,我们应该先点击编辑金克斯费,因为我们每编写的一部,它最终一定是我们金克斯的,是不是这个金克斯费,只不过我们现在懒得写了,在可视化界面一编以后,它也能为我们生成这个文件。
08:30
所以其实用了库的整个深度,整个金克以后,我们甚至于无需学习金克的任何知识,直接在可视化界面,照着我们的思路流程点点点流水线就出来了。当然这个精子费享内容呢,我最好提前保存一下,那后来呢可以对比看一下金克斯。这是我们流水线的内容,给这一站。流水线的内容里边呢,我们现在的第一步agent,我们使用me的这个代理来执行,而我们所有的大部里边stages我们编写了第一步叫拉取代码,拉取代码是怎么执行的呢?在我们这个容器内会做两步,第一步先用gate给我们去一个利用马云的账号密码去这个仓库拉取到代码,然后呢,看一下拉取的代码长啥样子,这是一个Linux命令。
09:19
好,那正好呢,让它运行一下,看我的第一步行不行,点击运行。正在运行中,点进去看一下,他说整个流水线呢,正在初始化,大家稍等一下。整个呢,它这儿在队列中,然后第一次构建呢,比较慢,诶现在好了,队列中呢,现在它运行我们整个流水线的第一步叫拉取代码。我们来看一下第一步,包括我们来查看日志,这是第一步。第一步的拉取代码,我们来看gate这个代码呢,其实已经拉了,拉了以后呢,但是他在这儿会给我们报错。来看一下这个报错说我们这个协议。
10:00
呃,期望呢是一个HTP的这个协议,但是呢,现在是一个400的错误请求,就说container base。比如说我们这个base这个容器啊,它现在呢,是一个not valid不合法的,然后那我们就来重新来做一下吧。我们流水线。编辑流水线,这是我们第一个对吧,第一个呢,我指定容器叫贝斯,哎,我呢。我可以指定吧,点一个确定。都一样的事儿,我点击保存,点击保存。重新来运行一下我们的这个流水线。我们先来看它的第一步,拉取代码能不能拉成功。或者是我们拉代码的时候呢,是不是我们的代码仓库的地址写错了,先来看吧,他如果还拉不成功,就来看是不是地址写错。好,我们用的这个账号密码啊,用的马云的这个账号密码,然后呢,他开始往下拉。
11:02
然后我们来看一下它的这个日志,Get l l,大家会看到。他说这个代码呢,其实在上一步get已经运行了,只不过呢,我们运行这个LL命令的时候,他说LL。Command not found这个命令呢,找不到。找不到的原因,我们现在接下来在这当出现问题,我们重新编写流水线。因为我们在这呢运行的是Linux的LL命令,其实呢,LL命令在最纯净的Linux系统里边是没有的,我们可以使用LS对吧,比如LS-al,我看我们的所有文件内容。点击确定,点击确定好,重新让他来做一下第一个容器呢,我们现在让它用成me容器啊,现在点击运行。此时运行呢,它还让我们输一个东西,这个东西呢,其实是在金克斯费里边有定义的,我们称为的一个参数化构建,就这个参数,但我们现在呢,还没学到这一步,我们先甭管他让我们输,我们就随便先输一个ABCDEFG的,我让流水线呢先运行起来。
12:08
我们先看流水线来做的第一步,队列中来等他啊。等他排好队,开始给我们来执行好,执行第一步呢,要帮我们来拉取代码。继续在这等一下。他先从马云给我们拉取代码,好拉取完以后呢,我们还会运行一个试要命令,他现在看到那们第一步呢,其实运行成功了,代码呢,拉取来以后呢,下来打印的这一堆东西,LS杠,Al命令,Linux的列出,所有我们会看到什么,Common data hospital model,包括server getway service service。这就是我们代码里边的是不是所有内容好,所以呢,我们第一步代码就是拉成功了,那接下来下一节课我们再来编写第二步他要干的事情。
我来说两句