00:00
好了,同学们,这节课给大家来讲一下的集群,或者呢叫并发构建集群啊,和我们之前所学习的其他的中间件集群方式呢不太一样。其他的中间件集群,比如说像这个red集群,MY集群,或者什么keepper等等,这些集群呢,每台机器上都需要部署我们所需要的这个中间键,对吧?你要用这个五台redd,那么五台机器上都得装这个red jacks的集群呢,不一样,它只需要我们有这个构建的环境就可以了,我们在这儿呢,只需要有一个master的主节点上边我们安装啊,配置好了jacks,然后在其他节点上呢,只需要有这个环境,什么意思呢?也就是啊,只需要在这个我需要构建的这台主机上啊,啊,比如我需要用到这个Java的环境,那么你就需要装这个JDK,那我需要这gra,那么你就需要你需要那就需要装这个那啊甚至还能帮我们去把这些,呃,这个。
01:01
构建工具自动化的安装到这个目标的我们的这些节点上,那么从而达到这个呃组织达到这个集群的这种效果,那一旦要有这种集群的效果,Jacks会帮我们呃去分配这些任务在哪台机上去执行,那么就可以去并发去执行构建了,尤其是在我们的项目比较多的时候啊,还有就是子项目比较多的时候,那么我们就可以把这些子项目的构建,或者多个项目分散到不同的机器上同时去完成构建,那不然的话,我现在只有一台jacks,那么它的压力呢就会比较大,那在同时并发构建的时候,那就会啊,产生这种任务队列排队这种等待状态,那时间一长,尤其是真实的线上项目有有可能一次构建啊,可能会持续几十分钟,那么在这种情况下,那会造成这个队列非常非常的长,那等待的时间呢也会非常长,那么这种并发构建呢,就解决了这种问题。那么接下来带着大家来部署一下啊,Ins的这种集群环境,那首先啊,我们还是在虚拟机上,在我们原来的这个jackins server呢上呢,我们搞出几个这个副本出来。
02:12
搞两个吧。一个。然后两个。搞出来之后呢,我们把它也给拽过来。呃,改个名字,然后改IP地址啊。然后在这儿呢,我先改完之后,然后再继续给大家,呃,录制这个课程。好了,同学们,我们现在把这个机器呢,已经搞好了,这两台机器一个是。呃,SERVE021个零三,IP地址呢,是202和203啊,我们把这两台机器。启动起来。
03:00
还有我们这个主机啊,Ins的这个。这两台机器上需要安装的是构建环境,不需要安装这个,或者是不需要,不只是不需要安装啊,你启动也是不需要的啊,比如启动这个dragons,这也是不需要的啊,把这两台机器啊,我们配置好就可以了啊,然后我们连一下这两台机器。在这儿。192.168.44.202还有一个203。203。然后把这两台机器呢给它连上。哦诶哦,要填密码。
04:05
等会啊,这个得重新连一下。OK,那我们现在全都连上了,连上之后呢,这两台机器里边现在啥都没有啊,但是已经有我们的这个基本的这个Java环境了。是吧,啊,还有这个maven这两个都是我们需要构建用的这个工具是吧,这个都这两台机器呢,都已经装好了,那接下来我们进入呃S的这个呃主机上我们去配置。把这dragons给它起来。四四这是1018080。
05:03
啊,稍等。好动进去。啊,接下来呢,我们去添加这个两个新的这个节点在这儿,Manage manage dragons。之前我们已经用过这三个这个配置选项了,一个是修改系统的一些配置的,还有这个全局配置,还有我们这个插件管理在这儿,还有一个啊,Manage node and clouds这里边呢,可以去配置啊,咱们的这些节点啊,之前的版本是没有这个clouds的啊,然后在咱们这个,呃,现在这种环境下呢,呃,也不需要用到这个这个这个一些这一些云服务,所以我们在这儿呢,呃,只部署一些这个build,用build的用的这个节点在这儿可能看到我们现在这个节点名称build in no,这是我们当前的这个节点,就是我启动Jack这个节点,也就是现在所有的这个任务都跑到这个节点上,在这我们新建一个节点出来,在新建节点,这呢没什么可选的啊,这个type里边只有这一个现在,然后输入一个节点名称,我们给它叫jackins。
06:20
Jenkins杠零二吧。先创建第一个节点,这里边的名字呢,这是一定要填的,然后这个描述可以不填,然后number of,呃,Ex啊,这个呢也不用管,远程工作目录,我们给它先配置到我们的root目录下,然后后边呢,我们可以自行去更改,然后这个标签,注意这个比较重要,这东西比较有用,也就是如果我们需要去指定在哪台机器上去这个执行的话,那么用到的用的就是这个标签,还有我们后面要学的这个流水线操作,在我们写一些脚本的时候,也需要引用这个label,也就是这个标签啊,指定在那台机上去做这个构建工作啊,然后这个用法,这里边呢有两个可选,一个是use this not as much a,就是尽可能的去呃用这台机,那么这个一旦呢,那么就会这个呃,让自己去选择用不用它,但是只能说是尽可能的去用它啊。
07:21
下这个选项呢,Only build jobs,意就是匹配到我们这个标签啊,才会用它,那这会儿我们怎么选这个use this not as much,这个就尽可能用它的时候,我们可以理解成当我们有很多任务都需要去执行了啊,那么jackins会帮我们去协调啊这个任务,尽可能让让这个任务在这台机器上去执行,那么什么时候在不会在这台机上去执行呢?那么要一般来说就是这台机上没有所所需要的环境。啊,在后边的配置里边,我们也可以去单独去配置,就这台机器,比如说是个Mac系统,或者是个Windows系统,它并不是我们现在的Linux Linux系统,那么只有在我指向某一个具体任务的时候呢。
08:08
才呃这个这个呃只只当我某一个具体的任务啊啊,就需要这种特殊环境的时候,那我一定会指定应该用哪台机器,也就是我会绑定它的这个label啊,比如说我现在这台这个机器呢,需要在构建的时候啊,需要构建这个Windows下的这种呃应用程序,那么我就一定会把它指向到指向到这个Windows的构建环境上啊,所以呃,一般来说我们勾这个就可以了,它是包含这个可以指定的啊,当然它没有这个环境,它也不会自动的帮我们去分配到这台主机上,所以我们在这勾它,然后这个启动方式在这看啊,我们选这个SSH的方式啊,通过SSH把这台主机给它给启动起来,它启动不是说启动这台机器,而是连接到这台机器之后,把它的这个代理让它执行起来,这个主机呢,填的就是这个IP地址。
09:03
四四点。点202啊,这是零二这台机器,然后这个认证在这儿呢,可以添加一个,如果你没有的话,可以添加一个这个新的认证啊,就是全局凭证啊,账号密码,然后用户名root,密码也是root,我之前添加过对吧。哎,这不是,这是那个发邮件的那个。那么还是需要再添加一个root。然后密码这个是目标主机的,呃,这个登录密码。呃,也是这个SSH的登录密码,你得能登上去啊,啊,当然可以指定用户密码,还可以通过这个SSH免密钥的方式去配置啊,然后在这儿呢,我们直接只只选这个啊就可以了,不需要用这个SSH。然后其他的呢,呃,我们还可以去指定S连接的端口号啊,JVM的一些启动项啊。
10:00
等等等等,在这呢,其他的我们就先不管,点个保存,然后这台机器呢,就添加完成了,然后添加完成之后我们刷新一下这个状态啊,现在呢,还没有具体同步过去点一下这个节点。然后这个节点现在正在干啥?嗯。这个状态。系统信息。呃,看这这儿啊,这个日志啊,在这儿能看到啊,他在连接我们当前这个节点,有没有连接上一些错误信息呢,也会在这儿报出来,比如说呃,账号密码不对啊等等什么主机没没连上,启没启动什么的啊,然后现在看起来好像比较正常,诶在这儿呢,就已经同步了,我们可以刷一下这个状态。然后这个现在的延迟啊,大概有70毫秒,然后这个什么主机的呃,可用磁盘空间啊等等等等,在这都显示出来了,这是加了一个节点,那我们再加一个节点把。那个呃,二号节点给他,呃,这个这个零三那台机器也给他给加上。
11:04
零三。啊,这这会儿你就多了一个复制现有节点,就可以把原来那个节点呢,给它给复制过去,但是我们在这儿呢,还是创建一个新节点出来。呃,远程工作目录还是root。标签,JENKINS03。还是这个,然后。用SSH去连,然后IP地址203,然后认证账号密码,然后不用SSH,然后保存。OK,还是在这儿呢,我们看一下刷新状态。诶,OK,现在呢,这台节这个节点呢,也已经同步了,那两个节点我们现在已经同步完成了,然后我们看一下这两个节点,你看在这儿呢,多了一些东西是吧?啊这儿多了一个moting,还多了一个moting点站啊,我们通过GPS可以看一下,他帮我们启动了这个,呃,一些这个这个炸包进来是吧?啊然后在这呢,我们现暂时不管它,这是不需要我们手动配置,他帮我们去搞的。
12:12
对吧,然后接下来呢,我们去运行一下任务啊,看看能不能在这两个加的新加的这个节点上去运行,那么刚刚加完节点之后啊,大家注意看,在我们的这个左下角,在构建执行状态的时候,就不只是有之前的那那么一台主机了,而且这这在这儿呢,多出来两台主机,那JACKINS02 jackin03。来,我们返回到任务这个任务上。我们去执行一下构建看一下。现在我们执行构建啊,只会呃出现一个,比如说你看我在这儿点击这个构建按钮,我多点几下。哎,你看在这儿呢,构建队列里边呢,还有一个,你看我再点一个。由于咱们这个任务呢,呃,相对来说比较耗时是吧,刷新你看在构建队列里呢,这有一个正在等待的。
13:04
是吧,然后在这个执行的时候呢,就只有这么一个节点,这个build in,然后就是我们当前启动S的这个这台主机是吧,你怎么点它都不会在另外的两台主机上去运行,那怎么让它去做这种呃负载呢,或者叫并发构建,那我们先把原来的任务给它给停了。这个也停了。刷新现在没有任务了,我们去配置一下当前我们这个。点这儿。诶大家看在这儿呢,呃,我们多了一个选项叫限制项目的运行节点之前啊,我们如果没配置这个,呃,其他的节点的时候是没有这个选项的啊另外再看这。在必要的时候并发构建,把这个勾上之后,它就会帮我们自动的去分配,呃,当前这个构建任务在哪个节点上去,呃,执行构建了,来保存。
14:08
然后我们再点几下。再看这个任务是不是点几下出了几下,对吧,现在是不是有这个并发构建的感觉了,在当前这个节点上呢,有两个任务正在并发构建,然后在另外的两个节点上呢,也在执行构建,只是每个节点上的并发数是一,为什么是一呢?在配置节点的时候我们能看到。好,我们退回去。呃,这。点开你看我配置这个节点的时候能看到啊,对吧,这就是他这个并发执行的这任务个数你调的稍微多一点,它执行的这个并发执行的,并发执行的呢,就会稍微的多一点了啊。啊,这个是我们当前的这个任务节点,现在配置的是二,所以它能够执行两个任务,同时并发执行两个任务,这任务呢,全都给他停了。
15:04
啊,这是我们添加节点,并且让他去并发执行构建啊,这些都停了吧,现在应该是构建不成功啊,因为这个可能这个测试机没开,他想往这边这上面去部署这台这个这个这个代码是部署不了的。全都停掉。这儿还有一个。好,那么我们再看一下这个任务呢,我们还可以去指定它具体在哪个节点上,呃,去这个这个这个执行构建就是在这儿限制限制这个节点。嗯,限制节点的话,这里边有一些这个呃,这个这个语这这这这叫什么语句又啊,这病语句或者是或语句啊,两个数的表示or就是或者这个啊,然后这两个呢是and啊,比如说我们现在形让他在jackins。
16:00
他能给我们提示出来JACKS02上去执行啊,然后或者两个竖键在JACKS03上去啊执行啊填两个。啊,这两个是label啊,就是那个标签,我们之前那个标签。零三。让这两台机器去执行构建,那么我们现在这个主机呢,不止不完成构建,就这不做构建任务来保存,然后我们再去执行一下这个任务,你看。多点几个。你看这任务是不是就不在我们这个主节点上去运行了。
我来说两句