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


    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 - Community
     Version:           19.03.8
     API version:       1.40
     Go version:        go1.12.17
     Git commit:        afacb8b
     Built:             Wed Mar 11 01:27:04 2020
     OS/Arch:           linux/amd64
     Experimental:      false
    ​
    Server: Docker Engine - Community
     Engine:
      Version:          19.03.8
      API version:      1.40 (minimum version 1.12)
      Go version:       go1.12.17
      Git commit:       afacb8b
      Built:            Wed Mar 11 01:25:42 2020
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.2.13
      GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
     runc:
      Version:          1.0.0-rc10
      GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
     docker-init:
      Version:          0.18.0
      GitCommit:        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:
    # 注意复制这个
    c0ae33e909df4094bb15ae15ae20ca83

    This 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秀技术的一种方式,哈哈。

  • 相关阅读:
    ReactNative 打包 APK
    ReactNative常用命令
    ReactNative之坑:停在gradle一直出点
    Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构
    tensorflow 安装升级
    sqlserver 全库查询 带架构
    气象数据资料整理
    poj2841
    cf1430e
    cf1436d
  • 原文地址:https://www.cnblogs.com/amazingjava/p/12935967.html
Copyright © 2020-2023  润新知