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. QT中常用工具总结

    1.qmake 利用.pro文件生成Makefile 命令为: eg: qmake -o Makefile hello.pro 2. uic 利用ui界面审查.h头文件 命令为: eg: uic go ...

  2. c的指针和php中的引用的区别

    https://blog.csdn.net/yangfanzn/article/details/44731391 1-php和c中的变量名都会被解析成内存地址,变量名所代表的内存的地址中内容即代表变量 ...

  3. LODOP表格table简短问答及相关博文

    LODOP打印表格超文本输出表格:ADD_PRINT_HTML.ADD_PRINT_HTM.ADD_PRINT_TABLE.ADD_PRINT_TBURL打印表格带页头页尾 参考样例15 http:/ ...

  4. [LeetCode] 232. Implement Queue using Stacks 用栈来实现队列

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  5. consul集群搭建以及ACL配置

    由于时间匆忙,要是有什么地方没有写对的,请大佬指正,谢谢.文章有点水,大佬勿喷这篇博客不回去深度的讲解consul中的一些知识,主要分享的我在使用的时候的一些操作和遇见的问题以及解决办法.当然有些东西 ...

  6. 【网络开发】详谈socket请求Web服务器过程

    最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生 ...

  7. 五、Snapman多人协作电子表格之——Python脚本

    Snapman多人协作电子表格是一个即时工作系统. Snapman中嵌入了Python脚本进行数据处理. 一.Snapman集合python语言介绍 将单元格设置为python脚本的方法:用Snapm ...

  8. linux 软连接 ln -s

    <pre>linux 软连接 ln -sln -s /home/ /home/ss/</pre> 按照win的说法就是创建快捷方式在/home/ss/ 文件夹里(名字就是hom ...

  9. C++静态成员变量必须定义

    静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存,否则不能使用,编译不会通过. class A { public: static int a; //声明但未 ...

  10. lay-verify

    lay-verify:是表单验证的关键字 required (必填项) phone(手机号) email(邮箱) url(网址) number(数字) date(日期) identity(身份证) 自 ...