写点什么

🏆(不要错过!)【CI/CD 技术专题】「Jenkins 实战系列」(4)总结归纳 Jenkins 的安装使用和配置流程介绍

发布于: 2 小时前
🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(4)总结归纳Jenkins的安装使用和配置流程介绍

Jenkins 基础介绍篇

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

  • 通过 Jenkins 实现自动化部署项目,本地 git 提交代码 Jenkins 自动化将项目部署在 Linux 服务器。

Jenkins 技术原理篇

  • 版本控制服务

  • Jenkins 自动化部署服务


Jenkins 环境搭建篇

  • 如果使用 Jenkins 容器,我该怎么通过 Jenkins 容器部署 SpringBoot 项目?

  • 是通过 Jenkins 容器与 SpringBoot 容器中的文件交互进行项目部署吗?这能做到吗?

  • 又或是把 SpringBoot 项目放到 Jenkins 容器中管理,那 Jenkins 中又要安装 git、maven 等一堆东西,这一点都不方便。


jenkins镜像


组件部署规划

  • Jenkins:接收项目更新信息并进行项目打包与 Docker 脚本的执行

  • Docker:安装所需应用镜像与运行容器(本篇忽略)

  • git:项目信息同步

环境搭建

安装 JDK

将下载完的 jdk 解压


tar -zxvf jdk-8u191-linux-x64.tar.gz
复制代码


在/etc/profile 文件末尾增加以下配置


vim /etc/profile export JAVA_HOME=/home/jenkins/globalEnvi/jdk1.8.0_191export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
复制代码


更新配置文件


source /etc/profile
复制代码


查看版本信息


[root@libo tyes]# java -versionjava version "1.8.0_381"Java(TM) SE Runtime Environment (build 1.8.0_321-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
复制代码
安装 Maven

下载 maven 并解压


wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gztar -zxvf apache-maven-3.6.0-bin.tar.gz
复制代码


修改 maven 的远程镜像为阿里云镜像库


vim conf/setting.xml    ...       <mirror>            <id>nexus-aliyun</id>            <mirrorOf>central</mirrorOf>              <name>Nexus aliyun</name>            <url>http://maven.aliyun.com/nexus/content/groups/public</url>        </mirror>...
复制代码


在/etc/profile 文件末尾增加以下配置


vim /etc/profile #注意这里是maven的安装路径 M2_HOME=/home/jenkins/globalEnvi/apache-maven-3.6.0   
复制代码


重载/etc/profile 这个文件 source /etc/profile


export PATH=${M2_HOME}/bin:${PATH}
复制代码


查看是否 maven 环境变量


[root@libo tyes ~]# mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)  Maven home: /home/zhangsha/apache-maven-3.6.3  Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_261-amd64/jre  Default locale: en_US, platform encoding: UTF-8  OS name: "linux", version: "3.10.0-1127.18.2.el7.x86_64", arch: "amd64", family: "unix"****

安装 git

安装依赖


yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidocyum install gcc perl-ExtUtils-MakeMaker
复制代码


下载 git 之后


查看版本


[root@libo tyes]# git --version git version 2.28.0  
复制代码


  • 安装 Jenkins

  • 下载安装包 jenkins.war; - 在安装包根路径下,运行命令 `java -jar jenkins.war --httpPort=8080

  • 打开浏览器进入链接 http://localhost:8080.

  • 填写初始密码,激活系统


首次启动会提示初始密码位置,找到初始密码:


[root@libo tyes]# cat /var/jenkins_home/secrets/initialAdminPassword9e3a37cf78264798878606621db632d3
复制代码


推荐安装的插件,保证基本常用的功能可以使用。


  • 安装需要的插件


  • 插件安装界面


全局化配置

在 jenkins 页面“系统管理”-->“管理插件”-->”全局工具配置”:


  • 配置相关 Maven 的 settings 配置文件路径


  • 配置相关 Maven 的安装 home 目录信息


  • 配置相关的 JDK 的相关的目录信息


  • 配置相关 GIT 的安装 home 目录信息



注意:可能各种原因,插件安装失败,则跳过也可以,再登录到 Jenkins 之后可以对插件进行自定义选择性安装。


  • 设置初始用户和密码


  • 登录账号密码之后,进入系统,安装完成。(如果录入账号密码登录遇到空白页,重启 jenkins 服务在尝试重新登录)



在 jenkins 页面“系统管理”-->“插件管理”-->"可选插件"中搜索:


在插件管理页面可以对插件进行安装、卸载、更新。(各个插件的版本和 Jenkins 版本有时候会有兼容性问题,可以进行更新或者降级)








  • Maven 插件(必须)Maven Integration 用来支持构建 maven 项目

  • 远程连接服务插件(必须):Publish Over SSH 用来把构建好的部署包传送到指定服务器的指定位置

  • GitLab、Gitlab Authentication、Gitlab Hook 来获取仓库源码

  • 发布插件(必须):Deploy to container Plugin

  • git 插件: Git plugin(git 和 svn 根据自身需求)


在 jenkins 页面“系统管理”-->“系统设置”:


  • (Publish over SSH 插件配置)添加 SSH Servers(可使用密钥,也可以使用密码)


Jenkins 构建任务篇

首页-新建任务

填写任务名称,选择“构建一个 Maven 的软件项目”。


.配置源码管理

填写 git 地址操作


  • 若是需要认证,则添加凭据即可

构建环境
构建


配置构建命令



配置构建后发布



填写执行命令


#!/bin/sh#docker 镜像/容器名字或者jar名字 这里都命名为这个SERVER_NAME=logistics#容器idCID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')#镜像idIID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')#当前日期DATE=`date +%Y%m%d`
#清除旧容器if [ -n "$CID" ]; thenecho "存在$SERVER_NAME容器,CID=$CID"echo "停止旧容器"docker stop $SERVER_NAMEecho "删除旧容器"docker rm $SERVER_NAMEfi
# 清楚旧镜像if [ -n "$IID" ]; thenecho "存在$SERVER_NAME镜像,IID=$IID"echo "删除镜像"docker rmi $IIDfi
#构建镜像echo "开始构建镜像"docker build -f ./src/main/docker/Dockerfile -t $SERVER_NAME:v${DATE} ./targetecho "构建镜像成功!"

# 运行docker容器echo "创建并启动$SERVER_NAME容器..."docker run --name $SERVER_NAME -d -p 8071:8071 $SERVER_NAME:v${DATE}echo "$SERVER_NAME容器启动完成
复制代码

立即构建

Jenkins 部署流程篇

  1. 开发用户提交代码到 Git 源码仓库

  2. Jenkins 服务器从指定 Git 仓库拉去代码,使用 maven 编译打包。

  3. Jenkins 服务器通过 ssh 插件连接登录服务器,将打包好的 war 或者 jar 包传送到应用服务器指定位置,例如 home/web/a.war

  4. Jenkins 服务器在应用服务器远程执行脚本文件,重启应用服务器 tomcat 或者在应用服务器执行 java -jar 启动当前项目。

发布于: 2 小时前阅读数: 3
用户头像

🏆 2021年InfoQ写作平台-签约作者 🏆 2020.03.25 加入

👑【酷爱计算机技术、醉心开发编程、喜爱健身运动、热衷悬疑推理的”极客狂人“】 🏅 【Java技术领域,MySQL技术领域,APM全链路追踪技术及微服务、分布式方向的技术体系等】 “任何足够先进的技术都是魔法“

评论

发布
暂无评论
🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(4)总结归纳Jenkins的安装使用和配置流程介绍