全面发起进攻Jenkins,势如破竹!

301 阅读7分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情

架构图

image.png

大家好,我是Java步兵营的二排长,之前我们已经看过这个架构图了,那么本篇我们通过VMware这个软件来模拟上图的整个架构环境,我们需要创建出三台虚拟机(操作系统我用的Centos7)分别作为以下用途:

注意:用自己笔记本电脑虚拟三台服务器对内存还是消耗很大的,建议各位小伙伴电脑内存最好>=16g,每台服务器分配以下内存我觉得是比较合适,不至于卡的动不了....

  • Gitlab服务器(IP:192.168.188.21):建议分配6g内存
  • Jenkins服务器(IP:192.168.188.22):建议分配2g内存
  • Runtime服务器(IP:192.168.188.23):建议分配2g内存

如果不会使用VMware创建虚拟机的同学可以参照我之前写的文章。

服务器配置

一、配置Gitlab服务器:

注意:Gitlab服务器所在的虚拟机的内存分配一定要分配6G以上,这个软件比较吃内存,免得安装到最后启动不起来就尴尬了!

1、更新yum源

这一步需要耗费点时间,请耐心等待

yum update
image.png

2、安装依赖

yum install -y yum-utils device-mapper-persisten-data lvm2

3、添加镜像

//国外镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//阿里镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、查看源中可用版本

yum list docker-ce --showduplicates | sort -r
image.png

5、安装指定版本的docker

这里可以选择自己想要安装的,我一般安装次新的。

yum install docker-ce-20.10.9-3.el7

6、配置开机启动项

systemctl start docker
systemctl enable docker
docker version

7、使用Docker安装Gitlab

这里的hostname要注意记得填写自己的虚拟机的IP地址哦!

docker run --detach \
--hostname 192.168.188.21 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
image.png

等待漫长的启动时间后访问浏览器输入地址:http://192.168.188.21/ 然后按回车进入登录界面

image.png

8、查找初始密码

进入容器内部,输入如下命令即可看到一个有效期为24小时的临时密码

image.png

然后回到登录界面输入用户名:root,输入刚刚查看到的容器内的密码,即可登录进入主页。进入主页后记得主动修改登录密码哦!

image.png

9、新建项目

点击新建项目按钮

image.png

选择新建空白项目

image.png

填好项目名称,选择public,然后点击创建项目。创建完毕后在自己电脑的idea上创建一个springboot项目与gitlab上的java-project做关联,验证能否上传就行。

image.png

二、配置Jenkins服务器:

注意:之前我在《大军压境Jenkins,破晓!》一文中已经介绍过如何用Docker部署Jenkins,今天我要给大家介绍另一种部署方式,相对来说较为简单一点,仅需在服务器上安装JDK、Git、Maven和部署Jenkins的war包的即可。

1、下载Jenkins

首先访问Jenkins的官网:Jenkins 的安装和设置 点击下载Jenkins稳定版的war,然后上传到虚拟机上你自己定义的位置。

image.png

2、安装JDK

首先我们使用yum命令搜索一下有哪些jdk

yum search java|greo jdk

image.png

这里我们选择jdk8安装即可,不要选高版本的11,避免war包启动报错(我就是选了高版本启动不了)

yum install -y java-1.8.0-openjdk
yum install -y java-devel

3、启动Jenkins

将Jenkins的war上传到服务器上的自己熟悉的位置,然后运行Java命令启动该项目,启动完成后浏览器输入地址 http://192.168.188.22:8080/ ,这里各位小伙伴要记得把IP改成自己虚拟机的实际IP,然后等待3~5分钟初始化过程。

hohup java -jar jenkins.war &

image.png

然后还是一样哈,填入初始化的密码

image.png

image.png

接下来的过程和我之前写过的另一篇文章Docker方式部署的一模一样,不再向大家展示了

image.png

4、安装插件

