很多同学可能第一次了解什么是ci-cd,什么是Jenkins,首先会介绍下cicd的概念及应用场景,之后再详细介绍下Jenkins的概念、安装及使用。

什么是CI-CD?

首先明确CI-CD是一种技术,而并不是指一个软件。

CI:可持续集成(简单将就是通过公用代码仓库将开发人员的代码进行统一集成管理,与集中测试)

CD:可持续部署(将集成测试后的代码自动部署到你需要的地方)

注意:这里说的额可持续的意思不是说一直运行,而是可以随意执行的意思。

简单了解完CICD,你肯定在想这个技术倒是应用于什么场景?优势是什么?

cicd主要是将开发工作与测试工作两个部分进行了无缝衔接,开发人员只需要将代码提交公用仓库,代码就会自动进行编译,检测,部署到客户端等操作。比如频繁需要开发部署的应用程序。

采用CI/CD流水线后:

1.项目上线时间大大缩减,不仅提高发布速度及代码质量,还可以以增量方式连续添加新功能,是产品具有更少的缺陷。

2.整个交付流水线所有阶段都是对团队公开的,所有成员都可以检测、改进及验证。

3.CD流水线提供开发到客户的快速反馈循环,减少工作量。

常见的CI/CD框架:

1.开发人员将代码通过git/svn上传到公有仓库(GitLab/Svn/Gogs/Github)。

2.公有仓库通过WebHook将公有仓库的代码推送到Jenkins(cicd工具,下面会详细介绍)。

3.Jenkins工具拥有将代码构建、编译、分析、单元测试、镜像的功能(需要自行配置)。

4.可以将结果存储到镜像管理仓库Harbor,将服务跟新到K8s。(这里我们是与HKDAS进行结合)

5.最后用户通过电脑进行访问,就可以看到已经部署完成的程序。

Jenkins介绍及使用:http://jenkins-ci.org/

Jenkins是一个CD/CD的软件,允许持续集成与持续交付项目(就是集成测试与程序部署),支持分布式,最主要是开源免费。

主要作用是:

1.可以持续的自动构建/测试软件项目

2.可以监控开发流程、邮件报警、定位问题等

发布流程:

产品设计-->开发者提交代码-->自动测试功能-->自动上线

Jenkins的安装:

1.官网下载一个jenkins.war包(推荐使用war是使用比较方便)

2.Centos(也支持windows,这里以Linux为主)中直接运行 Java -Jar Jenkins.war 可以直接启动

3.启动完成后直接访问ip:8080进入web界面,可以在启动时指定端口

4.第一次运行登陆web界面需要进行解密,在服务器中输入 cat /root/.jenkins/secrets/initialAdminPassword 查看密码

5.配置管理员账号,用以之后的管理

------------------------------------------------------------------------------------------------------------------

jenkins开机自启脚本

#!/bin/bash

###主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限

JAVA_HOME=/usr/local/jdk1.8

#pid用于判断jenkins是否已经启动

pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`

  if [ "$1" = "start" ];then

  if [ $pid -gt 0 ];then

  echo 'jenkins is running...'

else

  ### java启动服务 配置java安装根路径,和启动war包存的根路径配置端口

  nohup $JAVA_HOME/bin/java -jar /usr/local/jenkins/jenkins.war --httpPort=8081  2>&1 &

  fi

  elif [ "$1" = "stop" ];then

  exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9

  echo 'jenkins is stop..'

else

  echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""

  fi

-------------------------------------------------------------------------------------------------------------------

Jenkins与gogs集成:

Jenkins+gogs(也是一种代码仓库,想了解可以自行百度):

1.插件条件:gogs集成需要安装gogs插件(在插件管理中的直接搜索gogs直接安装),安装插件后配置全局工具配置(jdk,maven,git)。

2.安全条件:配置密钥(建立Jenkins与gogs的连接)

查看centos下.ssh/.pub的公钥复制到gogs中(生成公钥的方式略,百度上很多),将其添加到gogs的密钥配置中。

3.新建maven(这里以maven项目为主)工程,对项目简单配置,在源码管理选择git(因为gogs支持git工具)管理,输入gogs中的url连接(需要配置第2步的密钥,否则报错)

一般配置页面:保留最大构建数

代码管理配置页面:配置与gogs的关联

4.构建测试,看是否拉取到了代码,也可以查看 /root/.jenkins/workspace下是否有项目war(这里包的方式是你maven中配置的打包方式 clean package )。

登陆gogs仓库进入仓库设置:

5.推送工程(自动同步):gogs进入仓库中设置web钩子,将新增的数据通过订阅的方式传输到Jenkins(可以自定义推送的触发条件)。

推送地址为:http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名>

也可以通过Token_name配置钩子,http://username:password@ip:port/

同时Jenkins需要在构建触发器中选中Build when a change is pushed to Gogs的选择(当gogs中代码改变会重新构建)。

gogs仓库web钩子配置:

Jenkins构建触发器配置:

构建:也就是打包(这里是maven打包)

参考文章:https://blog.csdn.net/gongxsh00/article/details/80861214

6.接下来使用Deploy to container Plugin 插件(没有需要安装)来管理war包自动部署到Tomcat中。需要配置build(配置打包goals:clean package -Dmaven.test.skip=ture)与构建后操作(配置war包地址与Tomcat地址与访问权限,注意需要先去配置Tomcat,在构建是tomcat需要开启)。

构建后操作:(也就是打包后的操作)

6.1 如果需要使用jar包部署,可以使用shell脚本的方式。

7.构建后存档及邮件告警

遇到的问题:

1.安装其他插件重启Jenkins后,又出现了部分中文简体不翻译的情况。

尝试一下方法,可以完美修复。

1. 将语言设定为zh_US,Jenkins切换为英文。

2. 调用restart重启Jenkins:http://域名/restart。

3. 再次语言设定为zh_CN,刷新即可。

2.Tomcat在centos7中启动很慢?

yum install rng-tools # 安装rngd服务(熵服务,增大熵池) systemctl start rngd  # 启动服务

Tomcat修改端口?在conf/server.xml中修改

Jenkins-gogs安装及使用的更多相关文章

  1. Docker+Jenkins+Gogs 自动构建.Net Core

    Docker+Jenkins+Gogs 自动构建.Net Core 引言 jenkins+gags 全部采用Docker安装,通过jenkins插件ssh调用外部Docker构建 主要实现功能: gi ...

  2. Docker搭建Jenkins+Gogs+Maven/Gradle——代码自动化运维部署平台(三)

    一.简介 1.CI/CD CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一个面向开发和运营团队的解决方案,CI/C ...

  3. Jenkins学习之——(1)Jenkins的安装与配置

    1.最近公司要求做自动化部署,于是自学了jenkins.这个参考书很少,网上的文章也讲得很模糊,于是打算把自己学习东西记下来,希望对大家有所帮助. 一.jenkins的安装 到jenkins官网(ht ...

  4. Jenkins详细安装与构建部署使用教程(转)

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:1.持续的软件版本发布 ...

  5. Jenkins的安装与系统配置

    Jenkins的安装 Jenkins的安装需要一个安装包:http://pan.baidu.com/s/1hqQBruc,也可以去Jenkins官网上下载,Jenkins的官网地址 http://Je ...

  6. 老李分享:持续集成学好jenkins之安装

    老李分享:持续集成学好jenkins之安装   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  7. Jenkins的安装配置

    Jenkins的安装配置 一.Jenkins简介 Jenkins 是一个可扩展的持续集成引擎.Jenkins可以帮我们将代码进行统一的编译打包.还可以放到tomcat容器中进行发布.简单来说就是我们通 ...

  8. Jenkins具体安装与构建部署使用教程

    Jenkins是一个开源软件项目.旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作,功能包含:1.持续的软件版本号 ...

  9. jenkins简单安装及配置(Windows环境)

    jenkins是一款跨平台的持续集成和持续交付.基于Java开发的开源软件,提供任务构建,持续集成监控的功能,可以使开发测试人员更方便的构建软件项目,提高工作效率. Windows平台下,一般安装方法 ...

  10. DevOps之四 Jenkins的安装与配置

    CentOS 上 Jenkins 安装 一.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...

随机推荐

  1. DFS(单词方阵)

    思路: 先把地图二维字符数组存进去之后,遍历寻找到一个‘y’,然后我们可以设置一个八个方向的方向数组,让‘y’的坐标,遍历加上方向坐标,找到’i‘然后沿着这个方向,dfs下去,每次寻找到正确的,然后建 ...

  2. vue2.x学习笔记(三十一)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12683075.html. 安全 现在的企业都比较在意信息系统的安全问题,在使用vue的过程中也要注意这一点. 报告 ...

  3. 1月份中国综合PMI指数为53.2% 企业生产经营活动总体增速加快

    中新社北京1月31日电 (记者 王恩博)中国国家统计局31日发布数据显示,2019年1月份,中国综合PMI产出指数为53.2%,比上月上升0.6个百分点,表明中国企业生产经营活动总体增速加快. 其中, ...

  4. 个人博客开发系列:Vue.js + Koa.js项目中使用JWT认证

    前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). 更多的介绍和说明,以及各种原理,我在此就不多赘诉了.JWT不是一个新鲜 ...

  5. C++编程入门题目--No.2

    题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%:20万到4 ...

  6. 图论--最短路--SPFA

    SPFA算法(shortest path faster algorithm)算法是西南交通大学段凡丁于1994年发表的,它在Bellman-ford算法的基础上进行了改进,使其在能够处理待负权图的单元 ...

  7. 疯子的算法总结(九) 图论中的矩阵应用 Part 2 矩阵树 基尔霍夫矩阵定理 生成树计数 Matrix-Tree

    定理: 1.设G为无向图,设矩阵D为图G的度矩阵,设C为图G的邻接矩阵. 2.对于矩阵D,D[i][j]当 i!=j 时,是一条边,对于一条边而言无度可言为0,当i==j时表示一点,代表点i的度. 即 ...

  8. 使用Python+TensorFlow2构建基于卷积神经网络(CNN)的ECG心电信号识别分类(二)

    心律失常数据库 目前,国际上公认的标准数据库包含四个,分别为美国麻省理工学院提供的MIT-BIH(Massachusetts Institute of Technology-Beth Israel H ...

  9. andorid jar/库源码解析之Butterknife

    目录:andorid jar/库源码解析 Butterknife: 作用: 用于初始化界面控件,控件方法,通过注释进行绑定控件和控件方法 栗子: public class MainActivity e ...

  10. opencv基于PCA降维算法的人脸识别

    opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...