jenkins安装和简单部署

jenkins历史

jenkins是一款非常好用的团队CI(Continuous Integration)工具。它可以使你的构建,集成,发布,开发流程自动化。减轻各个环节所耗时间。同时可以自行研发插件并用于自己工作环境中。

简单描述一下jenkins构建到发部程序的过程:

首先##开发人员(提交代码至代码仓库) —> “jenkins(执行构建任务) —> 先去代码仓库拉取相应的代码至workspace —> 根据所定义的编译流程(如pom.xml) —> 在编译过程中可以test(测试)程序” —> 发部至工作环境直至服务可用

在jenkins工作的过程,每一步都有提示,并且可以发邮件等信息来提示构建的人员。

安装jenkins

因为jenkins由java语言所写,所以下载的jenkins只是一个war包。官网地址:https://jenkins.io/

本次安装是由tomcat程序安装

  1. jenkins-2.60.3-1.1.noarch.rpm 直接下载rpm包,并且提供jdk和tomcat
##安装jenkins rpm包
]# rpm -ivh jenkins-2.60.3-1.1.noarch.rpm
]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war ###就是这个war包,只需要此包放置#
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins ##部署tomcat容器和jdk
]# tar xf apache-tomcat-7.0.81.tar.gz
]# mv apache-tomcat-7.0.81 jenkins ]# tar xf jdk-8u144-linux-x64.tar.gz
]# mv jdk1.8.0_144 jdk ##在tomcat容器里添加jdk的环境变量
]# vim tomcat/bin/startup.sh
export JAVA_HOME=/server/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH ##将之前安装的jenkins所得的war给复制到webapp目录下,然后重启即可(这里也可以自行搭配nginx做反向代理)
]# mv /usr/lib/jenkins/jenkins.war /server/jenkins/webapps/
]# bash /server/jenkins/bin/startup.sh
  1. 安装完成后,变可打开浏览器访问192.168.1.156:8080/jenkins

前面简单的安装过程,这里就不详述了。中间安装的插件可自行选择。也可默认安装。

  • 下图中红色方框内是需要更改的,黄色方框是需要修改的。

  • 黄色方框解决方法:在server.xml加入URIEncoding="UTF-8"

  • 可增加邮件提醒功能:系统设置->email notification 只需要填写 smtp.163.com

    注意的地方有两点:

    第一:首先你的打开你接收邮箱的smtp功能

    第二:在配置填写密码时,不是邮箱登陆密码,而是上面那一步填写的密码(也就是开启邮件)

  1. 配置全局工具配置

    这里面的选项都是jenkins所要用到的基础的工具

推荐安装插件:

- Deploy to container Plugin //这个是部署tomcat的插件

- Multiple SCMs plugin //可以选择添加多个Git库的插件

jdk,maven,git等插件我个人都是手动下载安装,也可在jenkins里选择安装

  1. 配置用户安全访问策略:

Configure Global Security -> 启用安全 -> 项目矩阵授权策略 (这里得提醒一下,在配置用户时需要先创建用户,并且先apply)

注意:

- 记得给admin所有权限,这个不是默认就是admin拥有所有权限

- 在构建的项目里也需要添加用户权限,里面也是需要给admin权限,切忌,要不然admin就看不到项目了

- 在“全局安全配置”中打开安全矩阵,后就可以在项目里添加各种安全机制。

简单介绍一个和安全配置小项的功能,其实从字面意思上就可以看的懂

- 最大的权限是Overall的Administer,拥有该权限可以干任何事情。

- 最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。

- 其他的每个权限都可根据字面意思来

推荐安装插件:

- Audit Trail plugin //将用户的更改记录在一特殊的日志文件中

- JobConfigHistory plugin //允许你保存jenkins系统配置和job配置文件以前版本的副本

在以上基本的配置完成后,接下来就可以添加实例了:

添加实例:

General :常规设置

  • 正常都是添加一个自由风格的软件项目,但是我比较推荐使用Pipeline,但是得写jenkinsfile文件来串联起来(流水线)。"流水线"非常适合于一些比较复杂的实例。也是一个自动化方能力方面的提升。建议使用。





  • 启用项目安全:就和上面的安全一样,控制用户权限,必须控制
  • 丢弃旧的构建:提示意思已经很明确了
  • 参数化构建:顾名思义,就是在点击"构建"时,可以根据所提供的参数去"构建"出不同的代码。很好用

接下来简单描述一下"参数化构建"两个常用的方法



- Choice Parameter:选择参数来进行构建

- Name:名称,也就是变量

- Choices:可选择的,选择其中一个,就是给Name名称变量赋值。

- Description:描述

示例:

一:变量选择

直接输出变量,即可测试。之后"保存"->"Build with Parameters"->"选择值"->"开始构建"

选择no,在查看"Console Output"

可以很清晰的看到,输出的值就是我选择的值。

二:字符选择

添加默认值,也就是在参数化构建时,如果您不修改参数,就是使用这个默认值就赋值变量。



我这里将默认值修改成"Hello World!!!"



这里也是成功的。OK,参数化构建就说到这里,其他更高级使用方法,去官网查吧!

源码管理

以git为例

  • repository url:填写仓库的地址
  • Credentials:这里需要配置拉取git源码的用户名和密码
  • Branches to build:这里是提供的拉取代码版本号,可以使用"变量","正则"等,可点击绿色方框,查看指引。

这里其实还有一个编译工具如,maven,gradle等的配置项需要填写,这里也不说明了。

