美文网首页
Jenkins的安装和简单使用

Jenkins的安装和简单使用

作者: 任总 | 来源:发表于2019-02-20 23:34 被阅读0次

    一、DevOpe

    devop工作流

    敏捷开发

    • 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    持续集成

    • 持续集成(Continuous Integration)简称CI,持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
    • 持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。

    持续交付

    • 持续交付CD(Continuous Delivery)基本概念持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
    • 持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。

    持续部署

    • 持续部署(Continuous Deployment)是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。
    • 持续部署是自动的持续部署是持续交付的最高阶段。
    • 持续交付与持续部署的关系有时候会混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。持续交付表示的是一种能力,而持续部署则是一种方式。

    DevOps 工作流

    DevOps 能力环
    • DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
    • 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
    • 通过在共同的业务目的情境中让开发和运维角色与流程变的一致,DevOps 有助于促进 IT 的统一。开发和运维都需要明确,自己是统一业务流程的一份子。DevOps 思维确保了无论组织结构是怎样的,个体决策与行为需要尽力为统一的业务流程提供支持和促进作用。

    实现DevOps需要工具

    工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

    代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
    构建工具:Ant、Gradle、maven
    自动部署:Capistrano、CodeDeploy
    持续集成(CI):Bamboo、Hudson、Jenkins
    配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
    容器:Docker、LXC、第三方厂商如AWS
    编排:Kubernetes、Core、Apache Mesos、DC/OS
    服务注册与发现:Zookeeper、etcd、Consul
    脚本语言:python、ruby、shell
    日志管理:ELK、Logentries
    系统监控:Datadog、Graphite、Icinga、Nagios
    性能监控:AppDynamics、New Relic、Splunk
    压力测试:JMeter、Blaze Meter、loader.io
    预警:PagerDuty、pingdom、厂商自带如AWS SNS
    HTTP加速器:Varnish
    消息总线:ActiveMQ、SQS
    应用服务器:Tomcat、JBoss
    Web服务器:Apache、Nginx、IIS
    数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
    项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

    二Jenkins简易安装使用

    1、Jenkins是什么

    • Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件.Jenkins支持各种运行方式,可通过系统包,Docker或者通过一个独立的Java程序.
    image.png

    2、安装Jenkins

    • 因为Jenkins是java研发,所以安装时候首先安装jdk
    #安装jdk8
    [root@node-60 ~]# yum install java-1.8.0-openjdk-devel -y
    
    

    Jenkins下载地址https://jenkins.io/download/

    • 这里我们使用rpm安装方式,也可以下载使用war包,但要部署tomcat,把war文件放到tomcat目录中部署。

    部署方法一:rpm方式

    #下载Jenkins,安装文件比较大
    [root@node-61 ~]# wget https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.150.1-1.1.noarch.rpm
    
    #安装
    [root@node-61 ~]# rpm -ivh jenkins-2.150.1-1.1.noarch.rpm
    
    #启动Jenkins
    [root@node-61 ~]# systemctl start jenkins
    [root@node-61 ~]# ss -tnl
    State      Recv-Q Send-Q Local Address:Port                Peer Address:Port                      
    LISTEN     0      50                :::8080                          :::*  
    

    部署方法二:war+Tomcat方式

    #安装tomcat
    [root@node-61 ~]# yum install tomcat -y
    
    #下载war文件到tomcat目录中,war文件会自动展开
    [root@node-61 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.2/jenkins.war -P /usr/share/tomcat/webapps/
    
    #启动tomcat
    [root@node-61 ~]# systemctl start tomcat
    [root@node-61 ~]# ss -tnl
    State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
    LISTEN     0      100               :::8080                          :::*     
    

    登录管理页面,并在提升路径找到解锁密码

    解锁Jenkins
    选择安装

    [图片上传失败...(image-c25602-1550412947501)]


    插件管理
    系统管理中报错

    修复报错

    #编辑配置文件
    [root@node-61 ~]# vim /etc/tomcat/server.xml 
    ..........
       <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>    #添加
    #重启tomcat
    [root@node-61 ~]# systemctl restart tomcat
    

    全局工具配置

    全局工具配置
    #安装maven和docker,也可以在Jenkins管理页面中选择自动安装
    [root@node-61 ~]# yum install maven docker git -y
    
    #查询版本和路径
    [root@node-61 ~]# java -version
    openjdk version "1.8.0_191"
    OpenJDK Runtime Environment (build 1.8.0_191-b12)
    OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
    [root@node-61 ~]# which java
    /usr/bin/java
    
    [root@node-61 ~]# mvn -v
    Apache Maven 3.0.5 (Red Hat 3.0.5-17)
    Maven home: /usr/share/maven
    Java version: 1.8.0_191, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-957.1.3.el7.x86_64", arch: "amd64", family: "unix"
    
    [root@node-61 ~]# docker -v
    Docker version 1.13.1, build 07f3374/1.13.1
    [root@node-61 ~]# which docker
    /usr/bin/docker
    
    jdk手动设置路径
    git已经安装,所以自动使用默认路径
    手动设置maven和docker路径
    安装一个插件
    插件的安装

    3、使用Jenkins构建一个简单的任务

    选择
    新建一个任务名字
    git的url
    项目源代码的管理,需要账号密码
    构建触发器
    自定义脚本

    在另一台节点安装tomcat,并修改访问权限

    [root@node-60 ~]#  yum install java-1.8.0-openjdk-devel -y
    [root@node-60 ~]#  yum install tomcat  -y
    [root@node-60 ~]# yum install tomcat-admin-webapps -y
    
    #添加管理用户
    [root@node-60 ~]# vim /etc/tomcat/tomcat-users.xml 
    <tomcat-users>
    ................
    <role rolename="manager-script"/> 
    <user username="tomcat" password="tomcat" roles="manager-script"/>
    
    [root@node-60 ~]# tomcat version
    Server version: Apache Tomcat/7.0.76
    Server built:   Oct 16 2018 09:15:49 UTC
    Server number:  7.0.76.0
    OS Name:        Linux
    OS Version:     3.10.0-693.el7.x86_64
    Architecture:   amd64
    JVM Version:    1.8.0_191-b12
    JVM Vendor:     Oracle Corporation
    
    #启动tomcat
    [root@node-60 ~]# systemctl start tomcat
    
    
    构建后的操作 执行构建
    构建成功 构建完成,太阳代表构建成功,多云代表所有构建中有几次是失败的,阴雨是构建错误失败
    构建的war文件就会传递到目标主机的目录下,并自动展开 构建成功后访问目标主机测试网页

    4、使用参数,进行回滚操作

    • 使用参数来标记每个版本,便于版本控制,利用参数进行回滚操作
    #克隆下来
    [root@node-61 ~]# git clone https://github.com/mageedu/spring-boot-web-jsp.git
    [root@node-61 ~]# cd spring-boot-web-jsp/
    
    #查询github上的版本
    [root@node-61 spring-boot-web-jsp]# git tag -l 
    0.2
    0.4
    0.5
    1.0
    1.1
    1.2
    8.0
    8.1
    
    
    修改构建设置 选择参数化构建
    选择参数
    参数构建设置
    源码管理的高级设置 image.png 回滚到1.2版本
    参考链接:
    DevOps 详解参考:https://www.infoq.cn/article/detail-analysis-of-devops
    https://blog.csdn.net/CrankZ/article/details/81545439
    https://www.cnblogs.com/liufei1983/p/7152013.html

    相关文章

      网友评论

          本文标题:Jenkins的安装和简单使用

          本文链接:https://www.haomeiwen.com/subject/gzbveqtx.html