Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)

最近发现公司服务拆分得过于分散,每次部署都是一堆的jar包,打包上传重启手都麻了,所以决定研究一下自动化部署
目前常用的自动化工具一个是K8S另一个就是这个Jenkins,K8S安装我看了下貌似有些复杂,所以选个简单的Jenkins试一下

2023-11-1 更新:
中间有其它事耽搁了一下,最终花了大概两天时间总算是成功了,好了接下来继续

安装Jenkins之前一定要在服务器上先安装好jdk,配置好环境变量,不会的自己搜一下
我这里用的还是jdk1.8
在这里插入图片描述

首先是下载安装包,这个还是老规矩去官网下载,安全放心 Jenkins官网所有历史安装包路径

当前最新版本如下,不过听说新版的需要更高版本的jdk支持,我用的还是jdk8,所以还是用以前的版本,这里选 jenkins-2.346
其实这个版本也会提示建议用Java11,但是最终可以使用就不纠结这个问题了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第1张图片

将包上传到服务器后解压,我这边统一放在/usr/local目录下了

rpm -ivh jenkins-2.346-1.1.noarch.rpm

我这里有个问题一直提示NOKEY,一开始我选的最新版本提示这个所以换了这个版本还是提示,不过不管了可以正常使用
当然谁知道怎么解决希望能告知我一声

在这里插入图片描述

解压后我们还要去修改一下Jenkins的启动文件,给它配置jdk路径

vi /etc/init.d/jenkins

大家自己看下服务器jdk的安装路径,后面多了个/bin/java,记得保存

/usr/java/jdk1.8.0-x64/bin/java

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第2张图片
我们再去调整一下Jenkins的用户权限,防止后面操作文件的时候权限不够

vi /etc/sysconfig/jenkins

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第3张图片

顺便改一下端口,8080容易冲突

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第4张图片

改好后保存,然后我们还要开放一下端口,也可以直接关闭防火墙

firewall-cmd --add-port=1010/tcp --permanent	// 开放端口1010
firewall-cmd --reload	// 重启一下端口配置

我们找一下配置文件

find / -name *.UpdateCenter.xml

在这里插入图片描述

进入到这个文件中

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第5张图片

这里也是Jenkins很坑的一个地方,就是无论你安装的是哪一个版本,但是它下载组件都是下载最新版本,然后后面各种提示插件版本异常问题,就是这个问题浪费了我一天时间

我们去清华镜像库找到对应版本 清华镜像库

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第6张图片

点击进去后选择update-center.json,右键复制链接地址

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第7张图片

将这个地址填入上面文件中,保存

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.346/update-center.json

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第8张图片

到这里Jenkins的基础配置算完成了,我们去/etc/init.d/目录下启动它

cd /etc/init.d/

./jenkins start

启动的时候可以看到这个

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第9张图片

这里面就是它的初始密码,后面不记得密码可以用下面的命令去找

cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述

好了,我们直接在浏览器输入地址 http://192.168.43.128:1010/
出现下面这个页面就是成功了(有时候页面一直提示“Please wait while Jenkins is getting ready to work …”,别急这是在下载组件等一会)
输入刚才那个密码就可以登录了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第10张图片

先不要安装插件,选选择插件来安装

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第11张图片

选无,再点右下角安装

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第12张图片

然后创建一个用户

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第13张图片

继续点保存
细心的会发现我这里地址有问题,别在意,这是因为文档分两次写的,第一次在我本机,第二次再公司服务器安装的
这里是默认的就可以了,不需要改

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第14张图片

点开始使用

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第15张图片

可以看到这里还是有异常提示,不管它

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第16张图片

我们去给它装一个中文插件

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第17张图片

选这个安装插件

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第18张图片

安装完后提示要重启

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第19张图片
我们去服务器重启一下Jenkins

cd /etc/init.d

./jenkins restart # 重启服务

./jenkins stop # 停止服务

./jenkins start # 启动服务

有时候启动会报错,因为关闭的时候没有全部关闭完,我们用 ps -ef|grep jenkins命令看一下,有的话就直接kill -9

