jenkins介绍:
-
它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预,有利于减少重复过程以节省时间、费用和工作量;
-
它需要有专门的集成服务器来执行集成构建;
-
它需要有代码托管工具支持,比如SVN;
-
官网地址地址:https://jenkins.io
-
Jenkins的主要目标是监控软件开发流程,快速显示问题;
-
jenkins持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,所以它有利于减少重复过程以节省时间、费用和工作量。
jenkins安装、配置、部署
1.准备安装JDK1.8
2.准备安装tomcat,并设置相应的环境变量,将下载好的jenkins.war放到tomcat目录下webapps下
3.安装apache maven
(1)解压maven的tar包
tar - xvf apache-maven-3.5.4-bin.tar.gz
(2)设置环境变量:vi /etc/profile,在最后添加:
export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.4 #maven的安装目录
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
(3)source /etc/profile 使得配置立即生效
4.关闭防火墙
#centos7
systemctl stop firewalld.service
5.启动tomcat,访问http://192.168.220.100:8080/,进行jenkins引导初始化: 第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机的按照口令。注意控制台输出的口令,复制下来,然后在浏览器输入密码:
进入用户自定义插件界面,建议选择安装官方推荐插件,因为安装后自己也得安装:
插件一次可能不会完全安装成功,可以点击Retry再次安装。直到全部安装成功
等待一段时间之后,插件安装完成,配置用户名密码:(我配置的用户名和密码为:hezh,888888)
6.配置全局变量:
系统管理 > 全局工具配置:
JDK:
MAVEN:
7.配置 SSH免登陆
ssh的配置可使用密钥,也可以使用密码,这里我们使用密钥来配置,在配置之前先配置好jenkins服务器和应用服务器的密钥认证 jenkins服务器上生成密钥对,使用ssh-keygen -t rsa命令
输入下面命令 一直回车,一个矩形图形出现就说明成功,在~/.ssh/下会有私钥id_rsa和公钥id_rsa.pub
ssh-keygen -t rsa
ssh-copy-id -i id_rsa.pub 192.168.220.101
chmod 644 authorized_keys
在应用服务器上重启ssh服务,service sshd restart现在jenkins服务器可免密码直接登陆应用服务器
8.Push SSH(项目采用插件进行war包部署和服务启动,因此可不进行此项配置)
系统管理 > 系统设置
选择 Publish over SSH
Passphrase 不用设置 Path to key 写上生成的ssh路径:/root/.ssh/id_rsa
下面的SSH Servers是重点
Name 随意起名代表这个服务,待会要根据它来选择 Hostname 配置应用服务器的地址 Username 配置linux登陆用户名 Remote Directory 不填
9.部署项目
每晚11:00整定时构建:
此处在构建时出现问题:显示找不到pom.xml文件,先将root pom改为pom.xml,执行一次构建,然后再加上CAD_Parent/,再执行构建,就会成功。
此处注意:若该项目模块不是一个单独的项目,pom.xml路径应该加上父项目路径,进行所有依赖的构建
-P89:选择pom,xml中配置的89环境,使用89服务器数据库
注意:jenkins的工作空间为:cd /root/.jenkins/workspace/192.168.220.100_SCM/,192.168.220.100_SCM为job名称
此处deploy war to a container中war/ear files路径应该填填:SCM_Server/target/*.war,如果填**/*.war,会出现一些莫名的错误,如:tomcat启动不起来 (oracle.jdbc.driver.OracleTimeoutPollingThread.run)
containers 中Credentials用户为:tomcat根目录下conf->tomcat-users.xml中添加的manager-script用户(tomcat版本为8):
tomcat url需要填写到端口号,而不仅仅是ip :
此时有可能会出现以下错误:
解决方案:
/webapps/manager/META_INF/context.xml文件,将文件中对访问的来源受限设置注释
注意事项:
1.在进行项目构建之前应该保持tomcat处于运行状态。
2.所有tomcat配置修改后,应该进行重启操作
3.如果遇到“Connection refused”的异常请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档
4.部署期间遇到了tomcat启动失败的问题,日志如下。未能找到解决方案,自己删除了maven project然后重启操作系统,重建对应的maven project,启动居然成功,费解
ADD:
由于我们配置的svn地址是最顶层目录,所以每次都会将目录下的所有文件拉下来,为减少这种冗余,采用指定到具体的module下(默认只会拉module下的文件而不包含module文件夹),然后在此路径下添加local module directory子文件夹,在构建时指定其目录的pom文件