1、Jenkins部署与项目自动部署Jenkins安装与项目部署发布说明2015/08/13update 2017/09026本篇的系统环境为Linux1. 软件准备本文中连接linux服务器的工具为SecureCRT。(其它工具类似)准备好以下文件: jdk-7u79-linux-x64.tar.gzapache-maven-3.3.3-bin.tar.gzjenkins-1.623-1.1.noarch.rpm 使用root用户登录linux,切换到usr目录(也可以自定义目录),将准备好的文件上传到服务器上。(本文件之后的内容中,如无特殊说明,都是在root用户下执行操作。) 命令如下:cd
2、 /usr切换到usr目录rz(上传的路径为执行该命令时所在的目录)ll 查看文件2. JDK、MAVEN安装与环境变量配置解压maven和jdk到usr目录下,然后打开etc目录下profile文件,配置环境变量。命令如下: tar apache-maven-3.3.3-bin.tar.gz tar jdk-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
3、/tools.jar M2_HOME=/usr/apache-maven-3.3.3 PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin export JAVA_HOME CLASSPATH M2_HOME PATH 推出编辑 :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端口是8
4、009,与tomcat的相同。我们可以进入Jenkins的配置文件修改端口号: vi /etc/sysconfig/Jenkins找到JENKINS_PORT=8080和JENKINS_AJP_PORT=8009进行修改。然后就尝试启动Jenkins服务: service jenkins start如果提示:Starting Jenkins 确定这表示启动成功,可以通过http:/ip:8080进行访问了。如果提示:Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录 确定 或者 Starting Jenkins Jenkins requires Ja
5、va7 or later, but you are running 1.6.0_35-b35 from /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.35.x86_64/jrejava.lang.UnsupportedClassVersionError: 50.0 at Main.main(Main.java:90) 确定表示Jenkins找不到可执行的java环境,需要再次进入到配置文件中,找到JENKINS_JAVA_CMD配置项,把java路径配置进去,此处为JENKINS_JAVA_CMD=”/usr/java/jdk1.7.0_79/bin/java”,
6、注意bin目录后要加/java。保存文件退出,重新启动服务,可以成功启动。通过http:/ip:8080进行访问。3.2. 配置通过浏览器访问Jenkins页面,点击系统管理-系统设置,打开系统设置界面。点击主目录的高级按钮,可以自定义Jenkins从svn下载源码的位置,构建项目的位置向下滚动页面,找到jdk,点击新增jdk按钮,不勾选自动安装,手动填写JAVA_HOME(系统中的JAVA_HOME)。找到maven,点击新增maven按钮,不勾选自动安装,手动填写MAVEN_HOME。找到邮件通知,点击高级按钮,勾选使用smtp认证,填写用户名密码。设置好后,可以勾选通过发送测试邮件测试配
7、置,查看配置是否正确。其他选项使用默认配置,不要更改。最后点击保存按钮。4. 创建Jenkins用户4.1. 创建用户useradd jenkins如果不手动创建,在安装Jenkins时,默认会自动创建该用户,那么久可能遇到下面这个问题。如果Jenkins所在服务器与web服务器不是同一台,那么在构建部署项目时,需要编写项目部署命令(如拷贝项目、停用服务、启用服务等),通过ssh执行。此时Jenkins会默认以jenkins这个用户登录web服务器进行命令操作。所以我们需要切换到jenkins这个用户,配置用户免密码登录,如果是自动创建的用户,则可能会切换不了,因此需要手动创建该用户。4.2.
8、 配置免密码登录web服务器。切换用户: su - jenkins执行如下命令,生成本机的公钥和私钥文件,这过程中会有提示选择,全部回车默认就可以了: ssh-keygen -t rsa命令执行后,目录/.ssh(当前用户目录下)下会出现两个文件:id_rsa和id_rsa.pub。其中,id_rsa.pub为公钥文件。将该文件的内容追加到web服务器上/.ssh目录下的authorized_keys文件中。首先将该文件拷贝到web服务器上: scp /.ssh/id_rsa.pub root192.168.3.185:/tmp/id_rsa_Jenkins.pub 用root用户登录web服
9、务器,切换到/.ssh目录下,将id_rsa_HOSTA.pub的内容追加到authorized_keys文件中: cat /tmp/id_rsa_Jenkins.pub /.ssh/authorized_keys chmod 600 authorized_keys4.3. 设置Jenkins服务器中jenkins用户下的maven切换到Jenkins用户文件目录下, su - jenkins查看是否有.m2文件夹,如果没有,创建该文件夹,并创建settings.xml文件,修改其中的配置(也可以从其他地方复制过来): cd ll -a mkdir .m2 touch settings.xml
10、(创建文件) cp /usr/settings.xml /home/jenkins/.m2(从其他地方复制)5. 配置项目自动部署5.1. 执行上一章节中【配置免密码登录web服务器】。5.2. 新建点击新建按钮,填写item名称,选择构建一个maven项目点击OK5.3. 源码管理选择Subversion,填写项目的svn路径第一次录入svn地址时,会出现该错误,点击enter credential,填写svn的用户名密码就可以了。5.4. 构建触发器表达式是5位,分别表示分(0-59)、时(0-23)、天(1-31)、月(1-2)、星期(0-7,0和7都表示周日)。基本上与cron表达式一
11、致。特别的H/n,表示每多长时间。5.5. PreSteps执行步骤无特殊需求,则不需要填写。5.6. Build(部分配置项是jenkins2.0以后的)填写maven命令如果需要特殊配置,例如指定自定义的maven的settings.xml地址等,则点击高级选项5.7. PostSteps执行步骤这一步是自动部署的重点,在这里增加Execute shell(Windows就是batch command)。选择 Run only if build succeeds,填写执行的命令。tomcathome=/u01/tomcat/apache-tomcat-7.0.69_SOPip=192.16
12、8.3.74ssh root$ip cd $tomcathomessh root$ip rm -rf /webapps/sop*scp $WORKSPACE/target/sop.war root$ip:$tomcathome/webapps/sleep 10ssh root$ip mv $tomcathome/webapps/sop/WEB-INF/classes/config.properties.test $tomcathome/webapps/sop/WEB-INF/classes/config.propertiesssh root$ip $tomcathome/bin/shutdow
13、n.shssh root$ip $tomcathome/bin/startup.sh5.8. 构建设置默认是构建失败通知勾线邮件通知,填写接收邮件即可。5.9. 构建后操作(部分配置项是jenkins2.0以后的)如果项目构建并自动部署成功后,想要邮件通知测试人员,那么需要在这里配置。点击最下边的advanced settings点击Triggers,选择success,然后在配置如下5.10. 保存。6. 常见问题及注意事项1. 执行远程命令时,报错Host key verification failed.(Linux下)这说明jenkins服务器无法免密码登录web服务器执行命令。需要按照
14、那一章节,再重新执行一下。2. 通过远程命令启动tomcat,报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined原因:因为启动tomcat会调用tomcat安装文件中的startup.sh,而它调用了catalina.sh则调用了setclasspath.sh。因此需要在setclasspath.sh的开头手动声明环境变量。(windows相同)解决方案:用vim打开tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和JRE_HOME两个环境变量(下图红色方框内),两个环境变量路径为您安装的java JDK的路径。windows下将export改为set即可。保存退出3. 通过Jenkins自动打包项目,需要项目的pom中build节点的配置要符合标准,否则可能出现配置文件无法发布的问题。4. 自动部署项目时,需要执行tomcat的startup.sh命令,除此之外可以将tomcat注册为服务,下面是将tomcat7注册为服务,在/etc/init.d路径下创建tomcat7文件,文件名称就是服务名称:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1