jenkins实战系列

Jenkins 是一个可扩展的持续集成引擎。

主要用于:

  • 持续、自动地构建/测试软件项目。
  • 监控一些定时执行的任务。 Jenkins拥有的特性包括:
  • 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
  • 易于配置-所有配置都是通过其提供的web界面实现。
  • 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
  • 生成JUnit/TestNG测试报告。
  • 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
  • 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

jenkins 官方网址:https://jenkins.io/

本文主要介绍了在linux 下如何部署jenkins.以及通过jenkins 如何发布php.以及java 程序,利用jenkins 来实现邮件告警及时了解项目发布过程中产生的问题。

一.jenkins 部署安装:

1.Linux部署Jenkins两种方法的介绍

方法1:WAR包

步骤简介:

wget在官方下载jenkins.war的包到tomcat下
修改tomcat的server.xml配置,重启tomcat
调整防火墙规则,允许端口访问
浏览器访问:http://x.x.x.x:port
方法2:YUM安装

步骤简介:

添加官方的rpm包源,进行yum安装
编辑jenkins的/etc/init.d/jenkins程序文件,添加java路径
编辑jenkins的/etc/sysconfig/jenkins配置文件,修改端口、系统运行账户
编辑/etc/profiles文件添加jenkins的环境变量
启动jenkins服务service jenkins start
浏览器访问:http://x.x.x.x:port
二、两种安装方法的对比

WAR包安装

优点:

只有一个war包,轻量级部署
配置过程简单,无需额外配置
对于已经部署好tomcat+jdk环境的Server,可以在10分钟内就搭建好Jenkins平台,适用于快速部署和使用;
适合新手,或者对Linux不太熟的人员
缺点:

因为是官方直接打包好的.war包,修改配置容易出现报错
运行不稳定,增加插件、修改权限等,很容易崩溃
重启jenkins服务不太方便(java -jar /xx/xx/jenkins.war --httpPort=8080)
YUM安装

优点:

对于熟悉Linux服务配置的人员来说,轻车熟路的配置流程
可以根据Server环境,定制化的修改jenkins配置文件
可以很方便的查看服务运行状态(state)、日志、排错、重启服务
适用于Linux老司机
缺点:

配置的过程稍复杂,要修改的文件和参数
反复查看日志中的ERROR,根据模糊的错误信息,调整环境和配置
对于Linux新手来说,配置起来有点难,Troubleshouting有点懵

2.利用tomcat来部署jenkins

部署tomcat
(1)安装jdk
这里的jdk 使用的是jdk-8u77-linux-x64.rpm
rpm -ivh jdk-8u77-linux-x64.rpm

