Jenkins部署与项目自动部署.docx
《Jenkins部署与项目自动部署.docx》由会员分享,可在线阅读,更多相关《Jenkins部署与项目自动部署.docx(14页珍藏版)》请在冰豆网上搜索。
Jenkins部署与项目自动部署
Jenkins安装与项目部署发布说明
2015/08/13
update2017/09026
本篇的系统环境为Linux
1.软件准备
本文中连接linux服务器的工具为SecureCRT。
(其它工具类似)
准备好以下文件:
jdk-7u79-linux-x64.tar.gz
apache-maven-3.3.3-bin.tar.gz
jenkins-1.623-1.1.noarch.rpm
使用root用户登录linux,切换到usr目录(也可以自定义目录),将准备好的文件上传到服务器上。
(本文件之后的内容中,如无特殊说明,都是在root用户下执行操作。
)
命令如下:
cd/usr切换到usr目录
rz(上传的路径为执行该命令时所在的目录)
ll查看文件
2.JDK、MAVEN安装与环境变量配置
解压maven和jdk到usr目录下,然后打开etc目录下profile文件,配置环境变量。
命令如下:
tarapache-maven-3.3.3-bin.tar.gz
tarjdk-7u79-linux-x64.tar.gz
vi/etc/profile
按’i’键进行编辑,在文件结尾处添加以下文字
JAVA_HOME=/usr/java/jdk1.7.0_79
CLASSPATH=.:
$JAVA_HOME/jre/lib/rt.jar:
$JAVA_HOME/lib/tools.jar
M2_HOME=/usr/apache-maven-3.3.3
PATH=$PATH:
$JAVA_HOME/bin:
$M2_HOME/bin
exportJAVA_HOMECLASSPATHM2_HOMEPATH
推出编辑:
wq保存退出
source/etc/profile(使环境变量生效)
然后,输入java–version和mvn–v测试配置是否有效
3.Jenkins安装与配置
3.1.安装
执行命令安装:
rpm-ivh/usr/jenkins-1.623-1.1.noarch.rpm
安装成功后,Jenkins的默认端口号是8080,AJP端口是8009,与tomcat的相同。
我们可以进入Jenkins的配置文件修改端口号:
vi/etc/sysconfig/Jenkins
找到JENKINS_PORT="8080"和JENKINS_AJP_PORT="8009"进行修改。
然后就尝试启动Jenkins服务:
servicejenkinsstart
如果提示:
StartingJenkins [确定]
这表示启动成功,可以通过http:
//ip:
8080进行访问了。
如果提示:
StartingJenkinsbash:
/usr/bin/java:
没有那个文件或目录[确定]
或者StartingJenkinsJenkinsrequiresJava7orlater,butyouarerunning1.6.0_35-b35from/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.35.x86_64/jre
java.lang.UnsupportedClassVersionError:
50.0
atMain.main(Main.java:
90)[确定]
表示Jenkins找不到可执行的java环境,需要再次进入到配置文件中,找到
JENKINS_JAVA_CMD配置项,把java路径配置进去,此处为
JENKINS_JAVA_CMD=”/usr/java/jdk1.7.0_79/bin/java”,注意bin目录后要加’/java’。
保存文件退出,重新启动服务,可以成功启动。
通过http:
//ip:
8080进行访问。
3.2.配置
通过浏览器访问Jenkins页面,点击[系统管理-系统设置],打开系统设置界面。
点击主目录的高级按钮,可以自定义Jenkins从svn下载源码的位置,构建项目的位置
向下滚动页面,找到jdk,点击新增jdk按钮,不勾选自动安装,手动填写JAVA_HOME(系统中的JAVA_HOME)。
找到maven,点击新增maven按钮,不勾选自动安装,手动填写MAVEN_HOME。
找到邮件通知,点击高级按钮,勾选使用smtp认证,填写用户名密码。
设置好后,可以勾选通过发送测试邮件测试配置,查看配置是否正确。
其他选项使用默认配置,不要更改。
最后点击保存按钮。
4.创建Jenkins用户
4.1.创建用户
useraddjenkins
如果不手动创建,在安装Jenkins时,默认会自动创建该用户,那么久可能遇到下面这个问题。
如果Jenkins所在服务器与web服务器不是同一台,那么在构建部署项目时,需要编写项目部署命令(如拷贝项目、停用服务、启用服务等),通过ssh执行。
此时Jenkins会默认以jenkins这个用户登录web服务器进行命令操作。
所以我们需要切换到jenkins这个用户,配置用户免密码登录,如果是自动创建的用户,则可能会切换不了,因此需要手动创建该用户。
4.2.配置免密码登录web服务器。
切换用户:
su-jenkins
执行如下命令,生成本机的公钥和私钥文件,这过程中会有提示选择,全部回车默认就可以了:
ssh-keygen-trsa
命令执行后,目录~/.ssh(当前用户目录下)下会出现两个文件:
id_rsa和id_rsa.pub。
其中,id_rsa.pub为公钥文件。
将该文件的内容追加到web服务器上~/.ssh目录下的authorized_keys文件中。
首先将该文件拷贝到web服务器上:
scp~/.ssh/id_rsa.pubroot@192.168.3.185:
/tmp/id_rsa_Jenkins.pub
用root用户登录web服务器,切换到~/.ssh目录下,将id_rsa_HOSTA.pub的内容追加到authorized_keys文件中:
cat/tmp/id_rsa_Jenkins.pub>>~/.ssh/authorized_keys
chmod600authorized_keys
4.3.设置Jenkins服务器中jenkins用户下的maven
切换到Jenkins用户文件目录下,
su-jenkins
查看是否有.m2文件夹,如果没有,创建该文件夹,并创建settings.xml文件,修改其中的配置(也可以从其他地方复制过来):
cd~
ll-a
mkdir.m2
touchsettings.xml(创建文件)cp/usr/settings.xml/home/jenkins/.m2(从其他地方复制)
5.配置项目自动部署
5.1.执行上一章节中【配置免密码登录web服务器】。
5.2.新建
点击新建按钮,填写item名称,选择构建一个maven项目
点击OK
5.3.源码管理
选择Subversion,填写项目的svn路径
第一次录入svn地址时,会出现该错误,点击’entercredential’,填写svn的用户名密码就可以了。
5.4.构建触发器
表达式是5位,分别表示分(0-59)、时(0-23)、天(1-31)、月(1-2)、星期(0-7,0和7都表示周日)。
基本上与cron表达式一致。
特别的H/n,表示每多长时间。
5.5.PreSteps执行步骤
无特殊需求,则不需要填写。
5.6.Build(部分配置项是jenkins2.0以后的)
填写maven命令
如果需要特殊配置,例如指定自定义的maven的settings.xml地址等,则点击高级选项
5.7.PostSteps执行步骤
这一步是自动部署的重点,在这里增加Executeshell(Windows就是batchcommand)。
选择’Runonlyifbuildsucceeds’,填写执行的命令。
tomcathome="/u01/tomcat/apache-tomcat-7.0.69_SOP"
ip=192.168.3.74
sshroot@$ip"cd"$tomcathome
sshroot@$ip"rm-rf/webapps/sop*"
scp${WORKSPACE}/target/sop.warroot@$ip:
$tomcathome/webapps/
sleep10
sshroot@$ip"mv"$tomcathome"/webapps/sop/WEB-INF/classes/config.properties.test"$tomcathome"/webapps/sop/WEB-INF/classes/config.properties"
sshroot@$ip$tomcathome"/bin/shutdown.sh"
sshroot@$ip$tomcathome"/bin/startup.sh"
5.8.构建设置
默认是构建失败通知
勾线邮件通知,填写接收邮件即可。
5.9.构建后操作(部分配置项是jenkins2.0以后的)
如果项目构建并自动部署成功后,想要邮件通知测试人员,那么需要在这里配置。
点击最下边的advancedsettings
点击Triggers,选择success,然后在配置如下
5.10.保存。
6.常见问题及注意事项
1.执行远程命令时,报错Hostkeyverificationfailed.(Linux下)
这说明jenkins服务器无法免密码登录web服务器执行命令。
需要按照那一章节,再重新执行一下。
2.通过远程命令启动tomcat,报错:
NeithertheJAVA_HOMEnortheJRE_HOMEenvironmentvariableisdefined
原因:
因为启动tomcat会调用tomcat安装文件中的startup.sh,而它调用了catalina.sh则调用了setclasspath.sh。
因此需要在setclasspath.sh的开头手动声明环境变量。
(windows相同)
解决方案:
用vim打开tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和JRE_HOME两个环境变量(下图红色方框内),两个环境变量路径为您安装的javaJDK的路径。
windows下将export改为set即可。
保存退出
3.通过Jenkins自动打包项目,需要项目的pom中build节点的配置要符合标准,否则可能出现配置文件无法发布的问题。
4.自动部署项目时,需要执行tomcat的startup.sh命令,除此之外可以将tomcat注册为服务,下面是将tomcat7注册为服务,
在/etc/init.d路径下创建tomcat7文件,文件名称就是服务名称: