喝杯咖啡,一键部署完成!

新项目没有完善的部署流程,只能自己先搭一套来顶一顶了。,服务器资源如下:,图片,原理图如下所示:,图片,Jenkins 打包部署原理图,Jenkins 官方网站对 Jenkins 如何安装已经讲解得非常清晰了,所以这里不再赘述,贴一下官方网站,自行去看吧。,Jenkins 下载地址:,Jenkins 安装步骤:,安装完成后,我们需要配置 Jenkins。,因为我们要打包部署的项目是 Java 项目,所以需要将 Java JDK 所在的目录和 Maven 所在目录配置到 Jenkins 中,这样 Jenkins 打包时就能利用这两个工具进行打包。,配置全局工具:Maven,配置如下:,图片,Jenkins配置入口,图片,Jenkins Global Tool Configuration,配置环境变量:,图片,全局属性配置,上面的配置完成后,我们就可以测试下是否可以将代码仓库中的某个分支的代码拉取下来进行打包。,在使用 Jenkins 时,我们必须创建一个任务才行,然后这个任务里面可以配置要执行的各种操作。,Jenkins中自动构建项目的类型有很多,常用的有以下三种:,每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在,实际开发中可以根据自己的需求和习惯来选择。,下面演示创建一个简单的自由风格项目来完成项目的集成过程:,图片,图片,创建一个项目,创建成功后就会出现一条记录:,图片,Dashboard 界面,为了测试我们的 Jenkins 是否能正常拉取代码并打包,我们需要配置 Gitlab 代码仓库的地址、用户名、密码。,图片,配置拉取的代码仓库地址和认证方式,图片,配置 Maven 打包,配置到这一步后,我们可以先验证下这些配置是否生效。,在 Dashboard 可以看到配置完成的任务,点击 Build Now 按钮即可开始拉取代码、打包项目。,我们还可以从控制台输出看到打包记录。,Jenkins 会从 Gitlab 仓库拉取指定分支的代码,然后运行 mvn clean package 命令,进行打包。,图片,打印 Jenkins 运行项目的结果,输出记录中打印出了以下关键信息:代码拉取后存放在哪,打的 jar 包在哪。,代码和生成的 jar 包在到这个根目录找到:,还可以从打印日志的最后看到这次打包用时 2 min 33 秒,任务的执行状态为 Finished Success。,接下来就是将这些 JAR 包拷贝到远程服务器地址。,拷贝安装包需要用到一个插件:Publish Over SSH。,Dashboard>Manage Jenkins->插件管理->Avaliable plugins。,下图是已经安装好了这款插件的截图。,图片,Jenkins 插件管理,配置这个插件的全局配置:,
,图片,
,配置远程服务器地址,在上传打包好的 JAR 包之前,需要将应用服务器上的 JAR 备份。,备份的步骤如下:,图片,
,备份服务器 JAR 包,需要配置以下内容:,拷贝多个 JAR 包到远程服务器,项目采用的 Docker Swarm 方式来管理集群中的微服务。,Jenkins 通过 插件 发送命令到应用服务器上执行指定的脚本,配置远程执行脚本的命令,这个命令使用 nohup 和 sudo 权限来执行名为 restart.sh 的脚本。nohup 命令用于将脚本在后台运行,即使终端会话结束,脚本仍然继续运行。,如果想要 jenkins 执行远程服务器上的脚本,则需要先在远程服务器上创建一个可执行的脚本。,这里我们需要重启服务器的容器服务,所以在这个目录 /nfs-data/wukong/ 编写一个 restart.sh 脚本。,这个命令使用–force选项来更新名为”accountservice、gatewayservice、qmsservice”的 Docker 服务。命令的输出被重定向到文件/nfs-data/wukong/jenkins/xxx.txt中。,再次测试是否能正确编译代码,上传 jar 包,部署微服务。,部署结果如下:Finished: SUCESS,部署结果,SSL certificate problem: unable to get local issuer certificate,解决方案:,参考链接:https://stackoverflow.com/questions/39746535/jenkins-git-ssl-certificate-error,解决方案:,参考链接:https://stackoverflow.com/questions/39746535/jenkins-git-ssl-certificate-error,Exception when publishing, exception message,图片,问题 3 的记录,远程机器上需要用 sudo 命令执行 docker 命令,这个时候需要输入密码,通过配置账号 xx 执行 sudo 命令不需要输入密码。,图片,问题 3 的解决思路,图片,问题 4 解决思路,图片,问题 5 的记录,解决方案:修改超时时间设置,图片,问题 5 的解决方案,InfoQ 签约作者、蓝桥签约作者、阿里云专家博主、51CTO 红人。

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/26628.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月23日
下一篇 2023年7月15日