从无到有搭建基于centos7的jenkins+spring-boot+maven+shell+github+tomcat自动化部署

最近看到大佬在用jenkins部署项目,觉得很好用,想着自己也学一下,刚好在玩公众号,需要部署到linux上,所以就尝试自己用一下jenkins.

首先介绍一下jenkins:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

简单来说,当你配置完jenkins后,它能够帮你自动化部署项目,并且可以监控变化部署.

如果不想出错请认真看,大部分的坑我都已经踩了

下面说一下我使用的环境

阿里云的轻量应用服务器 (相当于学生机,一年100+) ,点击链接直达

CentOS7

Tomcat 8.5

Maven 3.6.2

Jdk 1.8

Jenkins2.155 

Git

除了CentOS7,其他的可以版本略微可以修改

如下图,我习惯建立一个文件夹存放搭建环境所需的东西(可以按照自己的喜好)

需要root权限 su root  可以切换为root用户

第一步安装jdk

在存放压缩包的目录下输入 tar -zxvf jdk-8u191-linux-x64.tar.gz

则会在当前目录下创建一个jdk-8u191-linux-x64的文件夹

然后配置环境变量

vim /etc/profile


添加如下内容:JAVA_HOME根据实际目录来,刚才存放的目录文件夹在在哪里就复制哪个路径


JAVA_HOME=/soft/jdk1.8.0_191/
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

执行命令(让配置文件生效)

source /etc/profile

查看是否安装成功

java -version

看到如下的结果则是安装成功

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

第二步安装tomcat

在存放压缩包的目录下输入 tar -zxvf apache-tomcat-8.5.35.tar.gz

则会在当前目录下创建一个apache-tomcat-8.5.35的文件夹

可以按照个人习惯修改conf下的service.xml里面的端口号

由于用的是阿里云的轻量应用服务器,如果你不开放端口号,默认8080是访问不了,所以需要去阿里云的控制台配置一下开发端口号8080,如果你改了就不用动

又由于你用的centos7 就算阿里云开发端口 你的centos7里面也要开放一下端口

----基本操作

启动: systemctl start firewalld

查看状态: systemctl status firewalld 

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

--------------

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

在centos7上输入上面这个命令,方可

之后进入tomcat的bin目录下开启tomcat,

./start.sh

之后如果访问看到这个页面则说明 tomcat 启动成功

 

第三步安装maven

在存放压缩包的目录下输入 tar -zxvf apache-maven-3.6.0.tar.gz

则会在当前目录下创建一个apache-maven-3.6.0的文件夹

vim /etc/profile


添加如下内容:M2_HOME根据实际目录来,刚才存放的目录文件夹在在哪里就复制哪个路径

export M2_HOME=/soft/apache-maven-3.6.0
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

执行命令(让配置文件生效)

source /etc/profile

查看是否安装成功

mvn -v

看到如下的结果则是安装成功

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /soft/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /soft/jdk1.8.0_191/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.26.2.el7.x86_64", arch: "amd64", family: "unix"

第四步部署设置jenkins

将jenkins.war包复制tomcat的/webapps 启动tomcat后

访问 http://你的公网ip/jenkins/

需要输入初始化管理员密码

linux 上输入 cat /root/.jenkins/secrets/initialAdminPassword    显示一堆数字和英文就是密码 复制粘贴 后 点击 continue

选中第一个之后下一步

安静的等待他安装完即可,可能需要的时间比较久,安装完成会让你创建一个用户,跟着提示来就行了

如果访问jenkins出现空白

在jenkins默认的主目录.jenkins中修改config.xml文件,修改文件下的几行

<useSecurity>true</useSecurity> 
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>  
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">    
<disableSignup>false</disableSignup>
 <enableCaptcha>false</enableCaptcha>

保存 重启tomcat 即可

为jenkis安装几个插件

搜索 Publish Over SSH、Maven Integration   下一步安装即可

设置全局工具

第五步在线安装配置Git

yum install git

有需要输入就输入y

安装完之后输入 git version

看到这个就是成功

git version 1.8.3.1

将git初始化并生成授权证书

设置用户名和邮箱,用户名和邮箱

git config --global user.name "XXXX"
git config --global user.email "XXXX@QQ.com"

生成证书

ssh-keygen -t rsa -C "XXXX@QQ.com"

提示这个就没问题了

输入 cat ~/.ssh/id_rsa.pub   复制 公钥

添加到github里面

第六步创建Job

这里这个pom文件如果有报错,看看是不是你的项目拉下来和我的不一样,我的是多了一层路径的,所以这个pom多写了一层目录

#!/bin/sh

echo "开始执行shell脚本"

# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe

# 指定最后编译好的jar的存放位置
JAR_PATH=/opt/workspace/project-management

# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH

# 指定jenkins中存放编译好的jar的位置
# maven打包完的路径 
JENKINS_JAR_PATH=/root/jenkins/workspace/testJenkins/testJenkins/target

# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=testJenkins-1.0-SNAPSHOT.jar

# 根据项目的端口号杀死进程

PORJECT_MANAGEMENT_PID=`netstat -anp|grep 8001|awk '{printf $7}'|cut -d/ -f1`
echo "输出端口号" 
echo ${PORJECT_MANAGEMENT_PID}
	
# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}

# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH

# 进入到存放项目jar的位置
cd ${JAR_PATH}


# 后台启动项目,并且将控制台日志输出到project-management.log中
nohup java -jar ${JENKINS_JAR_NAME} > testJenkins.log &

echo "shell脚本执行完毕"

上面的脚本运行可能会出错

如果报-bash: nohup: command not found

则移步 https://blog.csdn.net/qq_40241957/article/details/98584207

执行结果

 

demo地址 https://github.com/moriartyZZB/forTestJenkins

参考文章 https://www.haowenbo.com/articles/2019/07/24/1563964257491.html

有啥问题可以回复一下 看看如何解决呀~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值