为了方便后面自动化构建,这里大家先安装几个插件:

  • Maven Integration:用于构建maven项目
  • Publish Over SSH:用于远程连接Runtime服务器,传输文件

image.png

搜索 Maven Integration,点击左下角安装

image.png

搜索 Publish Over SSH,点击左下角安装

image.png

如果下载插件的过程中出现错误的话,可以尝试升级站点源,插件安装完毕后不要忘记重启Jenkins!

http://mirror.esuni.jp/jenkins/updates/update-center.json

image.png

5、安装maven

前往maven官网下载maven插件,地址我贴出来 dlcdn.apache.org/maven/maven… 下载完成后上传服务器,进行解压缩。命令我也发出来

tar xzvf apache-maven-3.8.7-bin.tar.gz

image.png

然后将maven移动到/usr/local/maven目录下

mv apache-maven-3.8.7 /usr/local/maven

6、安装Git

在宿主机上执行以下命令安装git插件

yum install git

7、小试牛刀

新建一个item

image.png

输入任务名称first,构建方式选择构建一个maven项目

image.png

定位到源码管理,选择我们上面部署好的Gitlab中托管的代码,这里我们选择HTTP形式

image.png

粘贴到URL上,由于我们的项目是设置的公开的,所以这里的Credentials不需要填写,如果是机密的项目的话这里需要填写凭证。

image.png

由于我的代码是提交到master分支的,故这里我不需要改动,如果大家上传的不是master分支的,需要填写你的分支名称。

image.png

这里都可以保持默认即可

image.png

虽然之前安装了maven,但是Jenkins是不知道的,所以这里需要我们手动去配置一下安装路径,点击 the tool configuration 进入配置页面。

image.png

下拉到底部,选择新增maven

image.png

给maven起个名字,输入maven的安装目录,如果按照我上面的命令执行的话,这里输入下面路径即可,然后点击保存。

image.png

返回之前的页面,点击保存。

image.png

点击build可以试下构建

image.png

可以通过console查看执行过程

image.png

由于maven没有配置国内私服地址,所以下载速度很慢,我们可以配置maven为阿里云私服地址,可以加速依赖包的下载速度,首先去服务器上的/usr/local/maven/conf目录下找到settings.xml,先下载到本地然后用本文编辑器打开,找到这里添加一下阿里云的镜像。然后再传回/usr/local/maven/conf目录下选择替换。

image.png

三、配置Runtime服务器:

Runtime服务器只需要安装JDK即可,安装方式参考上面yum安装JDK的方式就行。

四、开始实验

下面我们做下最后的调整即可将整个环境链路串通起来,实现一键点击构建+部署的操作

1、配置SSH

在Jenkins目录按如下步骤操作

image.png

下拉到底部,新增一个 SSH Server(我们这里的远程服务器就是Runtime服务器)

image.png

添加Runtime服务器的相关信息

image.png

image.png 配置完毕后,下拉底部点击Test Configuration,只要你的密码没错、项目运行服务器正常启动、网络通畅的情况下,就会出现success

image.png

2、修改项目配置

我们这里改下之前在Jenkins上新建的first项目的配置,下拉到 Post Steps(构建后步骤)区域配置构建后要执行的操作。

image.png

下拉选择 Send files or execute commands over SSH 选项

image.png

这里配置通配符传输jar文件到代码运行服务器,然后执行我们期望执行的命令,这里我们就演示以下传输完成后启动我们的java演示案例

image.png

保存后构建,然后进入Runtime服务器的/root/first目录下,就会发现我们刚刚传输过来的jar文件了,这时候我们利用jps命令查看,我们的demo服务已经成功启动了

image.png

页面也能正常访问

image.png

如果页面访问不了有可能是防火墙阻拦了端口,可以手动输入命令释放,命令我也贴出来

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

小结

至此我们已经完成了利用VMware虚拟三台服务器,分别模拟了Gitlab、Jenkins、Runtime服务器的配置以及运行流程。感谢各位小伙伴的支持!