00:00
好,各位同学啊,那么接下来咱们开始我们的内容啊,首先呢,先给大家简单介绍一下金S啊,这里面其实金S如果你要是想仔细了解的话,建议还是去呃官网去查一些更加详细的资料啊,但是这里面我只是呃给大家总结了几点啊,以我这几年的一个经验给大家分享一下,呃,首先我认为金呢,它就是一个自动化的服务器,之前我们写一些脚本也是写一个一个函数去执行是吧,那么精子跟这个很类似,只不过它把这个脚本视为叫PA啊,然后每一个函数呢,就可以叫做一个stage。是吧,每一个步骤,那到目前为止呢,金S已经发展已经超过了15年啊,很长的一段时间,那么相信在国内啊,包括大家在使用的过程中,这个CI这一块肯定我们最好的还是这那这CD这块呢啊,CI是什么,CI是持续集成。是吧,我们集成啊,就开发写完代码之后,这个集成的过程也就是编译打包啊,扫描这样的一个过程,那么CD呢,就是我们发布,我们把这个软件发布到我们的环境当中。
01:10
那说到CD啊,这里面有很多场景,为什么说金X这块比较弱呢?是因为金S这块如果你要做CD的话,需要配置大量的工作啊,比如说我们要部署到,呃,现在部署的机器的类型可能有这几种啊,一种是VM,就是虚拟机啊,云主机,另外一种呢,就是关于容器的一个部署。是吧,还有一种就是关于这些各种呃,公有云这些主机的部署啊,那么在使用金S去做CD的时候,我们做过一个实践,就是呃,因为我们当时都是VM机器啊,然后我们在每台机上装上了一个啊,这个salt啊,使用s de装了一个thought agent,因为它是CS的一个架构,然后我们把每一个金S的no的节点,把它装成了一个这个salt master这样的一个决定这角色,也就是说当我来一个项目的时候,我调度到node啊,然后通过node上面这个salt,然后把这个软件完成一个自动化的发布。
02:09
啊,当然也有很多在有安是吧,安都可以啊,但是在君子这块配置起来还是相对复杂一些,没有那么现成的一些工具,你那些开不了是吧?虽然说有插件哈,但有时候我觉得用插件还不如我们自己,呃,用下或者come on的这些命令啊,还更友好一些。啊,为什么这么说呢?因为当你安装这插件越来越多的时候,他们这就越来越难以管理,而且会越来越臃肿。OK,好,那么这是这个发布,所以说CD这块呢,我们这边目前用的还是金S,但后续可能考虑SP啊这样的一个工具啊,或者有更好的什么精子叉云原声啊,什么T的是吧,CD啊等等,大家下去可以去研究一下,因为我对这块啊,相对来说还是比较熟悉一些啊,后面我们可以再研究这个CD这块。
03:01
好,那么这是JS,那么JS呢,其实核心呢,就是流水线啊,任何一个,包括现在做任何一件事情啊,最核心的还是流水线,那么建立好一条稳定的流水线,那么意味着什么呢?同学们。啊,我们都是做运维啊,有很多做开发的同学是吧,有的时候我见过一些传统的运维啊,就是开发人员他写完代码了,然后交给测试去测对吧?呃,交给运维先去布测试环境对吧,测试环境。然后布好了交给测试去测啊,测试测好了,然后再交给再通知运维,运维去啊部署到预生产啊,部署到生产,对不对,是这样的一个过程,那么建立了一条稳定流水线意味着什么?也就是说我们根据刚才我描述的现状,我可以分成几条流水线,我可以分成三条流水线啊,一条是测试流水线,一条是预生产流水线,一条是生产流水线。
04:00
啊,期间呢,我们就不需要运维来操作了,我们建立好流水线之后,开发人员写完代码,诶,然后点击流水线,我可以部署到测试环境。对吧,然后测试环境没问题,我再点一下预生产流水线,我部署到预生产啊预生产我没问题了,我再部署到生产。是不是把我们运维角色给去掉啊,有有的时候可能是去掉,有时候可能也是在保留啊,那么期间这个时候就可以什么呀,就无需再。耽误时间了对吧,有的时候我们要去部署的时候,可能还得需要啊沟通呀,提前协调之类的是吧,现在我们直接什么任性的一键就发布了啊,所以说流水线的一个好处。呃,这就是genes的一个简单的介绍啊,然后我们来说一下JS的一些应用场景,JS应用到哪些场景,我们用JS主要是来做什么?这点我们要明确一下,首先我要告诉大家,我们用金S可以做任何事情。为什么呢?因为金子不单有插件支持,而且它可以读shell Python等等等等脚本。
05:05
也是,他可以调你很多脚本啊,你想做什么什么事情,你可以写成脚本,然后用精子去读取都可以。啊,但是大家要知道一点,JS是帮助我们去完成这件事情,而不是说它自身就有这个功能。举个简单的例子啊,我在做流水线的时候遇到过很多问题,就是我做好了一条流水线,因为一个前端的项目或者后端的项目,他肯定是打包。对吧,先打包,就说打包这一块就出现过很多很多问题。是吧,就比如说我现在开发人员,他在技术流水线的时候,他认为是什么样的呢?我把代码提交上去对吧,然后这个流水线就会帮我把代码下下来,帮我去编译,然后去部署,但编译出了错怎么办呢?他认为是JS的问题。是吧,我相信有很多人会这么认为啊,但这是错误啊,你要这么去想,就是如果是JS出现问题,其实JS它集成的也是这些工具啊,假如我们要想实现这个源代码,下载我集成SN或者是D的,对吧,这样就可以下我的代码了。
06:12
也就是说JS只是调的GI这样的一个客户端去下代码,而不是说JS它自身就有下代码的功能。知道吧,它是这样的,它也是需要插件去实现的。对吧,这是一个误区,一定要注意啊,要不然后面你排查问题不好排查。啊,有的人可能认为啊,这这S的问题,我得赶紧查找这的资料,其实呢,比如下代码错了,我是不是可以根据SN或get报错去查看错误呀,或者是ma打包失败了,我可以根据ma的错误来解决对不对,而不是去针对金S。好,这是一个误区啊,那么第二个呢,就是关于精子的一些构建工具的集成啊,所有的工具几乎都是可以支持啊,Ma and radio n PM啊,这些构建工具呢,主要来给我们实现源代码的打包,单元测试等一系列的工作。
07:03
那么so cube s cube呢,是一个代码质量平台啊,也可以集成到JS里面,它也有对应的插件来完成质量的代码的一个扫描,对源代码的一个扫描。然后就是CD了,CD的时候我们可以使用source stack以及安来实现这种自动化的发布啊。后面可以集成N多个平台啊,比如说集成gma,做一些自动化测试啊,集成so这个这个是啥大家知道吗?这个是那个小米开源的一个circleq的一个扫描啊,如果你有这个circleq在代码库里面,或者在哪里存放,需要进行扫描的话啊,因为当时我们用SOA的时候,呃,发现开源版本是没法支持so的一个扫描的,所以后来我们就找到这个so的平台,然后做了一个这样的一个。跟jamess集成做了一个circle分析和优化啊,还挺好用,大家也可以去用一用啊,然后这块呢也做了集成,就是我们可以把JS sle放到容器里面,也可以说是让它动态的在K8S里边生成啊,整个平台都可以放到K8S里面。
08:11
OK,这是它的应用场景啊,所以说这的插件资源还是比较丰富的,而且我们能想到的工作几乎都可以完成。而且还要告诉大家。其实每一个运维人员他都有一个开发的梦,是吧,我不知道大家是不是啊,包括我就有就是我可能我想自己写一个平台,对吧,但是我前端我不会。是吧,但是我后端我会写脚本,那怎么办呢?那你可以用GIS解决这个问题,因为JS的UI上面可以选择各种参数。啊,其实也就是传参到调脚本的一个过程。OK,好,那么这是JS的一个简单的介绍啊,那么接下来呢,我们就准备去安装一下我们这位JS啊,那么JS呢,它是使用Java语言开发的啊,我们首先得需要在我们的机器上去装好JDK。
09:04
好,打开我这台机器啊。哎,还没开机啊好,需要装一个JDK啊,JDK的版本可以是八,也可以是11,因为它目前最新版本已经支持JDK11了。OK,已经支这个11了啊,那么真的安装,你可以在Windows,可以在linus,可以在Mac啊,全平台都是支持的。好,那么如果如何下载这个包呢?大家可以看到啊,这是一个清华的镜像源,那么在这里面你就可以找到。首先我打开清华的清香园,这里面有很多包啊,大家可以都可以去使用。我是镜像源都有啊。我们需要找的就是jeans。直接打吧,直接在他ul下边加个惊喜就可以了。好,你可以看到S各个平台的什么deb系统,Open open Su,还有OS叉啊,以及咱们red head啊,还有包啊,Windows都可以支持,就是它是跨平台的完全支持啊。
10:13
好,来看一下啊。好,机器起来了,我先登录一下系统。它是跨平台的啊,大家可以看到是吧,而且我们这节课用的就是Linux版本啊,我们可以下载red head。这个版本。在这个版本里面,我们选最新的版本就可以了,好吧,11月21号更新的啊。链接地址。那我去下一下啊,来先看一下当前这台机器的IP。那没点去吧。一点一百啊。
11:14
好,这台机器呢,我已经把JDK装好了啊。现在JDK的版本呢,是1.81.8的版本。大家也可以去装一个JDK啊。好,我首先把这包下下来啊。好让他先下载啊,来看能不能上网。好,没问题啊,正在下。好,那么大家知道这个操作了吧,就直接去这上面去下载就可以了啊,然后关于JS安装方式呢,这里面给大家总结一下啊,就是有几种,第一种呢,是通过挖包部署袜包,就刚才我们在这个静像源里边看到的。Wow。这些就是挖宝。啊,挖宝这里面呢,就是你可以下载下来,直接通过Java杠架啊,这样的方式去运行,非常简单啊非常简单,你单。
12:09
非常简单,那么第二种方式呢,是通过Mac啊,Mac系统因为有这个blue是吧,直接通过blue去install就可以了,但是你安装的时候要装这个什么呀LTS啊长期支持版本。OK,那基于Windows部署这里面就不说了啊,直接在这里面去下载一个这个Windows的这个。包啊,就exe这个包直接去装就可以了。啊,前提是JDK你都得去装啊,那今天我们讲的就是基于Linux啊,基于Linux我们推荐使用RPM包的方式去装啊,这个装完之后直接启动服务就可以了。好,我们看一下包已经下载下来了,对吧?好呃,来看一下这台机器有没有装这S啊2PM。Three。我先检查一下有没有装啊。
13:16
好吗?然后我们装的时候直接通过RPM这个命令去装就可以了啊这样吧。先不检查了,有点儿慢啊。好,这是它的一个安装方式啊,安装完了之后啊,我们需要有一个基本的配置。我直接去装一下啊。这台机器是不是,呃,因为这台机器之前我是做doer用的啊,我看一下是不是doer又起来了。
14:28
好了,稍后看一下啊。然后安装完之后呢,其实我们要需要改几个地方啊,安装完之后,其实需要改的就是它的这个。呃,镜像源啊,把镜像源改成国内的啊,指向国内的地图,OK,安装好了是吧,好,我们启动一下。
15:06
好,这里边可能执行的迭代啊。果然。果然,果然。果然,我说这台继续这么卡是吧。啊,我先关掉它啊,完全用一个镜子。这个这应该没有启动啊,因为它的端口应该被占用了。是吧?啊,我们来看看他的状态。哎,启动了啊,PS一下吧。
16:00
有叫Java。哎,没启动对吧,是因为端口被占用了啊,因为这个galab里边它是有占用这个端口的。扫一下OK,没问题了啊,这次我们再来重新启动一下。这是什么?哎,启动了。呃,这样我们把改一下配置文件啊,我们改一下这个JS的这个账号。这里边我们为了实验啊,我们就把JS启动用户改成root了啊。好,然后我们来启动一下。重新启动一下JS啊。那这里面可能显示有点问题,但实际上我们要看有没有Java这个进程啊,你看这是Java起来了是吧,你看它默认指定的就是8080这个端口啊,那么刚才我前面说的这些配置在哪里可以改?同学们啊,是这样的,如果你要改它的端口,那么就是改我们刚才这个ETC下的conflict这个文件。
17:18
那么这里面呢,可以指定JS的,那你看金home好吧,还有就是JS我们来浏览一遍啊,这是JS的一个home,然后JS启动的命令,以及这启动用户。还有他这个option啊,以及咱们这个。端口啊,都可以在这里面去改。好吧,这里面就说这么多了啊,我们主要改的就是这些啊,不过一般情况下我们不会去改啊。OK,那金克S起来了,我来访问一下JS啊。尾号8080。
18:02
好,那么这是这块啊。好,这你看已经装好了是吧,安装这块应该大家没问题了是吧,好接下来你看我们就开始做一些基本的配置啊,比如说解锁。解锁的时候,他已经把这个放到了这个文件里面,我们需要去读一下这个文件。好把文件里边这个内容啊,把这个内容给复制出来。好,这里。帮扶到这里啊。粘贴一下,然后继续。这是一个初始化的一个状态啊,在安装JS的时候,这一块可能会出一些问题啊,比如说因为网络的原因啊,各方面原因,这里边可能会慢一些。好,这是JS的一些配置啊,首先解锁,那么这里面有更详细的一个过程,同学们。
19:01
这里面有各种包的安装部署,以及它的安装后的配置。差不多啊,大家可以借助这个文档。好,这个我们就选择插件来安装就可以了啊,我们不不安装它默认自带那些了。Photos不用装啊。嗯。我们先什么都不装吧,因为你要装插件的话,它会很慢很慢啊,还得给你下载我们后面再装好吧。全部。我。OK。安装。因为这样的话,很快你就能进入到这啊好,我们加一个的密码,密码是。123456。然后用户名完就admit了啊,OK,保存。
20:00
并完成。呃,就是创建我们第一个这个管理员账号啊,OK,域名地址没错,保存完成。开始用TS。好,那么这时候呢,这个S就已经安装好了,你看我们还是挺快的啊,但是那些插件我们还没有安装对不对,好,那首先我们要改另外一个配置啊,就是关于我们的这个。镜像源啊,镜像源我们要更新一下我们管理经。然后在这个插件管理啊。这里面有高级啊,高级这里面你看它指定的是默认是官方的啊,就是那个。官方这个金,官方的一个圆,那我们就在这里面选这个。Update是吧?我们选这个地址就可以了啊,把这个update Jason copy下来,复制链接地址来贴到这。这是这里。
21:01
粘贴提交。这样的话呢,我们就改了它的地址,其实到目前为止,金子中文社区已经推出了一个国内的源啊,但大家有兴趣的话可以去配置一下,OK,我先配置这个mirrors了啊,然后可以做一个检查。安装插件有很多种方式啊,一种是在这个插件源里边去安装,另外一种呢,就是可以在这里面上传插件去安装,先了解一下,OK,先来解一下啊。好,那么这是JS的一个基本配置,那么最后一步就是我们需要装一些插件了,来我们来检查一下啊,可用的插件。我们需要装哪些插件呢?其实我们只需要把pipeline相关的插件装上就可以了。这个过程可能有点慢啊。
22:00
我们把这些呃,Pipeline啊get相关的插件安装好就OK啊。取消掉。安装好了插件之后呢,就是我们需要为它加一个节点啊,加一个agent节点啊。要不我们先去加agent的节点吧?嗯,可以稍等啊,看一下这个。这个太慢了。这里面选择我们的这个管理插件。可用。
23:01
然后我们先打开一个新的页面啊,让它先加载着,我们先去加一个node节点。如何去添加node节点,大家注意看啊,在这里面我们可以选择管理精子,你看这就是他的node节点,只不过这是master啊。我们可以在这里面有一个。管理节点是吧,选择。这里面我们选择添加一个节点,节点名称我们就叫做。601。好固定的节点啊。那么这里边你看还有很多插件没装上是吧,导致他这里没选着啊好,我们先装插件啊他。把pipeline先关在插件装上啊,这个是多分支的,先可以不装啊。好,装个排版插件看看吧。他会给你把这些相关的依赖的插件都给你装上。
24:05
OK,后面就是一些等待的过程了啊。好,等我们插件装完之后,我们再来添加这个note节点,因为你看这里边是没有这个模式的啊,没有模式。
我来说两句