Jinkens和Gitlab自动部署环境搭建

1 Jenkins简介

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于 web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持 续集成。

官网

官方文档

2 Jenkins使用

1 准备环境

JDK1.8 maven git tomcat8

#jdk安装
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

#maven安装  注意修改maven的配置文件和配置maven环境变量
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf apache-maven-3.6.3-bin.tar.gz

#git安装
yum install git


#安装tomcat,建议使用tomcat8
1 下载tomcat压缩包
2 tar -zxvf tomcat压缩包
3 修改tomcat默认端口 vi /conf/server.xml
4 启动tomcat /bin/startup.sh

2 Jenkins安装

1 下载rpm包

访问:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/。进行对应版本下载。

2 安装

#安装指令
rpm -ivh jenkins-2.201-1.1.noarch.rpm

Jenkins默认端口为8080,如果存在端口冲突的话,需要修改:/etc/sysconfig/jenkins 文件中的 JENKINS_PORT

3 先启动jenkins,完成初始化

systemctl start jenkins

启动完成后,不要访问,查看jenkins目录下的updates文件夹是否出现,当出现后,代表已经初始化 完成,先关闭jenkins,然后进入updates文件夹,配置jenkins插件下载加速器

# 查看文件
cd /var/lib/jenkins/updates

# 配置加速器
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
&& sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

4 配置后,重启Jinkens

systemctl start jenkins

常用命令:

# 停止jenkins服务
systemctl stop jenkins 

# 重启jenkins服务,常用于修改配置文件后
systemctl restart jenkins 

3 初次访问Jenkins

1 jenkins配置

启动完成后,进入jenkins。地址:http://ip:8080。jenkins默认端口为8080。 进入之后会显示如下页面,需要输入初始化密码。

image-20210513080039961

输入指令:cat /var/lib/jenkins/secrets/initialAdminPassword 。进行初始化密码查看

image-20210513080144484

输入得到的密码,登录成功跳转首页.

image-20210513080238693

image-20210513080312885

等待全部插件安装成功,如有安装失败,点击重试进行重新安装。如果全部安装失败,则更换镜像 源。最终会进入到如下页面。此时需要配置用户。可以使用admin用户也可以创建一个用户

image-20210513080409859

当配置完成进入下列实例配置页面,无需修改,选择 保存并完成即可.

image-20210513080521635

image-20210513080537340

最后,进入Jenkins的主页.

image-20210513080632090

2 插件安装

1 安装Maven Integration

手动安装插件maven插件,,如果缺少Maven IntegrationPlugin插件,在创建job时,不会有新建一个 maven项目选项。

在Jenkins首页选择 Manage Jenkins -> Manage Plugins

image-20210513080849989

选择 可选插件,搜索 Maven Integration。直接安装即可。

image-20210513080940340

2 安装Gitlab Hook&Gitlab Plugin

步骤一样,安装对应插件即可。

image-20210513081035433

3 安装 Deploy on container

步骤一样,安装对应插件,安装好此插件后,才能将包部署到tomcat上

image-20210513081133218

4 配置Jenkins全局环境

点击左侧菜单中的系统管理进入Jenkins管理模块。选择全局工具配置。

image-20210513081233324

JDK与Git无需改动,对于maven指定服务器maven路径即可。

5 设置Jenkins与GitLab连接

在Jenkins中选择系统管理

image-20210513081341395

在页面中选择,选择系统配置

image-20210513081424258

在系统配置页面,找到 GitLab项,输入相关信息。

image-20210513081510586

Connection name:随意起 GitLab host Url:配置当前Gitlab服务器地址

image-20210513081605278

对于认证信息,需要回到Gitlab中进行获取

image-20210513081731849

image-20210513081748908

复制令牌信息,回到 Jenkins中。点击 添加,添加认证信息。

image-20210513081903440

点击添加即可完成添加认证。

image-20210513081934497

测试 Jenkins 能否连接Gitlab服务器,点击Test Connection。当显式Success,代表设置成功。

image-20210513081956665

最后还需取消允许匿名访问

image-20210513082016387

4 Jenkins任务构建

1 在Jenkins首页创建 新任务

image-20210514071548176

在创建任务页面,输入任务名称,同时选择构建maven项目.

image-20210514072324873

2 选择 源码管理 -> Git。设置当前Gitlab仓库地址和认证信息

image-20210514072443976

