@kevinZheng
2018-03-29T07:10:17.000000Z
字数 4221
阅读 2099
印吧 印刷设计平台 部署文档
印刷设计平台环境部署分一下几个方面进行介绍说明
印吧网站平台全部使用的是阿里云服务器,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.net115.28.90.208 bug.yin8.net115.28.90.208 dhzn.yin8.net120.27.122.187 diy.yin8.net115.28.90.208 dy.yin8.net171.8.252.235 erp.yin8.net120.27.122.187 jenkins.yin8.net115.28.90.208 m.yin8.net120.27.122.187 manager.yin8.net120.27.122.187 pls.yin8.net120.27.122.187 sj.yin8.net120.27.122.187 sjs.yin8.net120.27.122.187 sso.yin8.net45.62.125.225 vvv.yin8.net115.28.90.208 www.yin8.net115.28.90.208 wx.yin8.net115.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状态,发现异常会发送微信通知。微信通知插件,可以将构建结果发送到手机具体配置参考插件说明