5分钟快速掌握Jenkins,项目一键自动部署

目录

  • 前言
  • Jenkins是什么?
  • Jenkins环境安装搭建
  • Jenkins基本使用介绍
  • Jenkins快速构建项目,项目自动化部署
  • 学习总结

前言

在开发过程当中,部署项目也算是基本操作了,部署方式多种多样,花费的时间也是不尽相同。项目部署大致需要以下几步:编译,打包,上传,kill已有进程,启动项目。单一架构,常规部署方式,熟练的话估摸着也需要3分钟左右;如果项目包比较大,上传替换,可能需要5-10分钟左右。如果项目改动频繁,一天花费在部署上面的时间也挺长的,而且操作反复;遇到分布式项目,那就更加难搞了,每个服务都需要单独部署,这样下来,部署花费的时间就太长了,反复操作也让人头疼。有别的方式吗?答案肯定是有的,本期学习的jenkins就是一款项目部署神器,集合界面化操作,简单的配置,完整的跟踪,项目监控,自动部署等一系列功能于一身,简直是程序员的福音呀。

Jenkins是什么?

是什么?

言归正传,让我们来看看Jenkins是什么?Jenkins口号:“构建伟大,无所不能”, 可以说是很豪迈的口号了,LOGO是一位绅士,真是简单明了!代表构建功能超级强大,部署代码非常优雅。Jenkins是一款开源的CI&CD软件,用于自动化各种任务,包括构建,测试和部署的软件,支持各种运行方式:可通过系统包、Docker或者通过一个独立的Java程序。

什么是CI&CD?

  • CI: 表示持续集成(continuous integration) ,在CI的环境中,开发者会频繁的向主干提交代码,这些代码在合并到主干之前,需要进行代码的编译,验证,确保没问题了才能进行合并。否则将会导致不可避免的错误发生。
  • CD:表示持续部署(continuous deploy) , 在CD的环境当中,通过自动化的构建,测试和部署,循环迭代快速交付高质量的产品。持续部署,可以加速和客户的沟通与反馈,快速帮助产品成长。

有什么特点?

  • 完全开源免费,开源真是世界的福音
  • master/slave 支持分布式构建
  • 提供web可视化操作界面
  • 安装&配置非常简单
  • 文档详细,反馈及时
  • 插件丰富,功能强大

Jenkins环境安装搭建

jenkins的搭建其实非常简单,但是他需要依赖一些环境,比如docker ,jdk。docker可以集成海量工具镜像,比如maven,node等等

以下示例,服务器版本CentOS7。已经安装好docker,jdk的,可以直接跳过哦

安装JDK

  1. 查看服务器是否安装过jdk
# 输入以下命令无jdk版本信息,则未安装过
$ java -version
  1. yum安装jdk
$ yum install java-1.8.0-openjdk-devel.x86_64
  1. 配置系统全局变量
$ vim /etc/profile# 将下面信息复制到文件末尾,然后保存文件
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el6_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  1. source全局变量
$ source /etc/profile
  1. 验证是否安装成功
