持续集成-jenkins介绍与环境搭建
什么是持续集成?
转自:https://blog.csdn.net/tanshizhen119/article/details/80328523
持续集成,俗称CI, 大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
按照我的理解持续集成就是,一个通过一些手段或者是工具,在整个系统开发过程中,对于某一个时段(尽可能的短)完成部分功能向整个系统集成,通过编译,单元测试,自动化脚本等方式来验证整个功能是否存在问题,从而及时的发现问题并解决问题。在持续集成过程中,还有一个最重要的概念是自动化,编译,代码扫描,测试(单元,性能等测试),包括部署到测试环境等,这些步骤尽可能的自动化。
jenkins就是一个很好的持续集成工具,它有一千多个插件,各式各样的插件多得不行,支持的语言工具也很多。而且ci在整个devops工具链中处于中心位置,负责连接各种工具。
Jenkins环境搭建
jenkins部署的方式很多,可以用tomcat, 或者运行单独的war包,按照我的习惯,我比较喜欢用docker来部署。
拉取docker镜像:docker pull jenkins
运行jenkins docker镜像:
mkdir /data/jenkins_data
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /data/jenkins_data:/var/jenkins_home jenkins
就这么简单,docker就启动好了 访问:http://IP:8080
第一次登陆要输入初始密码,初始密码在 /var/jenkins_home/secrets/initialAdminPassword(这个是docker地址)
这个地址是docker里的地址,我们可以进docker里面去找:
docker exec -it myjenkins bash
cat /var/jenkins_home/secrets/initialAdminPassword
ctrl +p ,q 退出docker
另外一种方法:
由于我们启动时是否做了目录挂载:-v /data/jenkins_data:/var/jenkins_home
所以不用进docker里,直接执行 cat /data/jenkins_data/secrets/initialAdminPassword
将输入初始管理密码后,就可以进jenkins了,然后一路按照默认下载插件,然后创建一个管理员就好。
这样就已经安装好了。
jenkins功能
jenkins是一个相当出色的平台简约却不简单,整个平台提供一个最最核心的功能,但是它的插件竟然有一千多种。git, maven, ant,gerrit, gitlab, svn各种各样。只可惜免费但是不开源。
jenkins功能是相当的丰富的,但是从最最简单的来讲,它最核心的就是类似于一个作业平台。用户可以再上面创建job, 然后手动或者自动执行。它有着丰富的插件,可以让你方面的调用或者是关联各个系统或工具,来满足各式各样的要求。
我觉得jenkins2.0是引入了pipeline
什么是pipeline
什么是Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了Pipeline as Code的理念。
如下图就是pipeline执行的结果。这里先抛砖引玉,然后再详细介绍一下jenkins pipeline
持续集成-jenkins介绍与环境搭建的更多相关文章
- 持续集成(二)环境搭建篇—内网邮件server搭建
在我们的持续构建中,项目构建中出现错误提醒.或者开发者之间的沟通交流,进度汇报的事务,都是离不开一个通信工具.那就是邮件.在我们的项目开发中假设使用第三方的邮件平台,这肯定不是最好的选择.由于第三方的 ...
- 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...
- Python介绍及环境搭建
摘自http://www.cnblogs.com/sanzangTst/p/7278337.html Python零基础学习系列之二--Python介绍及环境搭建 1-1.Python简介: Py ...
- 自动化持续集成Jenkins
自动化持续集成Jenkins 使用Jenkins配置自动化构建http://blog.csdn.net/littlechang/article/details/8642149 Jenkins入门总结h ...
- 持续集成~Jenkins构建GitHub项目的实现
有了前两讲的基础,这回我们就可以把github上的项目做到CI(jenkins)里了,让它自动去集成部署,持续集成~Jenkins里的NuGet和MSBuild插件,持续集成~Jenkins里的pow ...
- Django 01 django基本介绍及环境搭建
Django 01 django基本介绍及环境搭建 #http服务器 #用来接收用户请求,并将请求转发给web应用框架进行处理 #Web应用框架 #处理完请求后在发送给http服务器,http服务器在 ...
- [springboot 开发单体web shop] 1. 前言介绍和环境搭建
前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小 ...
- App自动化测试-1.App自动化介绍和环境搭建
App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...
- Maven介绍及环境搭建
Maven介绍及环境搭建 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 下载Maven boot:类加载器框架,Maven使用它加在自 ...
随机推荐
- vue中引入babel步骤
vue中引入babel步骤 vue项目中普遍使用es6语法,但有时我们的项目需要兼容低版本浏览器,这时就需要引入babel插件,将es6转成es5. 1.安装babel-polyfill插件 npm ...
- 深度学习之卷积神经网络(CNN)
卷积神经网络(CNN)因为在图像识别任务中大放异彩,而广为人知,近几年卷积神经网络在文本处理中也有了比较好的应用.我用TextCnn来做文本分类的任务,相比TextRnn,训练速度要快非常多,准确性也 ...
- 详解synchronized与Lock的区别与使用
知识点 1.线程与进程 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个进程,而一个进程最少需要一个线程.关系是线程–>进程–>程序的大致组成结构.所以线程是程序执行流的最小单位 ...
- iOS----------demo总结
1.demo总结 2.第三方使用 一.demo总结 1.选择相册单张照片 二.第三方使用
- 学习ELK之----01.建立ELK测试项目
1. 建立一个4G内存的虚拟机,安装Linux系统(具体的版本以能运行Docker为准,我用的是Ubuntu-Server) 2. 安装Docker 3. 下载elk容器:# docker pull ...
- Nginx 一个高性能的HTTP和反向代理服务器
本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解过,欢迎留言交流. Nginx能做什么 ——反向 ...
- Python之路【第六篇】:Python迭代器、生成器、面向过程编程
阅读目录 一.迭代器 1.迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: ...
- 第九周LINUX 学习笔记
基于GTID的mysql主从简单复制 一.简单主从模式配置步骤1.配置主从节点的服务配置文件1.1.配置master节点:[mysqld]binlog-format=ROWlog-bin=master ...
- 使用PowerShell实时查看日志文件的变化
开发过程中,会有好多的日志输出到日志文件中了,每次看日志都需要打开,log文件,觉得麻烦 找了个省事的方法 使用PowerShell 使用命令:Get-Content D:\www\webapp1\L ...
- 接触新的项目,构建时候报错:Failure to find io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.7.Final in
详细信息如下: Failure to find io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.7.Final in http:// ...