(2)环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_77/                     # JAVA_HOME变两个路径
export JAVA_BIN=/usr/java/jdk1.8.0_77/bin
export PATH=${JAVA_HOME}bin:$PATH   # 环境变量
[root@caosm03 caosm]# java -version   # 查看版本
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
(3)部署tomcat
这里使用的tomcat  apache-tomcat-8.0.30.tar.gz
[root@caosm03]# tar -zxvf  apache-tomcat-8.0.30.tar.gz -C /usr/local
[root@caosm03 local]# mv apache-tomcat-8.0.30  tomcat
[root@caosm03 local]# cd /usr/local/tomcat/bin/
[root@caosm03 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/src/tomcat
[2017/12/13 15:55:02] Using CATALINA_HOME:   /usr/local/tomcat
[2017/12/13 15:55:02] Using CATALINA_TMPDIR: /usr/local/tomcat/temp
[2017/12/13 15:55:02] Using JRE_HOME:        /usr/java/jdk-1.8.0.77/
[2017/12/13 15:55:02] Using CLASSPATH:       /usr/local/src/tomcat/bin/bootstrap.jar:/usr/local/src/tomcat/bin/tomcat-juli.jar


启动报错:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path

解决方案:
<Server port="8005" shutdown="SHUTDOWN">
  <!--Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> -->
把这一句注释掉 不影响使用,解决这个问题非常蛋疼!!!
对端口进行修改 我这里改成了8090
对server.xml 进行修改
  <Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
 修改端口后要进行重启tomcat


启动进行测试:http://192.168.24.130:8090  启动正常
(4)准备安装包,安装jenkins
这里使用的安装是从官网下载的war 包 https://jenkins.io/
把安装包放到webapp下面
[root@caosm03 webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT
[root@caosm03 webapps]#root@caosm03 webapps]#java -jar jenkins.war --httpPort=8090 &
 进行启动  指定端口
直接访问即可!
http://192.168.24.130:8090
默认用户admin 
密码:[root@caosm03 ~]# cat /root/.jenkins/secrets/initialAdminPassword 
fb0cb152dc454586a217c46710ecc242
安装中文插件
https://updates.jenkins.io/download/plugins/locale/1.2
在/jenkins/pluginManager/advanced/ 上传插件,点击上传 ,重新刷新,Jenkins 恢复中文界面
http://updates.jenkins-ci.org/download/plugins/
安装插件 可选插件报错
这里需要选择高级
升级站点: http://updates.jenkins-ci.org/update-center.json  立即获取
重新启动tomcat

相关配置

# Jenkins安装目录
/var/lib/jenkins
# Jenkins配置文件地址
cat /etc/sysconfig/jenkins
# 三个比较重要的配置
JENKINS_HOME是Jenkins的主目录,Jenkins工作的目录都放在这里,Jenkins储存文件的地址,Jenkins的插件,生成的文件都在这个目录下。
JENKINS_USER是Jenkins的用户,拥有$JENKINS_HOME和/var/log/jenkins的权限。
JENKINS_PORTJENKINS_PORT是Jenkins的端口,默认端口是8080。

报错解决如下:

jenkins报错:Problem accessing /jenkins/. Reason: HTTP ERROR 404

这是一个Jenkins的Bug。临时解决方法是:在浏览器中手工输入:http://<ip>:<port>
不要访问"/jenkins"这个路径。

jenkins 报错: office This jenkins instance appears to be offline.

[root@caosm98 ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.0' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://updates.jenkins.io/update-center.json</url>
  </site>
https 改成http
需要重启jenkins

下一节 介绍 php代码发布

原文发布于微信公众号 - 大数据架构师专家(xinsz08)

原文发表时间:2018-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

Android Studio安装插件Genymotion

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

19980
来自专栏阿杜的世界

Spring Boot应用的健康监控

在之前的系列文章中我们学习了如何进行Spring Boot应用的功能开发,以及如何写单元测试、集成测试等,然而,在实际的软件开发中需要做的不仅如此:还包括对应用...

17510
来自专栏C/C++基础

Linux命令(24)——mv命令

mv命令用来为文件或目录改名,或将文件或目录移入其它位置。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

31510
来自专栏向治洪

Android Studio安装插件

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

21780
来自专栏帅小子的日常

sso系统使用

42980
来自专栏老安的博客

openstack 集成vmware 填坑经验

11720
来自专栏FreeBuf

weblogic安全配置二三事

*本文原创作者:shewey,本文属FreeBuf原创奖励计划,未经许可禁止转载 1、引言 前段时间Java的反序列化漏洞吵得沸沸扬扬,因工作原因需要对webl...

54250
来自专栏决胜机器学习

Redis专题(六)——Redis高可用(复制篇)

Redis专题(六) ——Redis高可用(复制篇) (原创内容,转载请注明来源,谢谢) 一、单台服务器 单台redis服务器,会出现单点故障,且需要承受所...

37060
来自专栏云计算教程系列

如何在Ubuntu 18.04上安装Java

Java和JVM(Java的虚拟机)是许多软件所必需的,包括Tomcat,Jetty,Glassfish,Cassandra和Jenkins。

3.3K20
来自专栏向治洪

studio安装插件

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

21150

扫码关注云+社区

领取腾讯云代金券