重启后我们重新登录,进来就可以看到页面变成中文了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第20张图片

要是安装有问题就卸载重装

sudo rpm -e jenkins # 卸载

sudo rpm -ql jenkins # 查看是否卸载成功

sudo find / -iname jenkins | xargs -n 1000 rm -rf # 彻底删除残留文件

Jenkins到这一步先放一会,为了方便后期使用,我们还需要在安装Jenkins的服务器上安装Maven和Git

Maven的下载地址 maven3.6.1下载地址

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第21张图片

将下载好的包上传到服务器

在这里插入图片描述

然后解压

tar -zxvf apache-maven-3.6.1-bin.tar.gz 

解压后还需要去配置环境变量

vim /etc/profile

在最后面加上这两行,也就是刚才解压的路径

export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第22张图片

保存后刷新一下配置文件

source /etc/profile

然后验证一下是否安装完成

mvn -version

这样就是可以了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第23张图片

我们还需要给Maven配置一个仓库
先建一个文件夹

mkdir repository

在这里插入图片描述

然后我们去到刚才解压的maven包里找到配置文件settings.xml

cd apache-maven-3.6.1/conf

打开这个文件,找到第一箭头的内容复制放到下面换成自己刚建的文件夹

<localRepository>/usr/local/repository</localRepository>

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第24张图片

继续往下拉,找到标签,我们在这里配置一下阿里云镜像
注意位置,别放到注释标签里了

    <!--阿里云镜像-->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>            
    </mirror>

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第25张图片

继续往下拉找到profiles标签,配置默认的jdk信息

    <profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
  
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第26张图片

记得保存,到这里Maven安装完成

Git安装比较简单,直接通过命令就可以了

yum -y install git

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第27张图片

好了,Maven和Git安装好后我们再回到Jenkins上,看下这个是怎么实现自动化部署的

因为我是Maven项目,代码放在Git上了,所以我还需要在Jenkins上安装这两个插件

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第28张图片

等它安装好

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第29张图片

然后我们再去装Git插件,这里我也不知道Git和GitHub插件的区别就都装了

在这里插入图片描述

一样的装好后需要重启Jenkins才能生效,我们去重启Jenkins

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第30张图片

重启后我们重新登录Jenkins
然后继续在系统管理-全局工具配置里面配置我们服务器上安装的Maven和jdk路径

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第31张图片

配置服务器的Maven配置文件路径(注意自己装在哪里就写哪里)

/usr/local/apache-maven-3.6.1/conf/settings.xml

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第32张图片

然后配置jdk,自己的安装路径,别名随便取

/usr/java/jdk1.8.0-x64

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第33张图片

往下拉,还有个Maven要配置,先取消自动安装的勾选,填入Maven的安装路径,name随便取就行

/usr/local/apache-maven-3.6.1

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第34张图片

点保存

因为我Jenkins服务器和我项目服务器不在一起,所有这里还需要一个插件Publish over SSH用来将Jenkins打好的jar包推送到指定服务器
我们去安装Publish over SSH插件

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第35张图片

安装完记得重启Jenkins,然后重新登录Jenkins

这次我们选系统管理-系统配置

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第36张图片

找到Publish over SSH配置,点新增

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第37张图片

在里面填入我们要部署服务的服务器

注意这个/usr/local/webapp,后面我们会将jar推送到这个服务的这个位置

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第38张图片

点那个高级,在里面填服务器密码

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第39张图片

勾选这个使用密码,当然也可以用其它方式,只要最终能连上服务器就好了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第40张图片

只需要一个密码

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第41张图片

测试一下,提示success就说明配置没问题,Jenkins可以连接到指定服务器

要是有多台服务器就在下面继续新增

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第42张图片

准备工作全部完成,我们可以开始部署项目了

新建一个任务

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第43张图片

我这里是Maven项目,直接用Maven就可以了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第44张图片
选Git在里面填入你的项目地址

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第45张图片

这里是配置Git账号密码的

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第46张图片