# 输入以下命令,有Jdk版本信息即表示成功!
$ java -version[root@iZ2ze0lvzs716zri63oxcmZ ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

安装docker

docker要求, CentOS内核版本大于3.1

查看内核
$ uname -r
[root@iZ2ze0lvzs716zri63oxcmZ ~]# uname -r
3.10.0-514.26.2.el7.x86_64
使用最新yum源
# 如果很久没更新,可能需要更新2分钟左右,网速带宽稍有影响
$ yum update
安装需要的软件包
$ yum install -y yum-utils device-mapper-persistent-data lvm2
设置添加docker镜像
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新稳定版
$ yum install docker-ce
启动&开机启动
# 启动
$ systemctl start docker
# 开机启动
$ systemctl enable docker
验证(有client和service两部分表示docker安装启动都成功了)
$ docker verison
[root@iZ2ze0lvzs716zri63oxcmZ ~]# docker version
Client: Docker Engine - CommunityVersion:           19.03.8API version:       1.40Go version:        go1.12.17Git commit:        afacb8bBuilt:             Wed Mar 11 01:27:04 2020OS/Arch:           linux/amd64Experimental:      falseServer: Docker Engine - CommunityEngine:Version:          19.03.8API version:      1.40 (minimum version 1.12)Go version:       go1.12.17Git commit:       afacb8bBuilt:            Wed Mar 11 01:25:42 2020OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.2.13GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429runc:Version:          1.0.0-rc10GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version:          0.18.0GitCommit:        fec3683

安装Jenkins

现在万事俱备,只欠东风了

# 打开终端进入到下载目录.# 运行命令
$ java -jar jenkins.war --httpPort=8080.
# 启动成功后会打印以下信息*************************************************************
*************************************************************
*************************************************************Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
# 注意复制这个
c0ae33e909df4094bb15ae15ae20ca83This may also be found at: /root/.jenkins/secrets/initialAdminPassword*************************************************************
*************************************************************
*************************************************************# 打开浏览器进入链接 http://服务器ip:8080. 大概需要等几分钟,等它初始化
输入复制的密钥
# 按照说明完成安装.

按照推荐向导就可以啦,太太太太简单了!

Jenkins基本使用与介绍

一些准备工作

  • 硬件要求:

    • 256MB以上运行内存,官方建议最好大于512MB。
    • 10GB硬盘空间,主要用户Jenkins和Docker镜像
  • 基础环境

    • Java 8,安装jdk或者jre都可以
    • Docker 安装docker
  • 下载&安装

创建一个Pipeline(流水线)

什么是Jenkins Pipeline?Pipeline是一套插件,可以将上面说的持续交付和持续集成应用到Jenkins中。简单来说就是提供一套插件,用于简单到复杂的交付流程实现。Jenkins Pipeline的定义通常在一个文件中,这个文件我们称之为Jenkinsfile,文件可以放在项目源代码库里。

Pipeline可以定义多种语言,我们以Java为例

Jenkinsfile (Declarative Pipeline)
pipeline {agent { docker 'maven:3.3.3' }stages {stage('build') {steps {sh 'mvn --version'}}}
}
简单解读:
  • agent : 代表使用哪个环境执行
  • stages:阶段集合,可以有多个stage,即可以有多个构建阶段
  • stage:阶段,常见有编译,打包,运行等
  • steps:阶段中需要执行的步骤,步骤可以有多个。
  • sh: 代表执行shell命令,一个sh代表执行一个步骤 若是windows环境,使用bat

定义流水线的几种方式

  • 通过Blue Ocean,在Blue Ocean中设计一个流水线项目,它会自动帮你编写流水线的Jenkinsfile并提交到源代码管理系统
  • 通过经典UI,经典UI中在Jenkins中直接输入基本的流水线
  • 自己编写Jenkinsfile,然后提交到源代码管理仓库中

简单来说,你可以使用UI可视化界面,按照提示来创建流水线,也可以自己编写Jenkinsfile文件。一般直接用UI交互就行啦,几乎就是傻瓜式,填写以下Git仓库地址等等。有特殊的装*要求的话,编写Jenkinsfile秀技术的一种方式,哈哈。

本博客在本人博客园首发:博客园昵称:九月长安

5分钟快速掌握Jenkins,项目一键自动部署相关推荐

  1. 搭建Jenkins+springcloud一键自动部署

    用jenkins 实现项目自动部署笔记 1.目的 1.一键实现项目自动构建打包发布(用于生产环境) 2.实现代码提交到代码仓库立刻自动打包部署(用于测试环境) 3.本测试脚本代码在最后 2.操作环境 ...

  2. 搭建Jenkins+Github的自动部署环境并使用守护进程(Supervisor)部署Golang(gin)项目

    零.前言 Jenkins是一个自动部署的平台,可以极大的帮助我们自动部署项目,把注意力放在书写代码上. 教程环境说明: 系统:ubuntu20 配置:2核4G 软件:JAVA11 安装方式:APT(不 ...

  3. jenkins整合gitee自动部署SpringBoot项目

    文章目录 前提条件 一.服务器安装jenkins 方法一:简单快捷 第一步:将jenkens.war导入到系统 第二步:放在tomcat的webapp下面 第三步:访问http://ip:8080/j ...

  4. Window环境下的Git+GitHub+jenkins+Tomcat实现自动部署项目并发送构建邮件

    Git+GitHub+jenkins+Tomcat实现自动部署项目 我们这里要实现的效果是:团队通过Git把项目push到GitHub上去,然后Jenkins通过GitHub的webhook(钩子)来 ...

  5. 虚拟矿机服务器架设,Swarm Bzz个人矿机需要什么配置?Bzz节点一键自动部署工具...

    BZZ即将完成空投进入主网阶段,可以说现在就是bzz的头矿阶段!本文由实际经验总结,分享bzz币个人怎么配置才能尽快获得头矿!同时,附上bzz节点一键自动部署工具. Swarm白皮书中并没有提供的硬件 ...

  6. Docker的镜像制作与整套项目一键打包部署

    Dockerfile常用指令介绍 指令 描述 FROM 构建的新镜像是基于哪个镜像.例如:FROM centos:6 MAINTAINER 镜像维护者姓名或邮箱地址.例如:MAINTAINER Mr. ...

  7. 一键部署oracle,一种Oracle单机一键自动部署方法与流程

    本发明涉及数据库安装技术领域,尤其涉及一种Oracle单机一键自动部署方法. 背景技术: Oracle Database,又名Oracle RDBMS,或简称Oracle,它是在数据库领域一直处于领先 ...

  8. 前端一键自动部署工具

    前端一键自动部署工具

  9. 通过gitlab的webhook进行项目的自动部署所遇问题总结

    1.通过gitlab的webhook来进行测试项目的自动部署: 2.php程序以www用户来执行,当执行exec("sh update.sh")时,update.sh脚本也是以ww ...

最新文章

  1. Apache2 之虚拟主机设置指南
  2. android root 恢复出厂设置,Android系统 免root 卸载预置应用
  3. 电子产品设计流程_产品设计“学习、就业、留学”全攻略
  4. shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器
  5. Spark广播变量实现原理及基础编程
  6. pyppeteer:比selenium更高效的爬虫利器
  7. 解决Ubuntu IDEA 不能输入中文
  8. dotnet core 微服务教程
  9. 一个简单的空气质量数据监测站项目
  10. 【Python】【Python语言】Python3.7.2的关键字与保留字
  11. 带孩子们做环球旅行的读后感_阜南七小教师风采之乔娜:做孩子们成长的记录者...
  12. Linux常见目录含义及功能
  13. ios 镜像_2020年微软MSDN原版系统镜像下载 包含Windows10/7/8/8.1/XP系统
  14. 互联网开发人员压力到底有多大?
  15. WEBFORM--第一讲
  16. SSH服务配置公钥及双重验证
  17. switch语句的ns图怎么画_ns结构流程图是什么?ns流程图怎么画?
  18. Sql 中text类型字段判断是否为空
  19. 滑铁卢大学容易转计算机专业吗,滑铁卢大学计算机科学专业好吗
  20. accton 打开或关闭进程统计

热门文章

  1. 【网络安全】我的第一次windows服务器杀毒经历
  2. matlab中能控标准型,实验三利用Matlab分析能控性和能观性
  3. Java计算机毕业设计大学生学科竞赛报名管理系统源码+系统+数据库+lw文档
  4. 如何玩转携号转网?挖数据接口让我们切换自如
  5. 成人高考和全日制本科有啥区别
  6. CSS3新增选择器及用法详细介绍
  7. Matroska 一种新的多媒体封装格式
  8. try-cathc-finally
  9. 疫情影响下的行业生态
  10. 酷睿i7 9750h玩游戏怎么样 相当于台式机什么水平