title: jenkins自动化构建部署到多个服务器
date: 2019-05-12 15:12:42
categories:
- 工具
tags: - jenkins
jenkins下载与安装
jenkins
是一款持续集成的软件,最开始想用这个软件进行项目的自动化构建部署,是由实验室的项目有三个版本,本地需要一套,测试要一套,交付维护需要一套,每次修改了代码后,都需要打成war
包,然后通过一些ftp
工具传过去,这样一次还好,次数多了就受不了了,所以就花了一天,学习了下jenkins
,以后就方便多了。
引言与建议
如果要先集群服务器部署,不免每台有些配置信息不一样,比如数据库连接、rest
接口、检索地址、文件服务器地址等,此时最好,将配置文件从jar
包里抽取出来,放置在一个固定的目录下,且命名都相同,比如,我是使用/usr/test.properties
等。然后写代码读取、或者直接Spring
读取就行。
Spring
读取外部文件的配置。
<bean id="ConfigurerProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="location" value="file:/usr/resources.properties"/>
</bean>
下载地址
安装
下载安装好后,找到jenkins
的war
包jenkins.war
,因为它是自带Jetty
服务器的,所以直接命令运行就行。
java -jar jenkins.war
windows下在jenkins目录下打开命令窗口执行就好了。
也可以,把这个war
包放置在一个Web
容器中。
然后,就可以通过http://localhost:8080
访问。
按提示,注册账号,按提示登陆,默认安装插件就OK
。
配置
-
点击左侧的系统管理
-
主要对系统设置、全局工具配置、插件管理来进行配置
-
插件管理
点击可选插件,搜索安装:
Publish Over SSH
用于连接远程服务器。Deploy to container
插件用于把打包的应用发布到远程服务器。 -
全局工具设置
不要使用自动安装
JDK
配置,JAVA_HOME
就是自己的jdk
目录。Maven
配置,MAVEN_HOME
就是自己的Maven
目录。git
,默认就行。 -
系统设置,设置远程服务器
可设置多个节点,点击
add
。
-
构建与部署
配置好后,就可以进行新建任务了。
-
新建任务
-
配置
-
仓库配置
若仓库地址有错,会报错。
-
触发器构建
选择了定时构建和轮询
SCM
,就可以实现我们的自动化构建了。一、定时构建:不管
SVN
或Git
中数据有无变化,均执行定时化的构建任务 ;二、轮询
SCM
:只要SVN
或Git
中数据有更新,则执行构建任务;三、构建语法说明:
- 首先格式为:* * * * *(五个星);
- 第一个表示分钟,取值0~59 第二个表示小时,取值0~23
第三个表示一个月的第几天,取值1~31 第四个表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日 - 使用举例:
每隔10分钟构建一次:H/5 * * * *
每隔1小时构建一次: H H/1 * * *
每月30号构建一次: H H 30 * *
每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38)
H H(9-16)/2 * * 1-5
四、定时构建和轮询
SCM
使用互不冲突,具体如何组合,需要根据项目情况合理配置; -
部署
在构建后操作处添加要部署的远程服务器,我这里添加了两个节点。
Name : 在系统设置里配置的服务器,直接选择就行。
Source files:项目构建后的目录
Remove prefix : 去前缀
Remote directoty : 发布的目录,这个目录是接着你在远程服务器中配置的目录
Exec command : 发布完执行的命令,一般会写个重启Tomcat的脚本,这里是直接执行这个脚本
-
构建部署
点击立即构建测试,点击控制台输出,可以查看日志输出。
以下为三台服务器都部署成功,且成功执行脚本。
restart.sh脚本:
#! /bin/bash export JAVA_HOME=/usr/jdk1.8.0_191 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar tomcat_home=/home/admin/apache-tomcat-8.5.35 SHUTDOWN=$tomcat_home/bin/shutdown.sh STARTTOMCAT=$tomcat_home/bin/startup.sh echo "关闭$tomcat_home" $SHUTDOWN #杀死tomcat进程 ps -ef|grep tomcat|grep -v grep|awk '{print $2}'|xargs kill -9 #删除日志文件,如果你不先删除可以不要下面一行 rm $tomcat_home/logs/* -rf #删除tomcat的临时目录 rm $tomcat_home/work/* -rf sleep 5 echo "启动$tomcat_home" $STARTTOMCAT #看启动日志 #tail -f $tomcat_home/logs/catalina.out
-