系列文章目录
Jenkins系列 第一章 安装部署: link
Jenkins系列 第二章 Jenkins的安装和设置: link
文章目录
1 Jenkins 的安装和设置
1.1 官网 https://www.jenkins.io/zh/
JDK 1.8环境
点击下载
上传Jenkins.war至服务器
运行命令
java -jar jenkins.war
记录下出事密码c2开头的那个
1.2 安装maven
apache-maven-3.9.3-bin.tar.gz
解压
tar xcvf apache-maven-3.9.3-bin.tar.gz
移动
mv apache-maven-3.9.3 /usr/local//maven
运行
/usr/local/maven/bin/mvn
jenkins安装maven插件
新建一个item的时候会多出maven的选项
安装git
yum install -y git
安装完后测试Repository URL
公开项目不需要Credentials
分支默认master
默认每次使用上次构建的pom文件依赖,以达到连续构建相同pom的项目
配置maven
pom.xml前面配置项目名称
配置打完包后上传服务器的选项
1.3 Jenkins发布jar包至服务器
安装插件
publish over ssh
安装完后进入
配置publish over ssh
1.4 ssh publishers超时机制
优化后
nohup java -jar /root/xxoo/demo*.jar >mylog.log 2>&1 &
或
nohup java -jar /root/xxoo/demo*.jar >mylog.log &
1.5 pre steps 构建前清理进程
脚本
1.删除当前进程
2.参数为demo
#!/bing/bash
#删除历史数据
rm -rf xxoo
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包pid
pid='ps -ef | grep $1| grep 'java -jar' | awk '{printf $2}''
echo $pid
#如果pid为Null提示以下否则执行kill命令 使用-z做空值判断
if [ -z $pid ];
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stoping....."
#如果check是Null 的说明删除成功
check='ps -ef | grep -w $pid | grep java'
if [ -z $check];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
执行
./x.sh demo
配置执行x.sh
1.6 构建触发器
合并分支后触发构建
浏览器调用会触发钩子,只能是登录状态
安装插件就可以免登录
不过必须参考下面的url才可以触发插件效果
http://192.168.41.101:8080/buildByToken/build?job=first&token=123123
访问
jenkins构建队列会有任务
使用gitlib发起回调事件
勾选推送事件
勾选合并请求事件
ssl取消
本地请求不支持如何处理
1.切管理员身份
2.进入设置——>网络
3.勾选允许来自web hooks和服务对本地网络的请求
4.提交与合并都会触发的重复优化
取消push
5.总结
钩子会频繁的触发构建项目不推荐
1.7 几种构建方式
1.7.1 定时构建
配置位置
例:
参考cron表达式网址:https://crontab.guru/
1.7.2 PollSCM 触发器
使用cron表达式定时检查代码变更,变更后构建job
1.8 配置邮箱接收构建通知
163发件邮箱 smtp邮箱服务器配置
保存授权码
收件邮箱配置
jenkins URL:配置jenkins的服务地址
系统管理员邮件地址:发件地址
Extended E-mail Notification
添加用户
事件触发器
点击高级
配置完测试一下
构建后操作
点击 Advanced Settings
期望收到的组增加Build User
失败的组
成功的组
1.9 容器构建的几种方式
hub.docker.com
1.9.1 搜索jdk
1.9.2 dockerFile文件
FROM openjdk:11
COPY ./ user/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java","Main"]
1.9.3 上传jar包
1.9.4 移动到目录
1.9.5 新建DockerFile
vi dockerfile
FROM openjdk:11
EXPOSE 8080
WORKDIR /root
##目录相对于WORKDIR
ADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]
1.9.6 执行dockerbuild
镜像准备就绪
启动镜像
测试访问
1.9.7 外挂目录方式
使用镜像openjdk外挂目录方式运行,不需要上面编写dockerFile文件。
相比于前者,编写dockerFile更灵活可以增加自己的独特配置
测试访问正常
1.10 jenkins执行dockerFile
流程:清理->构建
清理配置
启动的时候配置docker启动
1.10.1 jenkins配置docker镜像
修改exec command
java 项目里新建目录增加dockerfile文件后提交git
删除command
配置项