宿主机软件安装
jdk
1 | [root@centos7cz tools]# whereis java |
maven
- 下载解压
1 | cd /carloz/tools/ |
- 配置环境变量
1 | vi /etc/profile |
- 查看结果
1 | mvn -v |
- 替换阿里源
1 | vi /carloz/tools/maven-3.6.3/conf/settings.xml |
找到<mirrors></mirrors>
标签对,添加一下代码:
1 | <mirror> |
- 指定下载资源位置
1 | mkdir -p /data/maven-repo |
- 指定jdk版本
1 | vi /carloz/tools/maven-3.6.3/conf/settings.xml |
git
1 | [root@centos7cz ~]# yum install -y git |
jenkins做常规配置
点击系统管理->插件管理,进行一些自定义的插件安装:
角色管理权限插件
Role-based Authorization Strategy
ssh
安装ssh插件
配置公钥凭证
在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了:
jdk
路径: 系统管理 -> 全局工具配置 -> JDK
maven
通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置
git
安装插件:
Build With Parameters
Git Parameter
git可执行文件配置
gitee
在线安装
- 前往 Manage Jenkins -> Manage Plugins -> Available
- 右侧 Filter 输入: Gitee
- 下方可选列表中勾选 Gitee(如列表中不存在 Gitee,则点击 Check now 更新插件列表)
- 点击 Download now and install after restart
添加码云链接配置
前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
在
Connection name
中输入Gitee
或者你想要的名字Gitee host URL
中输入码云完整 URL地址:https://gitee.com
(码云私有化客户输入部署的域名)Credentials
中如还未配置码云 APIV5 私人令牌,点击Add- > Jenkins
Domain
选择Global credentials
Kind
选择Gitee API Token
Scope
选择你需要的范围Gitee API Token
输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokensID
,Descripiton
中输入你想要的 ID 和描述即可。
Credentials
选择配置好的 Gitee APIV5 Token点击
Advanced
,可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而定)点击
Test Connection
测试链接是否成功,如失败请检查以上 3,5,6 步骤。
配置成功后如图所示:
执行脚本准备
首先我们先把需要远程执行的脚本准备好。
脚本文件都存放在了mall-swarm
项目的/document/sh
目录下
上传脚本前在IDEA中修改所有脚本文件的换行符格式为LF
,否则脚本会无法执行;
将所有脚本文件上传到指定目录,这里我们上传到/data/carloz/mall-swarm
目录下;
1 | mkdir -p /data/carloz/mall-swarm-sh |
Jenkins中创建任务
接下来我们将通过在Jenkins中创建任务来实现自动化部署。由于我们的
mall-swarm
是个多模块的项目,部署上面和曾经的单模块项目还是有所区别的
创建gitee登录凭据
mall-admin
由于各个模块的执行任务的创建都大同小异,下面将详细讲解mall-admin模块任务的创建,其他模块将简略讲解。
- 首先我们选择
构建一个自由风格的软件项目
,然后输入任务名称为mall-admin,配置其Git仓库地址,这里我直接使用了Gitee上面的地址:
- 之后我们创建一个构建,构建
mall-swarm
项目中的依赖模块,否则当构建可运行的服务模块时会因为无法找到这些模块而构建失败;
1 | # 只install mall-common,mall-mbg,mall-security三个模块 |
- 依赖项目构建示意图:
- 再创建一个构建,单独构建并打包mall-admin模块:
- 添加一个构建来通过SSH去执行远程任务,用于执行mall-admin的运行脚本:
- 点击保存,完成mall-admin的执行任务创建
mall-registry
mall-registry和其他模块与mall-admin创建任务方式基本一致,只需修改构建模块时的
pom.xml
文件位置和执行脚本
位置即可。
- 我们可以直接从mall-admin模块的任务复制一个过来创建:
- 修改第二个构建中的pom.xml文件位置,改为:
${WORKSPACE}/mall-registry/pom.xml
- 修改第三个构建中的SSH执行脚本文件位置,改为:
/data/carloz/mall-swarm-sh/mall-registry.sh
- 点击保存,完成mall-registry的执行任务创建。
- 尝试构建 mall-registry 模块,如果构建成功,再创建其他模块的构建任务
其他模块
其他模块的执行任务创建,参考mall-admin和mall-registry的创建即可。
模块启动顺序问题
关于各个模块的启动顺序问题,
mall-registry
模块必须第一个启动,mall-config
模块必须第二个启动,其他模块没有启动顺序限制。
推荐启动顺序:
- mall-registry
- mall-config
- mall-monitor
- mall-gateway
- mall-admin
- mall-portal
- mall-search
- mall-demo
总结
我们通过在Jenkins中创建任务,完成了微服务架构中服务的打包部署工作,这样当我们每次修改完代码后,只需点击启动任务,就可以实现一键打包部署,省去了频繁打包部署的麻烦。