点这个进去

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第47张图片

出来这个页面,填上账号密码

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第48张图片

点了添加后再看这个地方就可以选择刚才的Git账号了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第49张图片

指定要部署的分支

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第50张图片

往下拉,选这个Send files or execute commands over SSH

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第51张图片

在里面填入这些,往下看,我会一个个的说下每一个都是什么意思的

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第52张图片

第一个104就是我们在上面配置的要部署服务的服务器

第二个sakura-service/sakura-order/target/sakura-order-1.0.0.jar路径是我们项目打包后jar包的路径,但是要注意项目结构,这里路径错了后面jar推送不过去的,当然你要是只有一个jar包可以写 **/target/*.jar
下面是我的项目目录

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第53张图片

第三个sakura-service/sakura-order/target/路径是我们推送jar包到目标服务器后要去掉的路径,在上面我们配置的路径是/usr/local/webapp,如果不加这个那么最终jar包推送过去目录就是/usr/local/webapp/sakura-service/sakura-order/target/,加了这个就会去掉sakura-service/sakura-order/target/

第三个/sakura-order是补充目录,就是我想把我的jar放在/usr/local/webapp/sakura-order下面,因为我这是个微服务有很多模块,所以我不想放在一起

最后这个sh /usr/local/webapp/sh_folder/start.sh就是启动jar包的脚本,这个需要先放到指定位置的
脚本内容如下,大家可以根据自己需要自己整个脚本,我这里只是为了示例
pkill -f 根据启动命令去杀死之前的进程,nohup java -jar这个没什么好说的启动jar包
其实Exec command里面也可以直接写 nohup java -jar /usr/local/webapp/sakura-order/sakura-order-1.0.0.jar >/dev/null 2>&1 &

pkill -f 'java -jar /usr/local/webapp/sakura-order/sakura-order-1.0.0.jar'
sleep 5
nohup java -jar /usr/local/webapp/sakura-order/sakura-order-1.0.0.jar >/dev/null 2>&1 &

注意脚本要先放好啊,不然会报错的

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第54张图片

点保存

像我这种多个模块可以继续在下面add的,但是这里只是演示就不继续了,其实就是按上面配置来,换一下目录就可以了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第55张图片

接下来就是见证奇迹的时刻,成败就在此了,要是失败了就该各位头疼回去再看一遍是不是哪里搞错了

点立即构建

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第56张图片

点这个可以进去看具体情况

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第57张图片

这里有个控制台输出的

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第58张图片

第一次会要很久,因为需要下载jar包,后面就很快了
大家也可以看下有没有哪里报错,一般有异常这里也会提示的
正常的就是下面这样的,显示一个文件推送成功,最终状态SUCCESS

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第59张图片

我们去目标服务器看一下,可以看到jar包已经推送上来了

在这里插入图片描述
再看一下进程,发现已经正常启动了

在这里插入图片描述

再更新一个问题,我在给一台服务器部署的时候发现推送成功了,但是最后脚本没有执行,经过两个小时的排查,最终发现那台服务器的环境变量有问题,在这里谴责一下我那些已经离职的前同事们,做事靠谱点行不行

好了开始解决问题,我们先去目标服务器查看下环境变量路径

echo $PATH

下面就是这台服务器的路径

在这里插入图片描述

然后我们把这个拿出来,在前面加上export PATH=

export PATH=/usr/local/java/jdk1.8.0_221/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

再把它放到我们的脚本前面,保存后就可以了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第60张图片

再提醒大家一下,不用的构建历史记得删除掉,这玩意真的占内存,突然提示服务器内存不够一脸懵,再一看都被Jenkins占了

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第61张图片

点进去可以删除

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第62张图片

也可以在配置任务时候配置一下

Linux上安装Jenkins实现微服务自动化部署(从安装到项目部署)_第63张图片

到这里Jenkins的安装以及自动化部署全部完成,大家有什么问题都可以随时问我,需要安装包的也可以找我

你可能感兴趣的:(linux,jenkins,微服务)