我们在使用传统开发方式开发后台系统时,每写一个功能点就需要重新运行项目,然后进行测试。如果项目比较小,还好,但是如果项目比较大,这种开发方式会比较麻烦,因为涉及的人多。基于此,我们需要使用Jenkins和Gitee搭建自动化部署平台,将代码托管在服务器上,减轻本地计算机的压力,解放部署过程。1.搭建Jenkins平台首先,我们需要搭建Jenkins自动化平台。首先我们需要安装Docker,然后在Docker中安装Jenkins。安装命令如下:#安装yum-utils工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#配置阿里云的Dockeryum源sudoyum-config-manager--add-repohttp:///mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装Dockersudoyuminstalldocker-cedocker-ce-clicontainerd.io#启动Dockersudosystemctlstartdocker#配置开机自启动sudosystemctlenabledocker通过以上指令,可以成功安装并启动Docker。接下来,我们通过Docker运行Jenkins。dockerrun\-d\--rm\-uroot\-p8080:8080\-v/home/jenkins-data:/var/jenkins_home\-v/var/run/docker.sock:/var/run/docker.sock\-v/opt/develop_resource/apache-maven-3.6.3:/usr/local/maven\-v"$HOME":/home\jenkinsci/blueocean执行以上命令,Docker会自动拉取镜像Jenkins的并启动,因为我们要部署的是SpringBoot,所以需要准备JDK和Maven环境,但是Jenkins镜像自带JDK环境,准备Maven即可。首先下载Maven压缩包,命令如下:wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz然后,使用命令解压文件。tar-zxvfapache-maven-3.6.3-bin.tar.gz解压后一定要注意Maven所在的目录,例如:/opt/develop_resource/apache-maven-3.6.3挂载到容器的目录,-v/opt/develop_resource/apache-maven-3.6.3:/usr/local/maven请记住将本指令中的Maven目录替换为您自己的目录。现在,我们可以运行刚才的命令启动Jenkins,并使用dockerps命令查看容器是否启动。[root@10/]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESdfa1b8b2c7a3jenkinsci/blueocean"/sbin/tini--/usr/..."15秒前Up9秒0.0.0.0:8080->8080/tcp,:::8080->8080/tcp,50000/tcpcondescending_meitner接下来我们使用服务器的ip加上8080端口来访问Jenkins。管理员密码可以在Jenkins的启动日志中查看,使用dockerlogsdfa1b8b2c7a3查看日志:密码为红框内的字符串,注意红框下的提示:这个也可以在:/var/jenkins_home/secrets/initialAdminPassword表示可以在文件/var/jenkins_home/secrets/initialAdminPassword中查看管理员密码,但这是Jenkins容器中的目录。我们在启动Jenkins的时候挂载了Jenkins的关键目录/var/jenkins_home。host目录为/home/jenkins-data,所以可以使用如下命令查看管理员密码。cat/home/jenkins-data/secrets/initialAdminPassword得到密码后,在Jenkins页面输入密码解锁Jenkins,然后点击安装推荐的插件。接下来,单击[下一步]。至此,Jenkins平台就可以正式使用了。2.Jenkins平台配置接下来就是配置Jenkins平台,首先配置Maven。按照步骤点击进入系统配置。首先,在全局属性中配置它。还记得我们在运行Jenkins容器时挂载的Maven目录吗?Jenkins容器挂载目录为/usr/local/maven。如果实在看不懂,可以保持和我一样的配置。同样的方法再添加一个配置:PATH+EXTRA是为了保持原来PATH变量中的环境不丢失,最后点击保存。Maven配置完成后,还需要配置Gitee。点击可选插件,选择Gitee,然后点击Installwithoutrestart进行安装,等待安装完成。Gitee的相关配置我们后面会讲到。3.创建一个SpringBoot应用程序首先,我们创建一个简单的SpringBoot应用程序用于测试。控制器代码如下。@RestControllerpublicclassHelloController{@GetMapping("/hello")publicStringhello(){return"HelloWorld!";}}然后在配置文件application.yml:server:port:8000和main文件夹下新建一个docker文件,在docker文件夹下新建一个Dockerfile文件,内容如下。#指定基于哪个基础镜像FROMjava:8#作者信息MAINTAINERwwj#挂载点声明VOLUME/tmp#复制本地文件或目录到容器文件或目录ADD/target/demo-0.0.1-SNAPSHOT.jarspringboot.jar#shellscriptRUNbash-c'touch/springboot.jar'#将容器的8000端口暴露给外部访问。EXPOSE8000#容器运行时,执行运行jar的命令SpringBoot应用在打包时,其jar包会放在target目录下。所以需要指定文件的位置,使用ADD命令放入要构建的容器中,然后在Gitee中创建仓库,将代码推送到仓库中。仓库随便起个名字,然后push刚才的应用。4、Gitee配置推送完成后,回到Jenkins管理界面,我们完成Gitee配置,打开系统配置。找到Gitee配置,填写相应信息:点击添加按钮,添加一个Jenkins凭证。选择GiteeAPIToken:获取私有token的地址为:https://gitee.com/profile/personal_access_tokens。5.新的自动化部署任务配置完成后,新建一个任务,点击NewItem。只需输入一个任务名称,然后选择【Freestyleproject】。在源码管理中勾选Git,填写项目地址,然后在buildtrigger位置勾选触发打包的时机。单击构建触发器底部的生成GiteeWebHook密码。然后在Gitee项目中打开WebHooks,添加webHook。这里的URL需要填写公网IP,所以如果你使用的是虚拟机,需要用内网穿透工具进行映射。至于url应该填什么,我们需要修改。填写完成后点击添加,Gitee会向Jenkins发送一个Post请求。如果请求结果如下,则配置成功。回到Jenkins管理界面,继续查看buildtrigger下的轮询SCM,输入轮询频率。最后在构建位置下添加一个构建步骤,选择执行shell。shell脚本代码如下。#!/bin/bash-ildockerrm-fapp_dockersleep1dockerrmi-fapp_docker:1.0sleep1mvncleaninstall-Dmaven.test.skip=truesleep1dockerbuild-tapp_docker:1.0-f./src/main/docker/Dockerfile。sleep1dockerrun-d-p8000:8000--nameapp_dockerapp_docker:1.0该脚本的意思是删除正在运行的app_docker容器,并删除app_docker:1.0镜像,然后使用mvn命令打包从Gitee拉取的项目代码,以及然后使用项目中的Dockerfile构建一个名为app_docker:1.0的镜像,最后运行镜像。6、打包测试最后点击保存,部署任务就创建好了,我们来测试下有没有问题。单击立即构建,Jenkins将立即构建并检查控制台输出。最后,我们可以打开默认地址。
