Jenkins 部署

Jenkinsjava

1.   简介

Jenkins是一个开源软件项目。在企业的软件构建过程当中,JAVA的应用工程稍显复杂,因为复杂构建、和代码上线、而且服务的重启。整个过程下来,消耗的时间较多,Jenkins却能很好的集成maven的编译方式,且利用自动化的插件、和自定义开发脚本的支持,因此目前普遍的应用于JAVA工程的持续集成平台。linux

Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.web

  •  什么是集成正则表达式

    指的是代码由编译、发布和测试、直到上线的一个过程apache

  • 什么持续集成vim

    高效的、持续性质的不断迭代代码的集成工做浏览器

  • 如何高效准确的实现持续集成tomcat

    必不可少的须要一套能自动化、而且可视化的平台来帮助咱们。安全

    那么总结来看,Jenkins就是一个能够帮助咱们实现持续集成的平台。服务器

 

Jenkins的缺点:

Jenkins是开发人员开发得,没有照顾到运维人员得感觉。CMDB得对接是Jenkins得短板。


1.1.  名称解释

  • 持续集成 Continuous integration简称CI

  • 持续交付(Continuous delivery

  • 持续部署(continuous deployment

1.2.  Jenkins目的

  • 持续、自动地构建/测试软件项目。

  • 监控软件开放流程,快速问题定位及处理,提示开放效率。

1.3.  持续集成组件

  • 一个自动构建过程,包括自动编译、分发、部署和测试

  • 一个代码存储库,即须要版本控制软件来保障代码的可维护性,同时做为构建过程的素材库,例如:SVNGit代码库

  •  一个jenkins持续集成服务器就是一个配置简单和使用方便的持续集成服务

1.4.  持续集成的意义

  • 持续集成中的任何一个环节都是自动化完成的,无需太多的人工干预,有利于减小重复的操做过程,能够节省时间、费用和工做量。

  • 持续集成保障了每一个时间点上团队成员提交的代码是能成功集成的。任什么时候间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能。

  • 持续集成还能利于软件自己的发展趋势,这点在需求不明确或是频繁性变动的情景中尤为重要,持续集成的质量能帮助团队进行有效决策,同时创建团队对开发产品的信心。

  • 对开发人员:写好代码,不须要本身进行源码编译、打包等工做,直接将代码分支存放在SVNGit仓库便可。

  • 对运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更新。

  • 对测试人员:能够经过jenkins进行简单的代码及网站测试。

1.5.  产品发布流程

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线

Ø  传统上线流程:

11.png

 

Ø  自动化上线流程:

111.png

Ø  Jenkins上线流程:

11111.png

1.1.  硬件要求

  • 标准配置:

        CPU      8核心2.0GHz

        内存:     16GB

        硬盘:     100GB

        网卡:     2*1000Mbps

  • 最低配置:

        CPU      4核心2.0GHz

        内存:     4GB

        硬盘:     50GB

        网卡:     100Mbps

1.2.  系统要求

        Linux

        CentOS 6.9

         CentOS 7.4

        JDK

        JDK 1.8

1.3.  网络要求

准备一个块网卡支持千兆



2.   Jenkins 安装

2.1.  准备环境

  • 下载JdktomcatJenkinsmaven

  •  安装Jdk

                # tar -xf jdk-8u181-linux-x64.tar.gz –C /usr/local/

                # vim /etc/profile

                export JAVA_HOME=/usr/local/java/jdk1.8.0_181

                export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/tools.jar

                export PATH=$JAVA_HOME/bin:$PATH

                # source /etc/profie

                测试一下

                # java -version

  • 安装tomcat

                # tar -xf apache-tomcat-7.0.90.tar.gz -C /opt

  • 安装maven

                # tar zxvf apache-maven-3.5.4-bin.tar.gz

                # vim /etc/profile

                export M2_HOME=/usr/local/apache-maven-3.5.4

                export PATH=$M2_HOME/bin:$PATH

                # source /etc/profie

                测试一下

                # mvn -v

2.2.  安装Jenkins

  • 方法1WAR 直接启动war

                wget http://mirrors.shu.edu.cn/jenkins/war-stable/2.121.3/jenkins.war

                java -jar jenkins.war --httpPort=8088

tomcat+WAR

                cp jenkins.war /usr/local/apache-tomcat-7.0.90/webapps/ROOT

                /usr/local/apache-tomcat-7.0.90/bin/startup.sh

 

  • 方法2RPMyum安装 【不推荐yum安装】

                wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo

                yum –y install Jenkins

                service jenkins startsystemctl start jenkins

RPMrpm安装

                # rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

                # 下载地址:【选择redhat-stable稳定版】

                # 官方下载地址:https://pkg.jenkins.io/redhat-stable/

                # 国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/


若是是公司使用选择(LTS) stable稳定版。

若是是我的使用能够选择最新版


2.3.  安装插件

说明:

安装Maven程序是为了编译代码打包代码,调用方法是Jenkins经过Maven插件调用Maven服务。因此想使用相关服务除了本地部署服务外,还须要在jenkins上安装插件。


  • 安装必备插件

    2222.png

  • 安装可选插件

Maven Integration plugin

Subversion Plug-in

image.png

2.4.  配置Jenkins

  • jdk/maven

浏览器登陆Jenkins,进入系统管理” -> “Global Tool Configuration”,配置jdkmaven后保存:

    image.png

    image.png

2.5.  服务启动

  • 执行java -jar jenkins.war --httpPort=8099

  • 执行systemctl start jenkins

3.   Jenkins自动构建

  • 建立一个maven项目

image.png


  • 新建的任务页面,点击当即构建

image.png

image.png


        丢弃旧的构建:

        保持构建的天数 【超过必定天数就删除】

        保持构建的最大个数 【超过必定数量就删除】

        填写svn信息

   image.png

   填写maven参数

   image.png


4.   Jenkins自动部署

        1)配置tomcat服务器基线

        2tomcat版本路径统一

        3jdk版本路径统一

        4)项目名与端口号统一

   image.png


