Jenkins 2.164.2

官方:https://jenkins.io

一 简介

Build great things at any scale

The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

jenkins支持数百种插件支持构建、部署和自动化;

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.

任何公司都面临项目部署的问题,而项目部署抽象起来包括:1)指定分支和版本;2)从代码库下载代码;3)编译和打包;4)发布到远程服务器;5)重启应用;6)回滚;

发布到远程服务器的根据需要可以是jar、war、docker image或文件夹;

jenkins让你通过插件、配置、脚本的方式完成上述的一切;

二 安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

启动

systemctl start jenkins
systemctl enable jenkins
systemctl status jenkins

启动之后访问

http://localhost:8080

如果默认端口8080有冲突,可以修改

vi /etc/init.d/jenkins
export JENKINS_PORT=8080

首次登录随机密码在这里

/var/lib/jenkins/secrets/initialAdminPassword

按照向导操作即可;

三 使用

常用插件

Git (代码库)

Maven (构建和打包)

Publish Over SSH (远程拷贝文件并执行命令)

SSH (远程执行命令)

Zentimestamp (支持 ${BUILD_TIMESTAMP})

Extended Choice Parameter Plug-In (用于回滚)

创建一个新的项目

1 先在Credentials中增加git账号和服务器ssh账号及密码;

2 然后在Manage Jenkins - Configure System中配置ssh服务器相关;

3 创建项目

3.1 New Item

3.2 Freestyle project

3.3 Config

3.3.1 Source Code Management

添加git repository url并选择刚才添加的git账号;

3.3.2 Build

Invoke top-level Maven targets (执行maven goal)

Execute shell (本地执行shell)

Execute shell script on remote host using ssh (远程执行shell)

3.3.3 Post-build Actions

Send build artifacts over SSH (远程拷贝文件并执行shell)

这样一个简单的项目部署就完成了

在shell中可以使用很多jenkins的环境变量,比如 WORKSPACE,JOB_NAME,BUILD_TAG,GIT_COMMIT等,详见:

http://localhost:8080/env-vars.html/

目录结构

jenkins目录位于

/var/lib/jenkins

workspace目录位于

/var/lib/jenkins/workspace

job目录为

/var/lib/jenkins/workspace/${JOB_NAME}

代码下载和编译打包都在job目录中,比如target目录;

参考:
https://github.com/jenkinsci/docker/blob/master/README.md

https://pkg.jenkins.io/redhat-stable/

【原创】编程基础之Jekins的更多相关文章

  1. (转)Windows驱动编程基础教程

    版权声明     本书是免费电子书. 作者保留一切权利.但在保证本书完整性(包括版权声明.前言.正文内容.后记.以及作者的信息),并不增删.改变其中任何文字内容的前提下,欢迎任何读者 以任何形式(包括 ...

  2. 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!

    http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  3. Linux学习之二十一-shell编程基础

    Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...

  4. Java并发编程系列-(1) 并发编程基础

    1.并发编程基础 1.1 基本概念 CPU核心与线程数关系 Java中通过多线程的手段来实现并发,对于单处理器机器上来讲,宏观上的多线程并行执行是通过CPU的调度来实现的,微观上CPU在某个时刻只会运 ...

  5. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  6. 第二章 Matlab面向对象编程基础

    DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...

  7. [.net 面向对象编程基础] (1) 开篇

    [.net 面向对象编程基础] (1)开篇 使用.net进行面向对象编程也有好长一段时间了,整天都忙于赶项目,完成项目任务之中.最近偶有闲暇,看了项目组中的同学写的代码,感慨颇深.感觉除了定义个类,就 ...

  8. Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式

    前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...

  9. T-Sql编程基础

    T-sql编程 入门小游戏 T-sql编程基础,包括声明变量,if判断,while循环,以及使用一些基本函数. 记得在学校的时候,写过一个二人对打的文字输出游戏. 上代码 alter proc usp ...

随机推荐

  1. Restorator软件使exe文件都不能打开,exe不支持此接口

    遇到的问题: 下载了一个软件Restorator(资源修改器),填写完注册码之后,所有的exe文件都不能打开了,任务管理器不支持此接口打不开. 问题原因: 软件Restorator关联exe文件,运行 ...

  2. Sublime 添加∕删除右键菜单.bat

    Sublime 添加∕删除右键菜单.bat @ECHO OFF & PUSHD %~DP0 & TITLE >NUL 2>&1 REG.exe query &quo ...

  3. 前端中关于HTML标签的属性for的理解

    First:<label>的说明:1.<label>标签为input元素定义标注(标识)2.label元素不会像用户呈现任何特殊的效果,仅作为显示扩展:不过,它为鼠标用户改进了 ...

  4. c++ new bad_alloc

    try { for (int i = 0; i<1000; i++) { test1 = new Test(); cout << i << " new dog ...

  5. python 内置数据结构 字符串

    字符串 一个个字符组成的有序的序列,是字符的集合 使用单引号,双引号,三引号引住的字符序列 字符串是不可变对象 Python3起,字符串就是Unicode类型 字符串定义 初始化 s1 = 'stri ...

  6. ES6重要点学习

    1.解析赋值: let [a,b,c,d,e] = '我是中国人' //我 a = wo let [a,b,c] = 123 // 出错,Numberbu不允许解析不允许解析 2.数据集合Set, m ...

  7. Sed---linux系统三剑客(二)

    grep .sed.awk被称为linux中的"三剑客". grep 更适合单纯的查找或匹配文本 sed  更适合编辑匹配到的文本 awk  更适合格式化文本,对文本进行较复杂格式 ...

  8. Kali中安装 Shodan

    工具介绍 Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不同,Shodan 是用来搜索网络空间中在线设备的,你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备 ...

  9. get_object_var 返回一个数组

    语法:get_object_var($object),返回一个数组.获取$object对象中的属性,组成一个数组 实例: <?php class person{ public $name=&qu ...

  10. Union All 使用注意事项和字段顺序不一致导致的异常

    使用注意,先说结果: UNION 操作符用于合并两个或多个 SELECT 语句的结果集,这里需要注意的是: UNION 内部的 SELECT 语句必须拥有相同数量的列: 列也必须拥有相似的数据类型(实 ...