《南昌季季红私有云平台部署实施方案.docx》由会员分享,可在线阅读,更多相关《南昌季季红私有云平台部署实施方案.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 南昌季季红私有云平台部署实施方案文档修订摘要日期修订号描述编写审阅者备注2014-05-09V1.0起草耿晓芳张继辉2014年5月目 录一、 说明3二、全自动部署部分.3三、半自动部署部分.3四、数据导入部分.3五、附录 分解介绍3自动安装操作系统镜像的制作.5遇到手动安装情况的安装环境初始化方法.5自动化安装部分.5APP半自动化部分分解.5app下应用停止和启动命令.8端口一览表.8一、说明Saas平台的部署包含以下几个部分:a、 操作系统安装、内核参数优化、系统工具优化、软件环境安装b、 Postgresql部署部分c、 Mongodb和redis部署部分d、 App部署部分(prog
2、rames、app、com、task、img、mq、nginx)e、 后期的数据导入部分二、全自动部署部分平台镜像为全自动部署镜像(除app部分应用为半自动化)以上部分的安装已经集成到系统镜像中(当前镜像版本的唯一约束是安装的磁盘有效空间必须大于200GB)。镜像名称:CentOS6.5-TzxSaasAuto-V1.iso三、半自动部署部分App其它部分(由于app部分不断有参数更新,所以为半自动化部署)a、 首先从公有云平台(10.88.1.1或10.88.1.2)打包app部署程序,这样保证是最新代码。只要programes、saastom7061_APP1、saastom7061_AP
3、P2、saastom7061_com1、saastom7061_com2、saastom7061_task、saastom7061_task1、saastom7061_task2这几个目录。# tar jcvf saas.tar.bz2 -exclude=log -exclude=logs -exclude=*.log /app/programes saastom7061_APP1 saastom7061_APP2 saastom7061_com1 saastom7061_com2 saastom7061_task*b、将代码拷贝到部署服务器的/tmp目录下并解压。(注意不可覆盖program
4、es下原已存在的imgServer目录,正常解压就不会覆盖) # tar jxvf /tmp/saas.tar.bz2 C /app/C、修改改变ip和端口的脚本/app/install/change.sh,只需要修改如下3项参数(脚本开头)。local_private_ip=10.88.111.111 部署机的内网iplocal_public_ip=1.2.3.4 部署机的公网iplocal_domain= 公网域名修改完后,执行脚本(请勿重复执行)#sh /app/install/change.sh (执行完后,app里面需要修改的内容全部完成,以后修改参数如有变动可以直接修改脚本)直接执
5、行appall start 后所有应用启动!(注意:单机部署直接执行修改后脚本执行即可,多机部署要具体分析模块分布对应修改其它相应变量)四、数据导入部分数据导入比较重要,而且各家不一,采用手动操作方式实际库操作:创建用户postgres=# create role tzxdb login encrypted password tzxdbp2sswd superuser inherit createdb createrole replication;修改密码语句:postgres=#alteruserpostgreswithpasswordnewpassword;再创建表空间postgres=#
6、 create tablespace pgdb owner tzxdb location /data/pgdb; 注意:名字不能用pg_db,带下画线的再创建数据库到表空间postgres=# create database fuhuaxinruidb with owner=tzxdb encoding=UTF8 tablespace=pgdb lc_collate= zh_CN.UTF-8 lc_ctype = zh_CN.UTF-8 connection limit=-1 template template0; comment on database fuhuaxinruidb is 复华
7、新锐; CREATE DATABASE在公有云上导出模板库:导出10.88.6.3 的库_saastemplate_d80$ pg_dump -U postgres _saastemplate_d80 /tmp/mb.sql拷贝xxx.sql在项目服务器上导入$ psql -U postgres -d ytxkdb /data/mb.sql中间库操作1、创建中间库(如果导中间库区10.88.6.1上)postgres=# create database multi_tenancy with owner=postgres encoding=UTF8 tablespace=pgdb lc_coll
8、ate= zh_CN.UTF-8 lc_ctype = zh_CN.UTF-8 connection limit=-1 template template0;#这个表空间可以任意指定2、创建相关表(3个)CREATE TABLE public.multi_account objuid character varying(32) NOT NULL, name character varying(50) DEFAULT NULL:character varying, tenancyid character varying(127) DEFAULT NULL:character varying, p
9、assword character varying(50) DEFAULT NULL:character varying, asrole character varying(255) DEFAULT NULL:character varying, creator character varying(255) DEFAULT NULL:character varying, modifier character varying(255) DEFAULT NULL:character varying, modifydate date, mversion character varying(50) D
10、EFAULT NULL:character varying, default_app_uid character varying(32) DEFAULT NULL:character varying, register_date date, end_date date, isvalid character(1) DEFAULT NULL:bpchar, user_id character varying(255) DEFAULT NULL:character varying, nickname character varying(255) DEFAULT NULL:character vary
11、ing, user_name character varying(255) DEFAULT NULL:character varying, user_email character varying(255) DEFAULT NULL:character varying, gender character(1) DEFAULT NULL:bpchar, province character varying(255) DEFAULT NULL:character varying, city character varying(255) DEFAULT NULL:character varying,
12、 location character varying(255) DEFAULT NULL:character varying, figureurl character varying(255) DEFAULT NULL:character varying, figureurl_1 character varying(255) DEFAULT NULL:character varying, figureurl_2 character varying(255) DEFAULT NULL:character varying, user_description character varying(2
13、000) DEFAULT NULL:character varying, open_site character varying(255) DEFAULT NULL:character varying, restaurantcode character(60), CONSTRAINT multi_account_pkey PRIMARY KEY (objuid)WITH ( OIDS=FALSEALTER TABLE public.multi_account OWNER TO postgres;CREATE TABLE public.multi_datasource objuid charac
14、ter varying(32) NOT NULL, jndiname character varying(255) DEFAULT NULL:character varying, dialect character varying(255) DEFAULT NULL:character varying, l10n character varying(255) DEFAULT NULL:character varying, driver_class character varying(255) DEFAULT NULL:character varying, driver_url characte
15、r varying(255) DEFAULT NULL:character varying, username character varying(255) DEFAULT NULL:character varying, password character varying(255) DEFAULT NULL:character varying, poolsize integer, pooltype integer, otherparas character varying(255) DEFAULT NULL:character varying, isinit integer, applica
16、tionuid character varying(32) DEFAULT NULL:character varying, creator character varying(255) DEFAULT NULL:character varying, creatdate date, modifier character varying(255) DEFAULT NULL:character varying, modifydate date, mversion character varying(50) DEFAULT NULL:character varying, CONSTRAINT mult
17、i_datasource_pkey PRIMARY KEY (objuid)WITH ( OIDS=FALSEALTER TABLE public.multi_datasource OWNER TO postgres;CREATE TABLE public.multi_tenancy id character varying(32) NOT NULL, name character varying(255) DEFAULT NULL:character varying, l10n character varying(255) DEFAULT NULL:character varying, st
18、artdate date, note character varying(10000) DEFAULT NULL:character varying, multi_datasource_uid character varying(32) DEFAULT NULL:character varying, model_datasource_uid character varying(32) DEFAULT NULL:character varying, datasource_host_uid character varying(32) DEFAULT NULL:character varying,
19、city_id character(60), datasource_host_uid_2 character(60), tenancy_datasource_uid character(60), restaurant_id character varying(32), pos_datasource_uid character varying(32) DEFAULT NULL:character varying, CONSTRAINT multi_tenancy_pkey PRIMARY KEY (id)WITH ( OIDS=FALSEALTER TABLE public.multi_tena
20、ncy OWNER TO postgres;3、插入数据(商户初始化)插之前,要修改对应的商户的实际数据,替换即可。如果是私有云,INSERT INTO public.multi_tenancy VALUES (bc433f6640be77be0140dcb0ab530398, shftest, shftest, 2017-05-19, shftest, bc433f664052ca450140757e6ce70398, , , , , , , 0);a、修改商户号函数为自定义的商户号函数,前后必须一致b、修改日志为当前日期c、修改2个id,随便修改(位数不能变)保证和已有的不重复INSERT
21、 INTO public.multi_datasource VALUES (bc433f664052ca450140757e6ce70351, dbjndi, postgresql, postgresql-saas_db, org.postgresql.Driver, jdbc:postgresql:/10.128.100.209:5432/ytxkdb, tzxdb, tzxdbp2sswd, null, null, null, null, null, null, null, null, null, null);a、第一个串好像和上个语句的第二个串相同b、修改ip为数据库机器ipc、修改数据
22、库名字,为已创建的正式库4、创建tenancy_id(即商户号函数)CREATE OR REPLACE FUNCTION tenancy_id() RETURNS text AS $BEGIN RETURN shftest;END;$ LANGUAGE plpgsql;a、这个商户号函数要修改和上面一致5、修改tenancy_id(即商户号函数)、在实际数据库里面执行,而非在中间库执行。update scm_print_set set tenancy_id = tenancy_id() ;update sys_baseinfo_code_rule set tenancy_id = tenanc
23、y_id();update sys_bill_code_rule set tenancy_id = tenancy_id();update sys_dictionary set tenancy_id = tenancy_id();update sys_encoding_scheme set tenancy_id = tenancy_id();update sys_parameter set tenancy_id = tenancy_id();update sys_parameter_detail set tenancy_id = tenancy_id();update sys_regional
24、ism set tenancy_id = tenancy_id();update crm_adjustaccounts_reason set tenancy_id = tenancy_id();update crm_group set tenancy_id = tenancy_id();update crm_operate_type set tenancy_id = tenancy_id();update crm_level set tenancy_id = tenancy_id();update duty_order set tenancy_id = tenancy_id();update
25、hq_inout_type set tenancy_id = tenancy_id();update hq_service_fee_type set tenancy_id = tenancy_id();update hq_unusual_reason set tenancy_id = tenancy_id();update item_taste set tenancy_id = tenancy_id();update payment_way set tenancy_id = tenancy_id();update sys_code_values set tenancy_id = tenancy
26、_id();update crm_info_business set tenancy_id = tenancy_id();update scm_ordering_cycle_type set tenancy_id = tenancy_id();update scm_supply_class set tenancy_id = tenancy_id();update sys_model_function set tenancy_id = tenancy_id();update user_authority set tenancy_id = tenancy_id(); (到此部署完成)如果重新导入其
27、他库导致,用户初始化密码后仍然登录不了加一条update user_authority set tenancy_id = tenancy_id();update user_authority_roles set tenancy_id = tenancy_id();update user_discount_authority set tenancy_id = tenancy_id();update user_discount_case set tenancy_id = tenancy_id(); 附录 分解介绍= 自动安装操作系统镜像的制作 =第一:iso自定义镜像的制作想让其达到预期目的是一个
28、反复修改测试和完善的繁琐过程。基本制作方法参考第二:这里给出本案关键性文件ks.cfg在Ks文件参数的引导下,镜像主要做了如下工作按照预先选择的软件包安装系统设置了分区和其他安装参数优化了内核参数和系统环境工具等从镜像中拷贝了应用包和脚本程序等到操作系统定义了安装完后的操作系统重启后执行平台的安装依靠install-saas.sh= 遇到手动安装情况的安装环境初始化方法 =Saas、sif、rif平台,通用软件环境初始化:yum -y install gcc readline* zlib* unzip perl gcc-c+ java-1.7* openssl-devel pcre-devel
29、 zlib-devel openssl-devel pcre-devel zlib-devel openssh* openssl* ntpdate compat-libstdc+-* libstdc+.so.5 libaio.so.1 libaio-0.3.107-10.el6* wget at telnet lrzsz iptraf vim执行init_arg.sh,实现内核参数和系统工具优化:= 自动化安装部分 =自动化安装部分依靠脚本install-saas.sh来完成执行了预先打包好的postgresql、mongodb、redis、nginx、app中的img和tzxmq等一系列操作
30、。= APP半自动化部分分解 =半自动化依靠脚本change.sh来完成一、APP需要修改的细节第一类:修改如下文件:# grep -n -a Url -r /app/programes/| awk -F: print $1 /app/programes/com2/config/systemParam.properties/app/programes/com/config/systemParam.properties/app/programes/taskmain/config/systemParam.properties/app/programes/app/config/systemParam
31、.properties/app/programes/taskprocess/config/systemParam.properties修改内容:Url=tcp:/10.88.111.111:6666 此ip修改为MQ地址ttsvr=tcp:/1.2.3.4:1884 此ip修改为公网ip或域名upload_img_ip= 此ip修改为公网ip或域名(客户端调用图片服务器地址)第二类修改如下文件:# grep -n -a mongo.host= -r /app/programes|grep -v xml|awk -F: print $1/app/programes/com2/WEB-INF/cl
32、asses/mongo.properties/app/programes/com/WEB-INF/classes/mongo.properties/app/programes/taskmain/WEB-INF/classes/mongo.properties/app/programes/app/WEB-INF/classes/mongo.properties/app/programes/taskprocess/WEB-INF/classes/mongo.properties修改内容:mongo.host=10.88.111.111 此ip要修改为mogodb数据库所在的ip第三类修改如下文件:
33、# grep -n -a redis.ip -r /app/programes/|awk -F: print $1/app/programes/com2/WEB-INF/classes/redis.properties/app/programes/com/WEB-INF/classes/redis.properties/app/programes/taskmain/WEB-INF/classes/redis.properties/app/programes/app/WEB-INF/classes/redis.properties/app/programes/taskprocess/WEB-IN
34、F/classes/redis.properties修改内容:redis.ip=10.88.111.111omredis.ip=10.88.111.111redis.port=6379omredis.port=6379这2个地方要修改为redis机器所在的ip;端口是redis服务的端口。第四类修改如下文件:# vi /app/programes/imgServer/config/systemParam.properties修改内容如下:imgServerType=1imgServer=1.2.3.4imgServerType如果值是0,表示启用当前目录下的配置文件,即/app/program
35、es/imgServer/config/fdfs_client.conf;说通俗一点,就是启用FastDFS,存储目录下的图片!如果值是1,表示不启用FastDFS, 当前目录下的配置文件fdfs_client.conf也就失效,而图片则永远存储在/app/programes/imgServer/目录下! 则定义了图片存储的目录 给用户返回一个可以访问图片的URL路径!imgServer 定义了图片服务器的地址第五类修改如下文件:# find /app -name server.xml/app/saastom7061_task1/conf/server.xml/app/saastom7061_
36、com1/conf/server.xml/app/saastom7061_task/conf/server.xml/app/saastom7061_img1/conf/server.xml/app/saastom7061_com2/conf/server.xml/app/saastom7061_APP1/conf/server.xml/app/saastom7061_task2/conf/server.xml/app/saastom7061_APP2/conf/server.xml修改内容:把里面原来的6999的端口都改为现在redis的端口6379第六类修改如下文件:/app/saastom
37、7061_com1/conf/context.xml /app/saastom7061_task/conf/context.xml /app/saastom7061_com2/conf/context.xml /app/saastom7061_APP1/conf/context.xml /app/saastom7061_task2/conf/context.xml /app/saastom7061_APP2/conf/context.xml/app/saastom7061_task1/conf/context.xml修改内容:url=jdbc:postgresql:/10.88.111.111
38、:5432/multi_tenancy把这行连接postgresql数据库的ip改为现在的postgresql库所在的机器ip第七类/app/programes/app/config/systemParam.properties微信这个地址不能改wechat_service_mch_service_ip=- app下应用停止和启动命令 -命令的脚本在/app/bin/ 下,并且软连接到了/usr/bin/下,所以可以直接执行app1 app2 appall com1 com2 img1 task task1 task2 tzxmq每个脚本执行有三种格式: $command start|stop|restart其中appall 集中了全部的app下应用和MQ的启停,执行方法同上。- 端口一览表 -Tzxmq 6666(传输端口,门店连接) 8889(管理登陆端口)App1 8015 8081 1301App2 8016 8082 1302Com1 9601 9001 1401Com2 9602 9002 1402Task 8801 8101 1201Task1 8802 8102 1202Task2 8803 8103 1203Img 8821 8888 1101= 2014/05/09 =