jenkins安装
博主测试项目为spring cloud,maven构建项目, 选用tags进行构建。 并未进行自动构建。 每次发布前需要人工打tag,实现不同版本号控制。因遇到过开发人员提交代码不全面, 导致自动构建失败。每次打包需要人工进行跟进。
1. 基础环境安装
若已存在环境, 可省略此步骤。若是初始机器可参考Centos7 配置基础JAVA开发环境
2. jenkins下载
作者选择war包启动, 选择原因如下:
1) docker启动,需要配置jdk, maven, git及后续的node后续扩展会越来越复杂。
2)yum安装, 时间太久。 可能跟博主网速有关,下载很久,包括后续的插件安装。
综上原因选择war包启动。
可到jenkins官网进行下载
下载的war包上传至服务器/opt/jenkins目录下
编辑启动脚本, 可自行编辑,开机自启等其他骚操作。
3. 启动Jenkins
vim start-jenkins
#! /bin/bash
nohup java -jar jenkins.war --httpPort=8080 &
保存退出 esc :wq
–httpPort 指定端口, 需要注意端口冲突
可用一下命令查看是否端口占用
lsof -i:8080
若lsof命令提示不存在, 使用一下命令进行安装
yum install lsof -y
修改文件更改为可执行文件
chmod +x start-jenkins
执行脚本, 启动jenkins
sh start-jenkins
回车后查看 nohup.out 文件内容
tail -f nohup.out
看到以下内容则启动成功
访问jenkins ip:8080
填写该路径下的密码, 或复制nohup.out 最后提示的密码
可选推荐安装, 若是有其他插件安装可选 选择插件安装进行自行配置
安装插件可能会出现错误,有以下解决方案
- 刷新页面, 对安装失败的插件再次进行安装
- 针对安装失败的插件,自行下载并上传
- 站点升级再试
插件安装完毕, 创建管理员用户
保存用户后, 实例配置, 直接点击保存完成即可
开始使用jenkins
4. 环境进行配置
maven setting.xml配置
选择文件系统中的settings文件, 填写服务中maven settings.xml文件所在位置
配置jdk, 填写服务中jdk所在的安装目录
Git配置, 查找git所在安装目录, 若是yum安装, 一般目录在
whereis git
/usr/bin/git
配置maven, maven所在目录
点击保存, jenkins基础环境配置结束
5. 插件安装
博主测试打包为spring cloud项目,选择maven构建项目, 选择git参数化构建(使用项目中的tags进行打包构建)
再此处搜索 maven integration (maven构建项目)
git param (参数化构建, 选择tag)
直接安装即可
选择安装完成重启jenkins
稍作等待, 等待再次登录进入jenkins
6. 新建任务
填写任务名称, 选择构建一个maven项目后确定
7. 配置
- General部分, 选择参数化构建过程, 选择git参数, 填写参数名称, 选择参数类型
- 源码管理, 地址输入, 若无配置ssh, 添加源码地址登录用户
- 构建触发器, 由于选择人工介入。取消任何触发,默认选择的第一项去除
- Pre Steps 选择执行shell
shell脚本内容
echo "打包前release=$release"
cd xx-parent
mvn versions:set -DnewVersion=$release
改变当前项目默认版本号
- Build
可选择高级, 进行参数配置, 优化参数等
- Post Steps
选择构建成功执行
export release=$release
cd xx-parent
mvn versins:revert
cd ....../docker-compose
docker stack deploy -c docker-compose.yml xx
项目默认版本恢复
跳转到docker-compose.yml 默认的目录
docker stack deploy 发布项目
保存
8. 进行发布
点击build with parameters, 可选择release参数, 点击开始构建
等待最后发布, 查看结果。 如果失败, 情况众多,请根据具体情况进行分析, 解决错误。
查看控制台输出, 最后提示SUCCESS即发布成功,发布成功不代表能被正常访问, 还需要进行确认
docker ps -a
docker logs -f containerId
查看该镜像启动的容器, 查看日志是否与本地启动时过程一致,并正确启动
其他事项
- 初次执行时间会长一些
- 发现maven相关错误, 查看nexus是否正常或setting.xml文件是否正确
- 提示 docker swarm init 等相关, 在docker所在服务器执行 docker swarm init 进行初始化。 如果没有其他容器编排等, 可搭建docker 集群。 使用swarm进行管理, 由于博主计划jenkins与K8S结合使用, 不做docker集群。
- 发布过程中, 需要的dockerfile, docker-compose均存在于项目中, 随项目一同提交。 会在后续文章中进行配置说明。
本文后续会逐渐完善