5.   Jenkins权限管理

在工做的过程当中因为分工合做,由于工做内容的不一样可能分为不一样的组织里,可是jenkins默认的权限管理并无用户组的概念,因此咱们须要第三方插件的支持来解决问题。

注意:切换不一样管理权限的方式 这个插件会导至之前配置好的权限丢失,因此能够用备份来弥补。


jenkins权限管理,实现不一样用户组显示对应视图views中不一样的jobs

  • 安装Role Strategy Plugin插件

image.png

image.png

        

        注意:

        1job_read只加OverallRead权限

        2job_create只加jobcreate权限

        3project rolesPattern正则表达式跟脚本里的不同,好比过滤TEST开头的jobs,要写成TEST.*而不是TEST*

         

        按环境或项目将权限分组,再将用户划分到对应的权限便可。以下图所示

    image.png

   

  • 设置全局角色(全局角色能够对jenkins系统进行设置与项目的操做)

image.png


  • 设置项目角色(项目角色只能对项目进行操做)

image.png

  开发人员只能看到所属本身的项目

    image.png

  

  管理员能够看到所有项目信息

    image.png

  

6.   jenkins常见问题

        问题1jenkins 配置安全策略admin没有Overall/Read权限

        解决方案:

        命令:vim /root/.jenkins/config.xml

   image.png

        <permission>hudson.model.Hudson.Administer:anonymous</permission>

        <permission>hudson.model.Hudson.ConfigureUpdateCenter:anonymous</permission>

        <permission>hudson.model.Hudson.Read:anonymous</permission>

        <permission>hudson.model.Hudson.RunScripts:anonymous</permission>

        <permission>hudson.model.Hudson.UploadPlugins:anonymous</permission>

        重启jenkins服务

         

        问题2admin密码更改后忘记

        解决方案:

        删除Jenkins目录下config.xml文件中下面代码,并保存文件。

    image.png

相关文章
相关标签/搜索