从0到1,Jenkins安装与部署项目

前言

一开始总是犹豫着要不要写这篇博客,感觉很多教程都已经说明了怎么安装和部署项目了,再写是不是有点多余了,后面再仔细想想,他人的经验终究是他人的,自己走过的路要记录下来才行,免得后面又要重走一遍。

前期准备

Jenkins的作用我就不解释了,直接进入实践部分。首先我们需要搭建好环境。

安装好JDKMavemGit

安装JDK和Maven

这里笔者的环境是JDK-1.8.0_41maven-3.8.4

如果安装成功配置好环境变量即可

vim /etc/profile
# jdk
export JAVA_HOME=/usr/local/jdk1.8.0_41  #你的jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH 
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
# maven
export MAVEN_HOME=/usr/local/apache-maven-3.8.4 #你的maven安装目录
export PATH=$MAVEN_HOME/bin:$PATH

# 具体安装网址
# 安装JDK: https://blog.csdn.net/pdsu161530247/article/details/81582980
# 安装Maven: https://blog.csdn.net/qq_38270106/article/details/97764483

保存文件:wq!退出,之后运行命令让其生效

source /etc/profile

通过java -versionmvn -version查看是否有效即可。入门教程,这个不多做解释。

安装Git

笔者的项目用的是Git,版本是git version 1.8.3.1

yum -y install git
# 之后输入 git --version查看git是否安装成功即可

需要注意的是,git拉取项目,如果没有定义账号和密码,每次拉取项目都要填写账号密码。所以我们可以配置git的账号和密码。

# 进入root目录,一般git安装都在这个位置
cd /root
git config --global credential.helper store

# 之后拉取项目再输入一次账号密码即可。如果是github,则需要输入私钥而不是密码,这个在github创建私钥的时候复制下来即可。

Jenkins安装

Jenkins安装笔者这里采用的是直接下载war包并且拉取到Linux服务器上。官方提供的在线安装我是没下载成功过。

war下载网址:https://get.jenkins.io/war-stable/

官方网址:https://www.jenkins.io/zh/doc/book/installing/

下载成功之后,直接java -jar jenkins.war,默认端口是8080。如果启动期间报错,不能忽视!

注意:不能忽视报错的信息,不然后面下载插件会出现无法下载的情况

报错1

java.lang.NullPointerException

​ at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

​ at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)

​ at sun.awt.FontConfiguration.init(FontConfiguration.java:107)

贴了部分异常出来,明显是依赖少了。安装即可。

yum install fontconfig

报错2

#start: Calling the listener of the allowed exception ‘java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty’ at the attempt #1 to do the action check updates server

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Caused: java.lang.RuntimeException: Unexpected error

Caused: javax.net.ssl.SSLException

启动的时候,提示SSL错误。下载JDK11,然后将JDK11的cacerts文件,移动到JDK8下

具体目录:jdk-11/lib/security/cacerts 移动到 jdk8的java-jdk-8u41/jre/lib/security/

解决好启动报错的异常之后,再次启动是这样的,就是正常的Jenkins

image-20211213234131480

Jenkins配置

进入Jenkins页面

image-20211213234224588

如果一切都正常的情况,那么会默认安装插件,如果不正常,那么就是你启动异常,这个网上很多帖子都没说,大多都扯到Jenkins安装插件的网址需要翻墙的缘故。实际上是你启动Jenkins就报错了,怎么能够指望它下载插件呢?

image-20211213234340489

之后就是创建你的用户

image-20211213234413658

保存并且完成之后进入Jenkins页面。安装插件,配置全局设置,环境变量

安装插件

具体的插件如果成功启动,默认大概都安装了。再之后就是SSH作为拉取服务器项目的。

Publish Over SSH

Git client plugin

全局设置

image-20211213234658687 image-20211213234719441

如果不用Jenkins内部的JDK安装,那么需要告知Jenkins,服务器安装JDK的路径在哪里。在全局属性这里定义

image-20211213234858964

同时,Git项目拉取的服务器,账号密码也要定义,如果SSH remote hosts没有显示,就需要到插件管理下载

image-20211213235004044

全局工具配置

maven的配置,同理,不想用Jenkins插件提供的Maven,也要告知Jenkins位置

image-20211213235203952

JDK配置

image-20211213235259636

GIT配置

image-20211213235323556

部署项目

部署项目需要考虑你具体要怎么设计?是全部用脚本配置,还是打jar包再发布?

这里笔者设计的是,由Jenkins维护项目代码。默认打master分支,之后Jenkins自动复制到具体的服务器上的某个文件。再执行对应的脚本。

image-20211213235920409

需要设置这个丢弃旧的构建,不然一直构建,如果没有清除,会导致一种情况,磁盘空间不足。后面直接404了。

image-20211214000015441

配置branch具体的分支代码

image-20211214000028452

配置部署的环境

image-20211214000044934

git项目

image-20211214000118859

image-20211214000128283

maven编译部署项目

image-20211214000139502

这里需要指定上面的选项参数,test环境

image-20211214001727432

配置执行的脚本命令

image-20211214003411726

接下来就是image-20211214000839614

这个了,这个就是你服务器上想要具体执行命令的脚本了。

Jenkins报错

接下来就是Jenkins一些报错的信息了。

报错1

如果不是使用jenkins提供的maven插件,而是自己安装的,执行mvn命令的时候,会提示

mvn command not found

这里因为Jenkins是在/usr/bin文件夹中找命令的,如果找不到,就会报错,这时候需要做个软链接

ln -s /opt/maven/bin/mvn /usr/bin/mvn

/opt/maven/bin/mvn 是笔者自己服务器上的maven路径。

报错2

The goal you specified requires a project to execute but there is no POM in this directory (/data). Please verify you invoked Maven from the correct directory

org.apache.maven.lifecycle.MissingProjectException: The goal you specified requires a project to execute but there is no POM in this directory (/data). Please verify you invoked Maven from the correct directory.

The JAVA_HOME environment variable is not defined correctly,

this environment variable is needed to run this program.

排查关于 usr/bin 底下有没有java这个命令,如果没有,或者有,试试设置

ln -s /usr/java/jdk/bin/java usr/bin/java

报错3

Exception when publishing, exception message [Exec exit status not zero. Status [127]]

这个是脚本路径不对或者脚本写错的问题,先自己执行下脚本,没问题再试试。有些shell命令,可能是要提示才能继续下一步的,所以可以考虑强制执行。

报错4

Exception when publishing, exception message [Exec exit status not zero. Status [1]]
同样,看看你的shell脚本是不是错误,或者jar包异常。笔者这里是因为用了mv -f *.jar projectName.jar,而笔者的jar包有两个不同的服务,因为用了*.jar,所以导致异常了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值