当前位置:   article > 正文

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

linux搭建jenkins实现自动化部署

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

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

vi /etc/init.d/jenkins
  • 1

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

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

在这里插入图片描述
我们再去调整一下Jenkins的用户权限,防止后面操作文件的时候权限不够

vi /etc/sysconfig/jenkins
  • 1

在这里插入图片描述

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

在这里插入图片描述

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

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

我们找一下配置文件

find / -name *.UpdateCenter.xml
  • 1

在这里插入图片描述

进入到这个文件中

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

cd /etc/init.d/

./jenkins start
  • 1
  • 2
  • 3

启动的时候可以看到这个

在这里插入图片描述

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

cat /var/lib/jenkins/secrets/initialAdminPassword
  • 1

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

选无,再点右下角安装

在这里插入图片描述

然后创建一个用户

在这里插入图片描述

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

在这里插入图片描述

点开始使用

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

选这个安装插件

在这里插入图片描述

安装完后提示要重启

在这里插入图片描述
我们去服务器重启一下Jenkins

cd /etc/init.d

./jenkins restart # 重启服务

./jenkins stop # 停止服务

./jenkins start # 启动服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

在这里插入图片描述

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

sudo rpm -e jenkins # 卸载

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

在这里插入图片描述

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

在这里插入图片描述

然后解压

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

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

vim /etc/profile
  • 1

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

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

  • 1
  • 2
  • 3

在这里插入图片描述

保存后刷新一下配置文件

source /etc/profile
  • 1

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

mvn -version
  • 1

这样就是可以了

在这里插入图片描述

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

mkdir repository
  • 1

在这里插入图片描述

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

cd apache-maven-3.6.1/conf
  • 1

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

<localRepository>/usr/local/repository</localRepository>
  • 1

在这里插入图片描述

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

    <!--阿里云镜像-->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>            
    </mirror>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

继续往下拉找到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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

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

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

yum -y install git
  • 1

在这里插入图片描述

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

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

在这里插入图片描述

等它安装好

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

/usr/java/jdk1.8.0-x64
  • 1

在这里插入图片描述

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

/usr/local/apache-maven-3.6.1
  • 1

在这里插入图片描述

点保存

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

在这里插入图片描述

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

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

在这里插入图片描述

找到Publish over SSH配置,点新增

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

只需要一个密码

在这里插入图片描述

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

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

在这里插入图片描述

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

新建一个任务

在这里插入图片描述

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

在这里插入图片描述
选Git在里面填入你的项目地址

在这里插入图片描述

这里是配置Git账号密码的

在这里插入图片描述

点这个进去

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

指定要部署的分支

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

第三个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 &
  • 1
  • 2
  • 3

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

在这里插入图片描述

点保存

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

在这里插入图片描述

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

点立即构建

在这里插入图片描述

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

在这里插入图片描述

这里有个控制台输出的

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

echo $PATH
  • 1

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

点进去可以删除

在这里插入图片描述

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

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/449808
推荐阅读
相关标签
  

闽ICP备14008679号