构建触发器

  • 触发远程构建:自动化构建,拼接URL后写入代码中可以实现在脚本或者工具执行构建
  • Build after other projects are built: 构建与其他项目构建后,用于上下游项目有关联的时候
  • Build periodically:定时执行构建
  • GitHub hook trigger for GITScm polling:这个是git钩子的功能,如果有钩子,则触发相应的规则
  • Poll SCM: 设置定时检查代码仓库是否有变更,有变更则构建
    • minute,0-59 //这里需要注意的,在分钟这里需要加"H"这个标志,如果不加会报错。就如上图的例子
    • hour,0-23
    • day,0-31
    • month,1-12
    • week,0-7

构建环境

  • Delete workspace before build starts : 在构建之前清空工作空间
  • Abort the build if it's stuck : 如果构建出现问题则终止构建
  • Add timestamps to the Console Output:给控制台输出增加时间戳
  • Use secret text(s) or file(s) : 使用加密文件或者文本

构建

构建后

构建就是编译的过程,只要有代码,编译的配置文件(pom.xml)等文件,就会自动构建。

构建后,可以通过shell脚本或"deploy war/ear to a container"可自动部署

构建完成后,还可以邮件通知用户等等功能

  • WAR/EAR files:输入war包的相对路径,如我的war包在新建目录的target下
  • context path:输入用来访问tomcat的名称,localhost:8080
  • add container:增加容器,一般选tomcat 7X就可以。这里的username与password需要到tomcat的conf文件夹中的tomcat--users.xml修改。
  • tomcat URL: 就是你希望把war包部署到的tomcat所在IP地址,最后面不需要再加斜杠/。tomcat-users.xml中的用户名及密码默认是注释掉的,所以需要删除注释,也可以直接复制以下代码到之前。如果只是删除注释的话好像部署不会成功,还需要增加manager开头的三个role才可以。
  • Recipients : 收件人邮件地址

最后"保存"->"构建",查看"Console Output"日志是否正常。一个实例已经配置好,并正常运行

jenkins安装和简单部署的更多相关文章

  1. nginx之旅:安装及简单部署

    安装之前最好了解一下nginx,参考nginx百度百科吧,下面这一句话基本概括了nginx的基本功能 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理  ...

  2. 使用Jenkins 安装和自动化部署项目

    安装 jenkins 安装方法可以使用war 安装 或者服务安装.我这里使用  rpm 安装 第一步: 我们使用的 centos  ,选着这个,直接 下载传到服务器上.或者 复制下载链接 到 服务器上 ...

  3. Jenkins安装与构建部署

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

  4. Jenkins安装配置简单使用

    安装启动是十分简单的,直接去https://jenkins.io/download/下载对应的rpm包就好了,需要注意的是我们的机器上要提前有java环境,相对应要选择你java环境可以支持的jenk ...

  5. jenkins 安装 + maven + git部署

    1. 安装JDK 2. 安装maven 3. 安装git 4. 安装tomcat tar zxvf apache-tomcat-8.5.14.tar.gz 找到tomcat-->config-- ...

  6. Struts2安装与简单部署实例

    打开http://struts.apache.org/网站,下载strut2 版本选择: Full Distribution: Struts2完整版 建议下载该项(此版包括以下4项): Example ...

  7. Jenkins——安装部署

    1.部署Jdk 由于jenkins需要jdk环境,所以先部署jdk,解压并设置环境变量就行: # tar zxf jdk-8u45-linux-x64.tar.gz # mv jdk-8u45-lin ...

  8. 1、Jenkins的安装与简单配置

    Jenkins安装 1.安装Jenkins之前先部署安装java环境(java环境安装另外参考安装文档) 注意:Jenkins 需要运行 Java 5以及以上的版本. 安装环境:CentOS7.3+J ...

  9. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

随机推荐

  1. Anaconda3_5.3.1+Pycharm2018.3安装步骤

    最近更新了Anaconda软件,重新配置了以下Python开发环境,结果之前旧环境开发的好好的程序竟然跑不起来.网上各种搜索,各种找答案还是没有一篇靠谱的文章教我把问题解决.走了各种弯路,足足整了几天 ...

  2. 002-maven开发Java脚手架archrtype【如无定制开发,请直接看3.3使用】

    一.概述 项目基础构建需要:项目结构,spring框架,orm,连接池,数据库,单元测试等等. 上述即使复用:001-脚手架发展,基础代码结构+mybatis代码生成,基础代码结构,也需要修改成自己单 ...

  3. 使用协方差矩阵的特征向量PCA来处理数据降维

    取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.data ...

  4. 【Python开发】PyInstaller打包Python程序

    PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...

  5. Module 'mysql' already loaded in Unknown on line 0解决方法

    Module 'mysql' already loaded in Unknown on line 0解决方法 直接进入php.ini 把;extension=mysql.so注释掉就好了

  6. leetocode 207 课程表

    解题思路: 本题可约化为:课程安排图是否是 有向无环图(DAG).即课程间规定了前置条件,但不能构成任何环路,否则课程前置条件将不成立. 思路是通过 拓扑排序 判断此课程安排图是否是 有向无环图(DA ...

  7. mysql系统信息函数

    1.VERSION() 返回数据库的版本号 SELECT VERSION() -- 5.0.67-community-nt2.CONNECTION_ID() 返回服务器的连接数SELECT CONNE ...

  8. Mac打开原生NTFS功能

    一.在 terminal 里输入 diskutil list 查看 U 盘的 NAME diskutil list 二.执行以下命令,输入密码 sudo nano /etc/fstab 三.把U盘信息 ...

  9. 多生产者多消费者(第二种方式2.1)基于BlockingQueue

    public class Producer implements Runnable { //静态变量只初始化一次 private static AtomicInteger count = new At ...

  10. CSP前的板子们

    见窝的luogu博客qwq noip前的板子们