当前位置:   article > 正文

【jenkins】离线安装配置(svn+maven项目)_jenkins离线安装插件

jenkins离线安装插件

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
通常与版本管理工具(SVN、GIT)、构建工具(Maven、Ant、Gradle)结合使用。

jenkins离线安装及配置可见linux在线安装及配置jenkins

一.下载及安装

nohup java -jar jenkins.war --logfile=server.log --httpPort=8088 > server.log 2>& 1 & 
  • 1

非离线状态时解决加载慢和插件安装慢的问题

  • 将谷歌地址改为百度,将更新地址改为国内地址
    切换到安装目录下的update目录,cd /root/.jenkins/update
    修改default.json(注意注意!)
http://www.google.com/改为http://www.baidu.com/
https://updates.jenkins.io/download/plugins/改为http://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
  • 1
  • 2
  • 修改hudson.model.UpdateCenter.xml文件<url></url>内的地址如下
    切换到安装目录下,cd /root/.jenkins/
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 浏览器打开http://[ip]:8088
    根据提示输入密码
cat /root/.jenkins/secrets/initialAdminPassword  //查询密码命令
  • 1
  • 如果是非离线,等待推荐插件安装;如果是离线,则跳过,之后手动安装

二、插件安装

离线安装方式

下载插件.hpi文件:https://plugins.jenkins.io//http://updates.jenkins-ci.org/download/plugins/
在这里插入图片描述

若安装报红色错,通过查看提示可知是缺少其他插件或者其他插件版本太低,因此需要下载相关插件。
若报黄色错误,通过提示可知已安装,需restart重启,http://[ip]:8088/restart重启

jenkins插件离线安装注意事项

  • 下载所用到的插件:publish-over-sshmaven-pluginsubversion
  • 出现错误缺少依赖插件或插件版本太低时,将缺少的或高版本的依赖插件安装后重新安装该插件
    最好下载最新版本

在这里插入图片描述

  • 出现重启提示时,在浏览器地址栏的jenkins地址后加/restart回车,然后在界面选择yes

三、配置

全局配置

jdk

可通过echo $JAVA_HOME获得jdk安装地址
在这里插入图片描述

maven

安装(离线的话需要自己配置仓库)
可通过echo $MAVEN_HOME获得jdk安装地址
在这里插入图片描述
在这里插入图片描述

系统配置

ssh

在这里插入图片描述

maven离线安装及配置

  1. 下载压缩包:http://maven.apache.org/download.cgi
    apache-maven-3.6.1-bin.tar.gz
  2. 上传apache-maven-3.6.1-bin.tar.gz到cd /usr/local,然后解压tar -zxvf apache-maven-3.6.1-bin.tar.gz
  3. 配置环境变量:vi /etc/profile
    在这里插入图片描述
  4. 使修改的环境变量生效source /etc/profile
  5. 检查mvn -v
  6. 修改仓库地址,vi /usr/local/apache-maven-3.6.1/conf/setting.xml(不修改的话默认是/root/.m2/repository)
    在这里插入图片描述
  7. 将相关依赖上传到自己的仓库(我是将本地开发环境仓库C:\Users\lg\.m2\repository内的都传了上去)

四、项目构建(maven+svn)

点击新建项目

在这里插入图片描述
输入项目名,构建Maven项目
在这里插入图片描述
点击OK,进入项目配置
在这里插入图片描述

配置SVN

svn地址与账密配置,其中账号密码需要通过Add按钮添加后再选择
在这里插入图片描述

build配置

在这里插入图片描述

Post Steps

选择build成功后才运行
在这里插入图片描述
选择通过之前系统配置的ssh server上传jar包和执行指令
在这里插入图片描述
ssh publishers配置,下图配置了两个transfers set,第一个是上传文件前执行指令,第二个是上传文件并执行指令
在这里插入图片描述

  • Name:选个一个在系统设置里配置的要部署jar包的服务器名字
  • Source files:需要上传的文件(相对于工作区,可填写多个,用,分隔)
  • Remove prefix针对source files要移除的目录前缀,不指定的话会在远程目录下新建相对地址文件夹而不是直接将jar包放在远程目录下
  • Remote directory远程目录(默认会继承系统配置,也可以自己设置绝对地址)
  • Exec command:文件上传后要执行的命令,命令执行是相对于用户的根目录的(我是用的root账户,所以是相对于/root)

如果有旧的jar包,则移除

# 切换到脚本存放目录
cd /opt/hrj/jenkins_test
# 使脚本可执行
chmod a+x rm_old_jar_city5g.sh 
# 执行脚本
./rm_old_jar_city5g.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

启动新的jar包

cd /opt/hrj/jenkins_test
chmod a+x start_new_jar_city5g.sh
./start_new_jar_city5g.sh
  • 1
  • 2
  • 3

rm_old_jar_city5g.sh

#!/bin/sh
echo "remove old jar ..."
# 如果jar包存在,则移除旧jar包
if [ -f intelligenceinsightserver-0.0.2-SNAPSHOT.jar ];then rm intelligenceinsightserver-0.0.2-SNAPSHOT.jar;echo "remove success" ;fi
  • 1
  • 2
  • 3
  • 4

start_new_jar_city5g.sh

#!/bin/sh
echo 'stopping application....'
# 查找旧jar包启动进程号
pid=`ps -ef | grep intelligenceinsightserver-0.0.2-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
# 如果有正在运行的,则停止该进程
if [ "$pid" == "" ];then echo 'apllicationis already stop!';else echo "kill -9 的pid:"+$pid;kill -9 $pid;fi
# 等2s
sleep 2s
echo 'running jar....'
# 启动新jar包
nohup java -jar intelligenceinsightserver-0.0.2-SNAPSHOT.jar > out.file 2>&1  &
echo 'running finish'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

ssh执行命令脚本采坑

  1. 一开始,直接执行启动./opt/hrj/jenkins_test/start_new_jar_city5g.sh脚本报错Permission denied,也即没有权限,经过多番试验没解决,发现直接将脚本里的命令拿出来放在Exec command可以运行

  2. 修改后发现,执行没问题但是nohup没有在后台启动,而是直接启动在前台,导致卡住
    在这里插入图片描述

  3. 原因是jenkins不能正常退出,通过高级设置在pty(伪中断)执行构建成功了,但是实际服务器也没有启动
    在这里插入图片描述

  4. 查找说需要用nohup 执行.sh脚本脚本才可以,所以问题又回到了最初的脚本执行权限问题

  5. 去掉之前勾选的pty,通过chmod a+x filename给脚本赋予可执行权限可解决Permission denied问题,但是又出现了.sh脚本文件的 No such file or directory问题
    在这里插入图片描述

  6. 经过查找是因为.sh脚本编码问题,因为是在window下写的脚本,编码是doc,需要改为unix才可以

# 确保文件有可执行权限,给所有用户给予该文件可执行权限
chmod a+x filename
# 修改文件
vi filename
# 查看文件格式
:set ff 
# 修改文件格式
:set ff=unix 
# 保存并退出
:wq
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 终于成功
  2. 由于不在pty环境,所以执行脚本没加nohup也没有影响
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/637234
推荐阅读
相关标签
  

闽ICP备14008679号