Devops学习实践(二) Jenkins安装、配置、任务构建
随着工作的要求,devops作为今年工作的一个重点,由此也引发了自己对于devops相关的工具和技术的学习和实践。基于上述背景,这个系列将逐步的介绍SVN的安装和配置、jenkins安装和配置、reviewboard、findbugs、checkstyle、sonar、testng、mockito等。【每个合格的程序员都是耐操的】
随着工作的要求,devops作为今年工作的一个重点,由此也引发了自己对于devops相关的工具和技术的学习和实践。基于上述背景,这个系列将逐步的介绍SVN的安装和配置、jenkins安装和配置、reviewboard、findbugs、checkstyle、sonar、testng、mockito等。【每个合格的程序员都是耐操的】
上一节说了SVN的安装和配置,这一节说Jenkins的持续集成
一、目标
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它用于监控持续重复的工作,功能包括:1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作
上面这一小段化来自百度百科,那么这是什么意思呢?这可以从下面这样的场景来说。我们开发一个软件,设计、编码、测试、集成、发布,尤其编码后进行测试、集成、发布这样的环节,随着开发模式越来越向敏捷、迭代模式流行,也就会面对持续交付的问题越来越有压力,需要对这些环节进行有效的、持续的管理。Jenkins就是这样一个平台,可以有效的纳入,测试、集成、发布这些环节,串起来,给所有参与的人,一个可以查看和监控的平台。
简单的说,它是提高测试、集成、发布效率的工具。
本次实践的目标是:
1、安装jenkins
2、通过Jenkins 来构建任务,通过Jenkins,与SVN,Maven配合起来,完成从SVN上获取代码,通过Maven进行编译打包,完成后发送邮件,
(发布以后再说)
二、实践环境说明
Jenkins现在发展的很快,很多资料与自己的版本不一致,其实是因为版本的不同,所以有必要交待一下环境:
1、windows 虚拟机:192.168.136.100 SVN服务器
2、Linux Centos虚拟机: 192.168.136.144 Jenkins服务、Maven 服务
3、Jenkins的版本是 2.32 ,安装包为:jenkins-2.32.1-1.1.noarch.rpm
三、Jenkins的安装
Jenkins的安装非常简单,可以下载war包,直接启动。Jenkins的war包,用Jetty来发布Http;也可以采用rpm包来安装,我采用的rpm包安装。
首先从网站上下载Jenkins,官网为:https://jenkins.io/index.html
我的目标机是Centos,选择这个,
下载后,将安装包上传到Centos服务器上,采用rpm包安装的命令如下:
rpm -ivh jenkins-2.32.1-1.1.noarch.rpm
这个执行后,就安装好了,要运行或者重启采用如下命令:
启动命令: service jenkins start
重启命令: service jenkins restart
安装完成后,jenkins实际的安装目录在: /var/lib/jenkins
这里红色框出来的内容,需要注意一下,要不以后也是一个坑。 jenkins默认是用 jenkins用户安装的,这里mark一下,以后碰到坑时,知道如何处理。
四、Jenkins的配置
4.1 Jenkins的初次安装和使用
在本机浏览器里打开Jenkins网址: http://192.168.136.144:8080/
第一次安装,会弹出输入key的界面
根据提示,从上述目录下,cat 一下这个文件,复制 password 到这里填入,继续,如果出现下面的窗口,说明是网络问题,检查网络。
如果网络正常,那么会出现下面的安装插件的界面,让它自己安装就好了。
如果一切顺利,那么会弹出如下界面:
点击 Start 按钮,进入Jenkins 环境
4.2 Jenkins 环境,构建任务
Jenkins 提供了多种构建方式,本次实践就是构建一个简单的maven项目。下面看看如何进行的。在正式构建项目之前,需要做一下全局的工具设置
从上图中标注的位置,进入具体的工具配置。其中重点是 jdk 和maven的配置。 虽然jenkins里面集成了自动下载的方法,但是在网络受到各种受限制的环境下(基于安全的考虑,很多公司有设置各种网络策略),强烈建议先从网络上下载安装包进行安装,然后再jenkins里面设置HOME路径,就可以不需要通过Jenkins来安装了。我一开始通过jenkins安装,构件任务失败了3,4次,都是因为下载地址无法下载。在Tool configuration打开的界面里面,我们可以这样设置:
再配置一下maven
这个配置完成后,点save。 这里配置的内容比较,包括git,docker,以后有用到再摸索。
现在返回jenkins主菜单,正式构建一个新任务。选择新建任务,
这里选择构建一个自由风格的软件项目,和很多网页不同,这里是没有显示maven 2/3 项目选项的。 在project 名字里面,输入自己想构建的项目名称。这里用的是 cwq_projecttest1
然后,进行基本的构建内容设置,主要包含如下内容:
在general 这里,通过打开高级选项,这里强烈建议使用自定义的工作空间
svn的设置,URL 是一个基于MAVEN创建,并上到SVN服务器的项目,在Credentials这里,通过add的方式,添加SVN的用户名和密码
在构件触发器这里,进行如下配置,是一种每天定时的配置
这里要注意一下 Poll SCM, 这个是指,如果配置有变化,就会触发自动配置,里面可以配置检测配置变化的时间策略。
在构件这一步,选择 invoke top-level maven targets
然后进行Maven工程具体的配置
然后点save,就可以保存构建一个任务的基本信息了。
保存后,可以手工进行构建动作看是否能正常工作,如果可以正常工作,以后就靠定时机制进行自动构建了。
万事开头难,手工构建就报错,通过查看日志,可以发现创建mkdir 错误,这个就涉及到前面说的jenkins 默认用户是用jenkins用户安装和执行的。下图显示了如何手工构建和构建日志如何查
通过分析,很明显是因为jenkins用户没有权限,所以需要修改jenkins启动的用户,本例采用设置启动用户为root的方式:这个设置文件的全路径在 /etc/sysconfig/jenkins, 修改JENKINS_UESR="root" 来进行控制启动jenkins
保存后,执行下列命令
service jenkins restart
通过重启后,继续构建,每次错误,都是查看日志,一个办法,就是可以手工将构件的内容,在命令行环境下再执行一下。
我这里还遇到过pom.xml 文件错误的问题
这个是通过修改pom.xml 来完成的,具体pom.xml 为
[root@cwqsolo cwq_testproject1]# cat pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.newland</groupId>
<artifactId>StudyKafkaMavenTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>kafka-demo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.8.2.0</version>
</dependency>
</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
</build>
</project>
最后,构件成功,状态红色会改变,日志看也提示成功
五、小结
通过构建任务开始,只是jenkins很小的一个功能起步,后面还会持续集成各种插件,来丰富jenkins的平台
1、网络的通畅很重要
2、权限的控制
3、不同版本的界面是有差异的
六、补充:
1、修改jenkins的端口
jenkins的默认端口为8080,这个端口在多应用环境下,很不合适,因此需要修改。
jenkins的配置文件为/etc/sysconfig/jenkins, 找到JENKINS_PORT="8080" 将端口修改成自己的端口。端口不要配置为1000以下,否则需要更高的权限。 重启后,进入jenkins 会报告 反向代理错误,只要进入“系统设置”,修改url ,就可以解决反向代理错误的问题
2、jenkins 反应比较慢
jenkins 安装了findbugs和checkstyle后,反应很慢,因此需要修改一下jenkins参数:
vi /etc/sysconfig/jenkins
找到JENKINS_JAVA_OPTIONS="-Djava.awt.headless"
修改成
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m"
具体参数根据自己的机器实际情况调整。
更多推荐
所有评论(0)