@kevinZheng
2018-03-29T07:10:17.000000Z
字数 4221
阅读 1968
印吧
印刷设计平台
部署文档
印刷设计平台环境部署分一下几个方面进行介绍说明
印吧网站平台全部使用的是阿里云服务器,windows操作系统,可以通过远程连接进行管理
服务器 | IP | 部署内容 | 阿里云账号密码 |
---|---|---|---|
设计平台 | 120.27.122.187 | 全部web应用,中间件,数据库 | hntfsyyxgs@163.com |
印刷平台 | 115.28.90.208 | 印刷平台数据库,上传文件存储 | laoxiao312090 |
域名解析配置在 https://www.dnspod.cn/console/dns ,目前管理员是591176192@qq.com
目前的A类解析有:
115.28.90.208 admin.yin8.net
115.28.90.208 bug.yin8.net
115.28.90.208 dhzn.yin8.net
120.27.122.187 diy.yin8.net
115.28.90.208 dy.yin8.net
171.8.252.235 erp.yin8.net
120.27.122.187 jenkins.yin8.net
115.28.90.208 m.yin8.net
120.27.122.187 manager.yin8.net
120.27.122.187 pls.yin8.net
120.27.122.187 sj.yin8.net
120.27.122.187 sjs.yin8.net
120.27.122.187 sso.yin8.net
45.62.125.225 vvv.yin8.net
115.28.90.208 www.yin8.net
115.28.90.208 wx.yin8.net
115.28.90.208 yyjy.yin8.net
两个平台使用的数据库都是SQLserver2008
数据库名称:
数据库管理使用远程连接方式.印刷平台应用程序访问数据库是使用了域名print.yin8db.net
, 此域名并不存在,只是为了不在代码中写死局域网IP地址,该域名目前是在hosts文件中配置指向印刷平台服务器(115.28.90.208)的局域网IP,程序中访问数据库密码都在代码pom.xml中,可以通过profile切换开发环境和线上环境
平台中用到的中间件有:
平台上web服务均是java 开发的,部署在tomcat容器中,187服务器上的 D:\java-runtime\tomcat_service
目录就是存放web应用的位置,tomcat和应用是分离的,应用通过脚本指定tomcat和应用位置启动,例如sj网站启动脚本:
rem 启动...
set TOMCATE_TITLE=8081_sj设计平台
set CATALINA_BASE=%cd%\8081_sj
set CATALINA_HOME=%cd%\Tomcat6
set CATALINA_OPTS=-server -Xms1024m -Xmx1024m
call %cd%\Tomcat6\bin\startup.bat
平台上的应用较多,业务调用比较复杂,所以使用dubbo进行跨应用业务调用,使用zookeeper作为注册中心,平台其他应用启动之前需要先启动zookeepe 软件和dubbo-services 脚本
dubbo 客户端配置示例:
<dubbo:application name="yin8-main" owner="lanseba"/>
<dubbo:registry protocol="zookeeper" address="${deploy.zookeeper.address}" />
<!--host 参数给远程本地环境调试用,正式上线统一去掉 -->
<dubbo:protocol name="dubbo" port="-1"/>
<dubbo:annotation package="net.yin8"/>
<!--账户信息-->
<dubbo:reference timeout="3000" id="printAccounService" interface="net.yin8.print.service.PrintAccounService" check="false"/>
<!--印刷产品服务-->
<dubbo:reference timeout="3000" id="printProductService" interface="net.yin8.print.service.PrintProductService" check="false"/>
接口声明是在 reference 指定的,暴露接口服务是在注解中实现的,annotation指定了扫描的包信息.
应用启动脚本名称说明
业务系统名称 | 启动脚本 | 端口 | 应用发布路径 |
---|---|---|---|
设计平台 | 8081_sj.bat | 8081 | 8081_sj |
印刷平台 | 8083_3w.bat | 8083 | 8083_3w |
设计师平台 | 8084_sjs.bat | 8084 | 8084_sjs |
单点登录系统 | 8086_sso.bat | 8086 | 8086_sso |
设计管理后台 | 8087_manager.bat | 8087 | 8087_manager |
印刷管理后台 | 8089_admin.bat | 8089 | 8089_admin |
拼版服务 | 9090_pls.bat | 9090 | 9090_pls |
diy服务 | 8088_diy.bat | 8088 | 8088_diy |
启动脚本代码示例:
rem 启动...
set TOMCATE_TITLE=8081_sj设计平台
set CATALINA_BASE=%cd%\8081_sj
set CATALINA_HOME=%cd%\Tomcat6
set CATALINA_OPTS=-server -Xms1024m -Xmx1024m
call %cd%\Tomcat6\bin\startup.bat
Jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。Jenkins其实就是大的框架集,可实现公司的整个持续集成体系!如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试各种你能想到的,和不能想到的. 自动化运维用到的知识点有:
jenkins 和maven安装很简单,从网上下载最新版本然后解压运行即可,git 管理代码版本网上也有教材也不赘述。jenkins利用插件功能安装maven插件或更新最新并设置本地maven目录即可。大概说一下jenkins 工作流程,jenkins可以设置为主动构建或被动构建,主动的话可以按照设定的cron规则定时到git远程仓库fetch代码如果有更新就触发构建,或者被动就是设置webhook,代码管理工具(github 、coding 或 gitee 等git服务平台)根据合并代码或者推送代码等事件触发webhook来触发jenkins构建,或者就是手动点击构建功能。jenkins最小构建单位是job ,一个复杂的构建过程可以通过多个job来定义,可以串行执行,job 设置为依赖其他job 执行结果来触发。比如发布任务和maven构建任务是分开的两个job,都可以分开手动执行 也可以构建成功自动触发发布任务。jenkins配置maven 项目也可以支持包发布,208测试服务器上配置的有nexus服务可以将包发布到nexus服务上这样基础依赖都可以不用在本地构建直接从208服务器maven.yin8.net 上下载,正式服务器上没有配置。jenkins支持bat命令所以想做自动化运维任何事都可以,相当灵活。一下面的发布命令为例:
set BUILD_ID=dontKillMe
set tomcat_base=D:\java-runtime\tomcat_service
set backup_base=d:\zheng\backup
set deploy_base=D:\zheng\jenkins-home\jobs\yin8-dev\workspace\
set TOMCATE_TITLE=8081_sj
set CATALINA_HOME=%tomcat_base%\Tomcat6
set CATALINA_BASE=%tomcat_base%\8081_sj
::准备工作创建目录
md %backup_base%\%BUILD_NUMBER%\sj\
::先备份
xcopy /e /y %tomcat_base%\8081_sj\webapps\ROOT %backup_base%\%BUILD_NUMBER%\sj
::接着停掉应用
wmic process where (CommandLine LIKE "%%8081_sj%%") call terminate
::然后发布
rd /s/q %tomcat_base%\8081_sj\webapps\ROOT
md %tomcat_base%\8081_sj\webapps\ROOT
xcopy /e /y %deploy_base%\yin8-main-web\target\yin8-main-web %tomcat_base%\8081_sj\webapps\ROOT
::最后启动应用
call %tomcat_base%\Tomcat6\bin\catalina.bat start -Dyin8.8081_sj.web=true
wmic process where (CommandLine LIKE "%%8081_sj%%") call terminate 这句代码的意思就是 查找进程(process)中 命令行(commandline )包含 8081_sj 的进程,找到之后 停掉 (terminate),发布job 主要做的工作就四条:
jenkins DOA job中使用了httpRequest组件来检测服务器http状态,发现异常会发送微信通知。微信通知插件,可以将构建结果发送到手机具体配置参考插件说明