jenkins项目部署总结

发布于:2022-12-13 ⋅ 阅读:(982) ⋅ 点赞:(0)

上篇文章说了Jenkins安装的过程,所以这里直接开始Jenkins为了部署项目而进行的配置以及发布

一 jenkins页面配置

  1. 安装其他必要的plugins
    publish over ssh
    maven integration
    git plugin/subversion plugin(根据各自项目需要安装)

    • 第一步点击 Manage Jenkins
      jenkins_config_first
    • 第二步点击 Manage Plugins
      jenkins_config_second
      先配置url下载地址:
      点击高级
      jenkins_config_advanced
      下拉到底部,url修改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,能够加快插件的下载速度;
      插件具体安装过程不说了,其实就是在"可选插件"tab中搜索,点击安装就行;
      给个示例(#注意 先在"已安装"里查询有没有安装)
      jenkins_config_plugins
  2. 配置maven,git,jdk
    返回"系统管理",点击"全局工具配置", 分别设置maven,git,jdk,如下图:
    maven配置文件:
    jenkins_config_maven_jdk
    jdk配置:
    jenkins_config_jdk
    maven配置:
    jenkins_config_maven_ant
    注意:这里是配置jenkins所在服务器maven,git,jdk安装目录,所以不要勾选它们下面的自动安装

  3. ssh配置
    注意:需要安装publish over ssh插件才会有配置项
    点击"系统管理" ==> “系统配置”
    jenkins_sys_config
    拉到页面最底部,点击新增ssh
    jenkins_config_ssh_add
    填写你想要部署服务的目标服务器信息;

二 创建任务项(task)

  1. 点击 新建任务
    jenkins_task_step_one

  2. 输入任务名称
    jenkins_task_step_two

  3. 进入任务设置页面
    jenkins_task_step_three
    简单设置下 描述信息,保持构建的天数和个数,

  4. 设置仓库地址
    jenkins_task_step_four
    下面的Jenkins那里点击新增用户名和密码;

  5. 构建触发器(可以跳过)
    jenkins_task_step_five
    这里面可以选也可以不选,"触发远程构建"是说如果每次提交代码到仓库时,就会触发jenkins重新发版,一般不用这么样的配置,太频繁了,我这里直接掠过(应该时需要在github/gitlab增加jenkins触发回调地址);

  6. 构建设置
    jenkins_task_step_six
    构建环境没有特殊要求的话暂时不需要填写,点击 构建 当中的"调用顶层maven目标";
    jenkins_task_step_seven
    选择之前在"全局工具设置"中maven配置项,目标填写"clean install";

  7. 构建后操作设置
    点击"send build artifacts over ssh"
    jenkis_task_step_eight
    然后目标服务器,填写source files, remove prefix以及jar包发送完成后执行的命令,脚本;
    jenkins_task_step_nine
    我这里是在目标服务器上切换到 /usr/local/share/jenkin_shell目录下,然后执行stop和start.sh这2个脚本;

#PS
stop.sh内容:

#!/bin/bash
echo “Stop Procedure : aop.jar” >> aop.log
pid=$(ps -ef |grep java|grep aop.jar|awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲') echo 'old Pr…pid >> aop.log
if [ -n “$pid” ]
then
kill -9 $pid
fi

start.sh内容:

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
echo J A V A H O M E > > / u s r / l o c a l / s h a r e / j e n k i n s h e l l / a o p . l o g e c h o " [ {JAVA_HOME} >> /usr/local/share/jenkin_shell/aop.log echo "[ JAVAHOME>>/usr/local/share/jenkinshell/aop.logecho"[(date ‘+%Y-%m-%d %H:%M:%S’)] Start the program : aop.jar" >> /usr/local/share/jenkin_shell/aop.log
chmod 755 /usr/local/share/aop.jar
echo “[KaTeX parse error: Expected 'EOF', got '&' at position 153: … > /dev/null 2>&̲1 & echo "[(date ‘+%Y-%m-%d %H:%M:%S’)] start success” >> /usr/local/share/jenkin_shell/aop.log
echo “[$(date ‘+%Y-%m-%d %H:%M:%S’)] hello world” >> /usr/local/share/jenkin_shell/aop.log
echo “hello…” >> /usr/local/share/jenkin_shell/aop.log

其中JAVA_HOME不要写错,否则无法启动程序;

  1. 任务配置完成以后点击构建
    jenkins_task_step_ten
    然后左下脚会出现一个任务,然后点击 "控制台输出"获取输出的详细
    jenkins_task_step_eleven
    over;

三 可能会遇到的问题

  1. 插件页面进入报错问题
    我的是进入插件管理页面以后我的报了这个错误
    jenkins_config_plugins
    打开浏览器控制台,发现是因为jenkins下载地址问题,然后在服务器上找到jenkins更新插件地址配置:
    切换到配置文件夹路径:cd /var/lib/jenkins/updates(该文件夹里存在default.json文件,需要修改该文件配置);
    使用sed命令:

sed -i ‘s#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g’ default.json && sed -i ‘s#https://www.google.com#https://www.baidu.com#g’ default.json

sed -i ‘s#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g’ > default.json && sed -i ‘s#https://www.google.com#https://www.baidu.com#g’ default.json

注意:以上两个命令任选其一,主要还是看你的jenkins版本,不同的版本default.json的内容可能不一样(我的版本是jenkins-2.303.3-1.1,使用的是下面一个命令)

  1. 插件不可用问题
    如果在线下载的插件提示不能使用,需要自己去插件库里下载(官方,阿里,清华镜像仓库都可以),然后手动上传(需要根据插件的提示来下载指定插件对应的版本号);
    点击 “系统管理” ==> “插件管理” ==> “高级”
    jenkins_plugin_config_advanced
    然后选择你在jenkins官网或者阿里云,清华大学镜像上面下载的插件上传,jenkins会帮你安装好该插件;
    jenkins_config_plugins_upload
    比如你可能会遇到插件循环依赖的问题,然后你可以下载mina sshd api插件(版本为2.8.0-21.v493b_6b_db_22c6, 原来默认安装的是2.8.0-30版本), 需要你手工下载该版本插件,然后手工安装
    注意:需要看你那里提示的循环依赖是否包含mina sshd api插件

  2. 在线升级jenkins版本号问题
    最好不用在线升级jenkins,后面可能jenkins都启动不了(我自己就是听了页面上建议,说插件要使用得升级jenkins,结果升级了jenkins就启动不了了);

  3. jenkins访问页面上"全局工具配置"git/svn是否要配置
    如果使用git的话,需要配置git地址以及下载git插件,svn的话不用,只要下载svn插件就行;
    jenkins_global_config_git
    如果使用git拉代码,配置下git路径,svn的话全局工具配置里没有也不用配;

  4. svn连接不上问题

  • 报的是E175002错误
    (jenkins svn: E175002: Connection reset svn: E175002: OPTIONS request failed on;)
    大概率是svn地址配置不正确;
  • 如果报的是客户端是TLS1.2,然后服务器那边是TLS1.0
    (The server selected protocol version TLS10 is not accepted by client preferences [TLS12] 报错处理;)
    则需要修改jdk(jenkins所在服务器上的jdk)当中的配置, 路径为JAVA_HOME\jre\lib\security\java.security (注意在jre当中),修改该文件里面的
    jdk.tls.disabledAlgorithms参数配置;
    jenkins_jdk_jre_config
    我这里已经把TLSv1去掉了,然后保存并重启jenkins;
  1. shell脚本编写问题
    jenkins通过ssh将打包好的jar包或者war放到指定服务器上,然后启动jar包或者war,这时需要编写脚本启动它;
    注意,下面这两条要写入到shell脚本当中:
    export JAVA_HOME=/jdk/jdk1.8.0_291
    export BUILD_ID=dontKillMe

  2. 如何将tomcat启动日志传输到jenkins
    #这个暂时还未解决,后面再更新;
    回来更新啦:)
    java_log
    其实也不难,就是进入task任务的配置里,拉到构建后操作那里,点击SSH Server Name下面那里(我这里已经点击了“高级”按钮,所以现在展开了就不显示了),然后把“Verbose output in console”勾选上,后面你在脚本里使用echo,tail -f等命令获取的消息都可以在jenkins的控制台回显;
    java_log_ssh
    我这里执行shell脚本,启动tomcat以后,使用的是tail -f的命令(获取tomcat的catalina.out里面日志,jar包直接启动的也类似,填写相应日志文件位置就行),
    从而tomcat启动日志能够会回显到jenkins的控制台,并且使用sed命令(sed ‘Server startup in/q’),从而让tail -f在tomcat启动成功(我这里以Server startup作为成功标识)的时候退出(要不然它会一直卡在那里);

四 写在最后

自己在安装以及部署过程中遇到了非常多的问题,然后看了很多文章,基本上把遇到的问题都解决了,在此向这些文章的作者表示感谢(因为看得非常多,就不放文章链接了),当然,其中有些文章说的也有些问题,所以一定要自己动手去试一试;

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到