zoukankan      html  css  js  c++  java
  • Jenkins 持续集成持续发布使用搭建基础

    一、环境搭建基础

    1、持续集成、持续交付、持续部署概念

      ①、集成:

      是指软件多人研发的部分软件代码整合交付,以便尽早发现个人开发部分的问题;持续集成:强调开发人员提交了新代码之后,立刻进行构建(单元)测试,根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

      ②、交付:

      是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题;如果说等到所有东西都完成了才向下个环节交付,导致所有的问题只能在最后才爆发出来,解决成本巨大甚至无法解决;持续交付:在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的【生产环境】(production-like environments)中,比如,我们完成单元测试后,可以把代码部署到连接数据库的(Staging)环境中更多的测试,如果,代码没有问题,可以继续手动部署到生产环境中。

      ③、部署:

      是代码尽快向可运行的开发/测试交付,以便尽早测试;持续部署:持续部署则是在持续交付的基础上,把部署到生成环境的过程自动化;

      ④、持续:

    而所谓的持续,就是说每玩成一个完整的部分,就向下一个环节交付,发现问题可以马上调整,使得问题不会放大到其他部分和后面的环节;

      ⑥、核心思想:

      核心在于,既然事实上难以做到事先完全了解完整的、正确的需求,那么就干脆一小块一小块的做,并且加快交付的速度和频率,使得交付物尽早在下个环节得到验证,早发现问题早返工。

      ⑦、jenkins概述

    2、安装部署

    安装

      ①、准备环境:

    Jenkins 清华大学下载点: https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

    其他软件包,在官方下载。

    
    
    [root@jenkins-1 tmp]# ls
    apache-maven-3.5.3-bin.tar.gz  git-2.9.5.tar.gz  jdk-8u171-linux-x64.tar.gz  jenkins-2.130-1.1.noarch.rpm
    
    

      ②、解压部署基础环境

    [root@jenkins-1 tmp]# tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/
    [root@jenkins-1 tmp]# ln -s /usr/local/jdk1.8.0_171 /usr/local/java
    ​
    [root@jenkins-1 tmp]# tar xf apache-maven-3.5.3-bin.tar.gz -C /usr/local/
    [root@jenkins-1 tmp]# ln -s /usr/local/apache-maven-3.5.3 /usr/local/maven
    ​

      ③、java和maven环境变量配置

    [root@jenkins-1 tmp]# vim /etc/profile.d/jenkins.sh
    JAVA_HOME=/usr/local/java
    MAVEN_HOME=/usr/local/maven
    PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
    ​
    export JAVA_HOME MAVEN_HOME

      ④、重新加载系统环境变量

    [root@jenkins-1 tmp]# source /etc/profile
    ​
    [root@jenkins-1 tmp]# ln -s /usr/local/java/bin/java /usr/bin/java
    #我实验本机没java环境基础,所以我需要创建一个软链接到/usr/bin/ 避免会在后面没有java命令报错
    ​

      ⑥、查看系统环境变量是否生效,如果有一下输出,就表示环境变量都没有问题;

    [root@jenkins-1 local]# java -version
    java version "1.8.0_171"
    Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
    [root@jenkins-1 local]# mvn -v
    Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
    Maven home: /usr/local/maven
    Java version: 1.8.0_171, vendor: Oracle Corporation
    Java home: /usr/local/jdk1.8.0_171/jre
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-862.2.3.el7.x86_64", arch: "amd64", family: "unix"

      ⑦、编译安装git

    [root@jenkins-1 git-2.9.5]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y            
    #安装编译依赖包
    [root@jenkins-1 git]# tar xf git-2.9.5.tar.gz 
    [root@jenkins-1 git]# ls
    git-2.9.5  git-2.9.5.tar.gz
    [root@jenkins-1 git]# cd git-2.9.5/
    [root@jenkins-1 git-2.9.5]# make prefix=/usr/local/git all prefix=/usr/local/git install
    #执行编译

      ⑧、设置git环境变量

    
    
    [root@jenkins-1 git-2.9.5]# vim /etc/profile.d/git.sh 
    [root@jenkins-1 git-2.9.5]# source /etc/profile
    [root@jenkins-1 git-2.9.5]# git --version
    git version 2.9.5
    [root@jenkins-1 git-2.9.5]# which git
    /usr/local/git/bin/git

      ⑨、安装Jenkins

    
    
    [root@jenkins-1 tmp]# rpm -i jenkins-2.130-1.1.noarch.rpm 
    警告:jenkins-2.130-1.1.noarch.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID d50582e6: NOKEY
    #这个警告可以忽略
    [root@jenkins-1 tmp]# rpm -ql jenkins 
    /etc/init.d/jenkins
    /etc/logrotate.d/jenkins
    /etc/sysconfig/jenkins          #jenkins 配置
    /usr/lib/jenkins
    /usr/lib/jenkins/jenkins.war    #war包
    /usr/sbin/rcjenkins
    /var/cache/jenkins
    /var/lib/jenkins                #默认的jenkinsHOME目录
    /var/log/jenkins                #日志
    ​

      ⑩、jenkins 内存优化,端口更改

    [root@jenkins-1 tmp]# vim /etc/sysconfig/jenkins 
    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms1024m -Xmx1024m"         内存优化,根据机器的配置给。
    JENKINS_PORT="8888"         端口
    jenkins 启动
    
    [root@jenkins-1 tmp]# /etc/init.d/jenkins start
    Starting jenkins (via systemctl):                          [  确定  ]
    [root@jenkins-1 tmp]# ps axu | grep java
    jenkins   6249  181 18.4 3630896 378240 ?      Ssl  14:13   0:12 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -Xms1024m -Xmx1024m -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8888 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
    root      6287  0.0  0.0 112720   980 pts/0    S+   14:13   0:00 grep --color=auto java
    ​

    3、Jenkins WEB页面配置

      ①、在浏览器输入:本机ip:jenkins端口(如:10.18.43.3:8888)

      ②、接下来就根据提示,完成页面初始配置操作;

      ③、等待所有的插件安装完成,(如果有失败的,可以重试安装插件)

      ④、创建一个管理员用户(等会用来登录使用

      ⑤、网站地址初始配置

      ⑥、点击保存完成,进入jenkins Web页面,接下来就是安装必需的插件和配置,

    4、配置web插件及设置

      ①、系统管理>>>:插件管理

        GIT plugin (可能已经默认安装了)     
    ​
        Publish Over SSH (远程Shell)      
    ​
        Maven Integration plugin

      ②、系统管理>>>:全局工具配置>>>: Jdk >>>:配置

      ③、系统管理>>>:全局工具配置>>>: Git >>>:配置

      ④、系统管理>>>:全局工具配置>>>: maven >>>:配置

      ⑤、系统管理>>>:系统设置>>>:jenkins位置及管理邮箱设置

      ⑥、系统管理>>>:系统设置>>>:jenkins邮箱通知设置 

      ⑦、系统管理>>>:系统设置>>>:jenkins Publish over SSH 设置

        配置publish over ssh: Passphrase:密码(key的密码,如果你设置了) Path to key:key文件(私钥)的路径(下面的key和这个2选1) Key:将私钥复制到这个框中 Disable exec:

    二、任务项目构建

    1.项目创建

      首先,点击【新建】进入选择页面,如下图(一般选择“构建一个自由风格的软件项目”),这里是maven项目;

    2.项目描述

      填好项目名称后,点击ok,跳转至如下页面,可以在这个页面进行项目的配置(包括拉源码、修改持续构建时间、打包部署前修改配置文件等)

    3.其他参数

      General中的“丢弃旧的构建”可以设定持续构建的

    4.参数构建

      在“参数化构建过程”中可以设置要构建的版本有哪些,如下

    5.源码管理

      在源码管理模块可以设置源码地址(一般用的Git,这里我们用官网一项目,)

    6.自动化设置

      如果是自动化构建,可以在构建触发器中的“Poll SCM”中设置自动化构建时间(即每隔多长时间进行一次构建)

    7.Build

      在Build中的Goals and options添加: clean package -Dmaven.test.skip=true

    8.构建后的操作

      最后是构建后的操作,这里一般要设置我们要输出包的路径;

    9.远程主机所需

      在远程主机创建是需要的脚本和目录;

    [root@git7-1 /]# mkdir -p /jenkins/war
    [root@git7-1 /]# mkdir -p /jenkins/sh
    [root@git7-1 /]# mkdir -p /jenkins/logs/
    [root@git7-1 /]# mkdir /tomcat
    [root@git7-1 /]# vim /jenkins/sh/deploy.sh
    [root@git7-1 /]# chmod a+x /jenkins/sh/deploy.sh

    10.脚本内容!

      (可以将构建好的项目,推送到tomcat目录下。)

    #!/bin/sh
    cp /jenkins/war/*.war /tomcat
    echo "恭喜你!这个项目已经构建完成!" > /jenkins/logs/`date +%F`--.log

    11.开始构建!

     

    12.构建成功!

    自定义脚本中,有日志输出,这个项目已经构建成功了!!!

  • 相关阅读:
    百度判断手机终端并自动跳转uaredirect.js代码及使用实例
    php 即点即改
    Thinkphp 3.2 去掉index.php
    php获取数组中指定值的下标
    tp5 查询本年、本月、本周的方法
    《数字集成电路静态时序分析基础》笔记⑨
    《数字集成电路静态时序分析基础》笔记⑧
    《数字集成电路静态时序分析基础》笔记⑦
    《数字集成电路静态时序分析基础》笔记⑥
    《数字集成电路静态时序分析基础》笔记⑤
  • 原文地址:https://www.cnblogs.com/sky-k/p/9335085.html
Copyright © 2011-2022 走看看