1 Jenkins工作流程图
2 Jenkins 安装
war包下载
官方下载war包jenkins
Jenkins后台管理
- 需前置JDK,注意:最新Jenkins包需要JDK版本应为11以上
- 在Jenkins war目录下,运行指令,打开后台管理页面
java -jar jenkins.war --httpPort=8080
- 填写初始密码
- 安装插件
构建设置
描述
可以如下图设置当前项目默认的jenkins空间:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8m6Z10ap-1665824941994)(en-resource://database/3641:0)]
源码管理
第一次需添加凭证,用账户名和密码登陆github即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UsLFApHY-1665824941996)(en-resource://database/3625:1)]
构建触发器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3aYUUMD-1665824941998)(en-resource://database/3627:1)]
身份令牌:任意填写,起到标识的作用
如上图,当前项目的回调地址为:jenkins_url/me/my-views/view/all/job/freestyle_test/build?token=test_freestyle_token
只要执行这个地址(在浏览器上访问改地址),该项目就会发起一次构建项目,即拉取代码打包部署操作
在实际中,是由git服务器回调改地址,在后面讲git服务器配置时详细讲解 ,值得注意的是,如果你是学习测试,使用的是GitHub服务,要确保你的回调地址已经试外网映射过的,即往外网可以访问
构建环境
目前未涉及
构建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4mL32icT-1665824941999)(en-resource://database/3629:1)]
可以执行shelliaoben或通过maven打包,根据实际情况配置,本案例未配置
构建后操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ZEX76fb-1665824942000)(en-resource://database/3631:1)]
可以发送邮件或执行shell指令等操作,根据实际情况配置,本案例未配置
常见配置举例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6U67SPWV-1665824942000)(en-resource://database/3633:1)]
stop shell脚本:
#!/bin/bash
echo "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep demo2-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi
start shell脚本:
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_131
echo ${JAVA_HOME}
echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar'
chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/ldp/app/
nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &
echo 'start success'
将这两个脚本上传到linux服务器中用于启动和中止
4 测试
手动构建
点击构建按钮手动构建或通过回调函数构建,发现控制台报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGVDWri9-1665824942001)(en-resource://database/3637:1)]
解决方案:
重新设置凭证,github不以账户名和密码登录而是用ssh秘钥登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dywL167k-1665824942002)(en-resource://database/3639:0)]
如图,在jenkins服务器指定的workspace下就有构建好的flask项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TrGGMYo0-1665824942003)(en-resource://database/3643:0)]
github回调构建
全局设置
允许钩子函数回调
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0qskhhY6-1665824942010)(en-resource://database/3647:0)]
github配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ydozLN1a-1665824942016)(en-resource://database/3649:0)]
高版本jenkins去除csrf
在Jenkins启动前加入相关取消保护的参数配置后启动Jenkins,即可关闭CSRF,运行war包加入以下参数:
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true jenkins.war --httpPort=8080
Running from: C:\Users\Administrator\Downloads\jenkins.war
安装插件
发现github在调用钩子时出现以下问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w2bWRg7m-1665824942018)(en-resource://database/3663:0)]
安装插件Build Authorization Token Root Plugin,免登陆,避免该问题出现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TbHWC9Sh-1665824942023)(en-resource://database/3661:0)]
修改github webhook配置
根据Build Authorization Token Root Plugin文档,需改动webhook的url
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0kEHMJQi-1665824942025)(en-resource://database/3665:0)]
github webhook修改如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAWAYBBf-1665824942026)(en-resource://database/3667:0)]
测试
每当push时,均会自动构建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sClfdN0r-1665824942028)(en-resource://database/3669:0)]
4.pipeline项目
todo
参考视频jenkins 27、28集