jenkins实战系列

Posted 大数据架构师专家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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代码发布


以上是关于jenkins实战系列的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD技术专题「Jenkins实战系列」全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)

jenkins实战系列

CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)

CI/CD技术专题「Jenkins实战系列」Jenkins实现自动化部署+自动化合并其他分支

CI/CD技术专题「Jenkins实战系列」jenkins+pipeline构建自动化部署

CI/CD技术专题「Jenkins实战系列」重塑Jenkins服务进行自动合并的方案实现(纠正错误)