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)
CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)
CI/CD技术专题「Jenkins实战系列」Jenkins实现自动化部署+自动化合并其他分支