对于认证信息,点击添加。在页面中,类型:Username with password。用户名:gitlab用户名 。 密码:gitlab密码。点击添加即可。

注意:如果当前是公共仓库,不需要设置认证信息。如果是私有仓库,则需要。

image-20210514072955428

image-20210514073017377

3 选择Build选项

image-20210514073116057

image-20210514073129165

4 构建任务

返回首页,在列表中找到我们刚才创建的任务

image-20210514073156142

点击右边的绿色箭头按钮,即可执行此任务。

image-20210514073211405

点击后,在首页左下角会显示构建的进度条.

image-20210514073229713

5 自动化构建

1 配置webhook

webhook可以把它理解为是一个钩子,用于Gitlab自动触发jenkins进行任务构建。

1Jenkins生成token

在Jenkins中首先需要生成当前Jenkins用户的Token信息,用于添加Gitlab的webhook时使用。

image-20210514073644988

image-20210514073701479

2gitlab配置webhook

进入到Gitlab,选择小扳手图标 -> 用户设置 -> 网络 -> 外发请求。

image-20210514073943696

在页面中,勾选:允许Webhook和服务对本地网络的请求。点击保存修改即可。

image-20210514073858233

在Gitlab中选择 小扳手图标 -> 系统钩子。在其内部配置相关信息。

image-20210514074019854

URL信息:需要对应Jenkins任务配置 -> 构建触发器的地址信息

image-20210514074057887

Secret Token信息:Jenkins中刚才生成的令牌

image-20210514074136982

当配置完成,页面下方会展示对应信息,同时可对当前钩子进行测试。

image-20210514074215547

当页面上方显示 200,则当前webhook配置成功。

image-20210514074235423

2 Jenkins配置Gitlab任务触发

在任务配置中选择 构建后操作 -> 增加构建后操作步骤 -> push buildstatus to gitlab

image-20210514074431197

3测试自动构建效果

本地提交代码到Gitlab,测试是否能自动触发Jenkins自动构建,当看到如下效果,测试成功。

image-20210514074520390

4 自动化部署

对于自动化部署,也需要通过jenkins集合tomcat完成,最终当本地提交代码到GitLab后,可以自动 触发jenkins将项目部署在tomcat。

1安装Jenkins插件

当前是基于SSH的传输,所以需要在Jenkins中安装SSH相关插件:Publish Over SSH、SSH plugin.

image-20210514074805938

2 配置SSH服务器

在Jenkins首页选择 -> 系统管理 -> 系统配置 -> SSH Servers

image-20210514074905063

3 任务配置

找到对应任务选择 -> 配置 -> 构建后操作。添加 send build artifacts over SSH

image-20210514074953363

4 创建脚本目录和war包目录

根据上面配置,需要在服务器上创建 /opt/war 和 /opt/scripts 。war目录用户保存war包,scripts目 录用于保存shell脚本。

配置shell脚本

在/opt/scripts目录下创建 tomcat.sh文件,作为shell执行脚本,其内容如下:

#!/bin/bash
set -x
PROJECT_NAME=$1
TOMCAT_HOME=/usr/local/tomcat/tomcat_$PROJECT_NAME/bin
PROCESS=`ps -ef |grep tomcat_$PROJECT_NAME|grep -v grep|wc -l`
if [ $PROCESS -eq 0 ];then
echo "run starting tomcat"
sh $TOMCAT_HOME/startup.sh
else
sh $TOMCAT_HOME/shutdown.sh
if [ $? -eq 0 ]; then
sh $TOMCAT_HOME/startup.sh
else
for pid in `ps -ef |grep $tomcat_$PROJECT_NAME|grep -v grep |awk '{print
$2}'`;do kill -9 $pid;done
sh $TOMCAT_HOME/startup.sh
fi
fi
echo "Sucessfull ...."

使用规范问题

1 当前是一个项目一个tomcat,tomcat命名要有规范:tomcat_项目名称

image-20210514075206909

2 当部署完成后,如果无法访问项目,而是访问tomcat首页,则删除tomcat下的webapps目录即可。

5 测试

当在本地提交代码到GitLab后,会自动触发Jenkins对任务进行构建,构建完成后会根据任务配置执 行指定脚本,最终将项目部署在对应的tomcat上。可以远程访问。

结果:

修改代码,提交到Gitlab,提交成功后,Jenkins中自动进行任务构建,构建成功后,会将项目部署在tomcat中。即可通过服务器进行远程项目访问。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值