文章目录
- 一、背景
- 二、安装包
- 三、安装java环境
- 3.1、安装jdk
- 3.2、安装tomcat
- 3.3、安装maven
- 3.4、安装git
- 三、安装jenkins
- 3.1、安装jenkins
- 3.2、配置初始页
- 3.3、插件、凭据、工具配置
- 3.4、安装npm
- 四、新建maven项目
- 五、常见问题
- 六、构建npm前端项目简述
- 6.1.1、前端npm项目构建
- 七、克隆方式创建新项目
- 八、参考
一、背景
- 需要使用自动化构建工具jenkins构建项目到应用服务器,项目分前端后端。
- 前端使用npm构建的vue项目,后端是使用maven的springboot项目。
除了安装jenkins外,还需要额外安装tomcat、maven、jdk、git、npm。
附言:一年前我搭建时候也写过一篇,但是安装包比较零散,所以重新搭建构建系统的时候我才重新写了这篇。一年前的帖子也可以参考看看 超全git+tomcat+jenkins实现自动化构建部署教程
二、安装包
步骤三四需要用的安装包较多,单独去找如果怕麻烦的话可以直接用百度云里面的这些,包含jenkins、maven、maven配置文件、jdk、git。
链接:https://pan.baidu.com/s/1wH5bx3QO4SZRi7fVqFolsA 提取码:7z2t
三、安装java环境
下面的工具已安装的可以跳过
当前软件下载位置:/opt/soft/,进入该位置
3.1、安装jdk
安装包使用百度云下载的或者进入下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# 解压
tar -zxvf jdk-8u144-linux-x64.tar.gz
# 移动位置
mv jdk1.8.0_144/ /usr/local/java
# 配置环境变量
vi /etc/profile
# 文件末尾添加环境变量
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
# 使配置生效
source /etc/profile
# 测试是否安装成功
java -version
3.2、安装tomcat
使用百度云安装包或者直接 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
# 解压
tar -zxvf apache-tomcat-8.5.39.tar.gz
# 创建目录
mkdir /usr/local/tomcat
# 移动
mv apache-tomcat-8.5.39 /usr/local/tomcat/
可选操作-修改tomcat端口并启动测试能够访问
3.3、安装maven
使用百度云解压包或者下载maven安装包 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.5.4-bin.tar.gz
# 可以解压到/usr/local/maven,这里我的直接用了soft下面的安装包略过了该步
# 配置环境变量
vi /etc/profile
# 文件末尾添加环境变量
export MAVEN_HOME=/opt/soft/maven/apache-maven-3.5.4
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
# 使配置生效
source /etc/profile
# 测试是否安装成功
mvn -v
# 默认的仓库比较慢,可以配置阿里云和华为云的中央仓库,直接看步骤二下载的setting.xml,可以直接粘贴进去或者参考
3.4、安装git
提示:安装git经常会遇到一些错误 使用百度云的解压包或者额外下载 https://www.kernel.org/pub/software/scm/git
# 解压
tar -zxvf git-2.9.5.tar.gz
# 进去解压后目录执行,
./configure --prefix=/usr/local/git
make && make install
# 前两步如果有遇到错,要么直接百度,要么就是缺少一些包,下面给出一些常见报错依赖度的环境
yum install curl-devel
yum install zlib
yum install zlib-devel
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum install curl-devel
#测试是否安装成功
git --version
三、安装jenkins
3.1、安装jenkins
3.1.1、版本选择:2.164.1。 3.1.2、下载各个版本地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/
3.1.3、安装方式:不用yum安装,使用tomcat容器部署jenkins,方便修改工作空间。
# 使用百度云提供的war包或者自行下载
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.164.1/jenkins.war
# 移动war文件到tomcat下
mv jenkins.war /usr/local/tomcat/apache-tomcat-8.5.49/webapps
3.1.4、启动:直接启动tomcat方式即可启动jenkins 3.1.5、验证是否成功,访问Jenkins,http://IP地址:8080/jenkins/
3.2、配置初始页
3.2.1、这里有一个临时密码需要输入,在/home/tomcat/.jenkins/secrets/initialAdminPassword里面
3.2.2、选择第二个,select plugin to install,这里其实不安装东西也没关系,进去主页面之后再去安装插件即可,确认
3.2.3、创建用户名密码
3.2.4、进入主页
3.3、插件、凭据、工具配置
1、插件安装:系统管理->插件管理>搜索过滤插件->安装 当前需要安装的插件有:
- Git
- Git Parameter Plug-In
- GitLab Plugin
- Maven Integration plugin
- Publish Over SSH
2、凭据配置:选择凭据->系统->添加域,输入一个域名或者ip
点击添加一些凭据
添加之后账户密码信息之后保存
3、ssh scp 配置
系统管理->系统设置 ssh server 配置:
如果用的是统一的key或者密码,则配置一次就可以了。
如果每个服务器密码都不一样,需要点击高级按钮,把
复选框 Use password authentication, or use a different key 勾选上就行了。
- Passphrase 服务器的密码
- Path to key 连接远程服务器密钥文件的路径【没配置密钥则空】
- Key 密钥文件的内容 【没配置密钥则空】
- Name 自定义服务器名
- HostName 服务器IP外网地址
- UserName 服务器用户名
- Remote Directory 传输文件的目录【默认填/ ,即根目录】
4、配置本地maven、jdk、git
maven,jdk,git、这些尽量使用本地配置
如下图
3.4、安装npm
进入jenkins插件中心安装nodejs,接着去系统设置→系统设置(全局设置)>找到npm,配置如下
四、新建maven项目
4.1、新建选择新建一个maven项目,如果没有安装Maven Integration plugin插件,则不会出现该item。
4.2、配置多条件分支参数
4.3、选择git项目,选择凭据,指定分支(为空时代表any) 填写上面配置的分支参数myBranch(如果Repository URL报http错,则是http不被git支持,需要进去git目录 yum install curl-devel 安装后重新执行上面步骤3.4中的git两条编译配置命令)。
4.4、构建前删除源文件和编译文件
选择pom.xml
4.5、后置操作步骤选下拉框中的【Send files or execute commands over SSH】接着进行配置。
- Source files 项目构建后的目录
- Remove prefix 去前缀
- Remote directoty 发布的目录
- Exec command 发布完执行的命令
4.6、确认构建后启动脚本start.sh 是否有误
#! /bin/bash
echo "构建完成"
echo "停止java进程"
ps -aux | grep java|grep soso-admin| awk '{print $2}' | while read pid
do
echo "正在杀死进程,pid=$pid"
kill -9 $pid
echo "kill result: $?"
done
cd /opt/project/java/soso
ls -lht
nohup java -jar soso-admin.jar -spring.profiles.active=sit > nohup.out 2>&1 &
echo "启动中"
4.7、尝试构建
选择build with parameter
选择需要构建的分支之后构建进度如下,接着点击进度条进入构建日志详情查看具体信息
如下图所示则构建成功,直接进去看应用启动日志或者直接访问应用的url地址
五、常见问题
- ssh发送文件到远程服务器报错,一般是因为设置路径不对,可能是远程服务器设置路径,或者发送位置不正确,一般有下面两种配置错误 1、系统管理->系统设置->Publish over SSH->Remote Directory >设置默认远程服务器根目录 / 2、构建配置中Send build artifacts over SSH->Remote directory ,为文件发送远程目标目录(相对路径),参考 结合1、2,最终发送文件位置是【根目录+相对路径】 3、maven打包的一些异常,jenkins执行构建任务报错之java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE 遇到这个的话就降级maven,使用3.3.9版本。超过3.5有可能出现这个问题 4、使用linux安装的maven报错,提示****是个目录,那么为了快速解决,直接改用jenkins自动安装的maven。 5、maven的问题都建议直接在linux环境中直接在maven的bin下面去执行响应的构建操作看有没有问题。如执行。mvn -B -f /root/.jenkins/workspace/weekly-admin-uat/pom.xml install 6、git参考报错的问题同样可以先去拿远程地址在linux中执行,看路径错了还是凭据错了。 7、jenkins。jenkins无法安装插件,那么在插件页面选择 高级->上传插件,上传本地响应的hpi插件。https://www.jianshu.com/p/3b5ebe85c034
可以直接在远程服务器执行如:find / -name soso-admin.jar查找文件位置,解决路径错误
- 遇到一些git问题可以根据具体的报错百度
- 遇到jenkins的自己的页面没有下拉选项应该少安装了插件,需要去安装插件。
- 修改jenkins工作空间workspace需要自行百度
六、构建npm前端项目简述
6.1.1、前端npm项目构建
1、构建一个自由风格的项目
2、【源码管理】选择git版本和分支选择同前面maven的一致
3、接下来就不一样了,
4、【构建环境】选择 Provide Node & npm bin/ folder to PATH
5、构建shell
cd /var/lib/jenkins/workspace/intelligence-web
npm install -g cnpm --registry=https://registry.npm.taobao.org
rm -rf intelligence
rm -rf intelligence-web
rm -rf intelligence-web.tar.gz
cnpm install
npm run build
mv intelligence intelligence-web
tar -zcvf intelligence-web.tar.gz intelligence-web
6、构建后文件发送到应用服务器
publish.sh脚本和路径如下
[elk@gzidc-it-dev01 ~]$ cat /opt/project/node/intelligence/publish.sh
#! /bin/bash
source /etc/profile
cd /opt/project/node/intelligence/
ls -lht
# rm -rf intelligence-web.tar.gz
rm -rf intelligence-web
rm -rf static
rm -rf index.html
tar zxvf intelligence-web.tar.gz -C /opt/project/node/intelligence/
mv intelligence-web/* .
七、克隆方式创建新项目
选择构建自由风格的项目→copy from 已有项目->点击保存即可,接着按照自己需要修改版本git地址和脚本配置
八、参考
超全git+tomcat+jenkins实现自动化构建部署教程 Jenkins自动构建部署项目到远程服务器上 jenkins配置,一键打包,备份,部署多服务器,多环境启动 基于gitlab和jenkins的自动化部署实例 Jenkins自动化构建vue项目然后发布到远程Linux服务器