当前位置:   article > 正文

Ubuntu安装jenkins完成自动化构建_ubuntu jenkins

ubuntu jenkins

前言

本篇文章介绍Ubuntu系统中安装jenkins,并使用jenkins完成自动化构建。
Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),maven,git,docker,mysql,其他中间件(redis,mq等)。

1.maven安装

Ubuntu的包管理工具是apt,不同操作系统的包管理工具不同,这里使用对应的管理工具进行安装,我这里是Ubuntu,使用apt

# 1. 更新包索引
sudo apt update
# 2. 安装maven
sudo apt install maven
# 3. 验证是否安装成功
mvn -version
# 4. 环境变量配置
export MAVEN_HOME=/usr/share/maven
export PATH=${MAVEN_HOME}/bin:${PATH}
# 5. 环境变量更新
source ~/.bashrc
# 6.验证环境变量是否配置成功
echo MAVEN_HOME
echo PATH
## 看到输出东西就证明成功了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2. jenkins安装

这里我的安装过程有点崎岖,我这就放两种方式吧。但是前提都是确保你的服务器安装了jdk或者openjdk

(1)apt方式安装
# 1. 更新包索引
sudo apt update
# 2. 添加jenkins GPG密钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 进行第二步的时候可能报错 “gpg: no valid OpenPGP data found” ,是wget命令版本过旧问题,这里用下面命令即可
wget --no-check-certificate -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 3. 将jenkins存储库添加到系统
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# 4. 更新包索引
sudo apt update
# 5. 安装jenkins
sudo apt install jenkins
# 6. 启动jenkins
sudo systemctl start jenkins
## 启动jenkins后可以使用下面命令查看
sudo systemctl status jenkins # 查看运行状态
lsof -i:8080 # jenkins默认端口是8080,查看端口运行状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
(2)war包方式

我这里使用前面的apt方式,安装jenkins一直失败不成功,解决一个问题又有新的问题,这里我又通过war包方式安装(这里我也不知道这个方式需不需要基于前面的步骤,我这直接下载war后,就成功了)

# 1. 下载jenkins的war包
# 1.1 这是下载最新版的jenkins,但是最新版的jenkins需要jdk11以上版本
wget http://updates.jenkins-ci.org/latest/jenkins.war
# 1.2 我这里是jdk8版本,所以下载2.346版本的jenkins
wget https://get.jenkins.io/war-stable/2.346/jenkins.war
# 2. 到war包目录下,启动war包就行了,使用java -jar
nohup java -jar jenkins.war > jenkins.log &
## 这里使用nohup + & 后台启动war包,将jenkins日志输出到jenkins.log中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
(3)jenkins启动

启动jenkins后,可以通过lsof命令查看端口占用来看jenkins是否启动成功,启动成功后,日志会有个密码,初次登陆jenkins使用这个密码。
在这里插入图片描述登陆成功后,安装推荐插件

在这里插入图片描述首次安装,可能会像我这样出现很多错误,这是由于网络原因,我们给jenkins配置一个国内镜像重启一下就行了。
在这里插入图片描述
找到配置文件的位置,使用文本编辑器修改配置文件的镜像

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述进入这个界面,jenkins就安装完成了。

3.jenkins配置完成自动化 构建

新建任务,选择构建一个maven项目
在这里插入图片描述在源码管理填入自己的git仓库地址,然后在下面选择账号,新安装的Jenkins没有账号,这里可以新增一个(注意:这里填的git账号需要保证可以拉取到这个git项目)
在这里插入图片描述选择执行shell脚本,输入需要执行的shell

# $WORKSPACE这个会自动找到Jenkins的工作目录
ls $WORKSPACE/target
# 我这里将Jenkins目录下打包的项目jar包,复制到制定目录并重命名为demo.jar
cp $WORKSPACE/target/rabbitmq.jar /data/rabbimq/demo.jar
# 切换到jar所在目录,然后执行目录下的start.sh脚本
cd /data/rabbimq
sh start.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述这里看一下jar所在目录下的文件
在这里插入图片描述Dockerfile为构建docker镜像使用

FROM openjdk:8-jre
WORKDIR /
ADD /demo.jar /demo.jar
EXPOSE 9000
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","demo.jar"]
  • 1
  • 2
  • 3
  • 4
  • 5

start.sh作用:
创建需要的相关路径,停止容器,删除容器,删除镜像,重新构建镜像,启动项目,具体如下:

# 定义变量(后面通过$变量名使用)
dir=/data/rabbimq
name=demo
logs=/data/rabbimq/logs
port=9000
temp=/data/rabbimq/temp
if [ ! -d "$dir" ];then
  mkdir -p $dir
else
  echo "文件夹已经存在"
fi
if [ ! -d "$logs" ];then
  mkdir -p $logs
fi
date=`date +%Y%m%d%H%M%S`
# 停止容器(按照容器id停止)
docker stop `docker ps -a|grep $name|awk '{print $1}'`
# 删除容器(按照容器id删除)
docker rm `docker ps -a|grep $name|awk '{print $1}'`
# 删除镜像
docker rmi `docker images|grep $name|awk '{print $1}'`:`docker images|grep $name|awk '{print $2}'`
# 构建镜像(名称为名字加当前时间,可以防止镜像名称重复)
docker build -t $name:$date .
# 启动镜像,挂载需要的目录
docker run -itd -p $port:$port -v $logs:/logs -v $temp:/temp --name $name $name:$date  bash
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

这些做完后,点击立即构建就可以完成Jenkins自动构建部署了。

4.测试

编写一个测试接口

@Api(tags = "jenkins测试")
@RestController
@RequestMapping("/test/jenkins")
public class JenkinsTest {

    @GetMapping("/print")
    @ApiOperation("输出")
    public Result test(@RequestParam String text) {
        return Result.success("Jenkins接收到参数:" + text);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

提交到git
在这里插入图片描述
点击立即构建,等待完成,查看构建日志,可以看到是拉取到的我刚刚提交的最新代码。
在这里插入图片描述
完成后,访问我的swagger地址,可以看到刚刚新写的接口已经部署上去了,为最新的代码,查看服务器docker容器,也正在运行,到此就说明成功。
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号