南昌季季红私有云平台部署实施方案.docx
- 文档编号:26393035
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:17
- 大小:40.42KB
南昌季季红私有云平台部署实施方案.docx
《南昌季季红私有云平台部署实施方案.docx》由会员分享,可在线阅读,更多相关《南昌季季红私有云平台部署实施方案.docx(17页珍藏版)》请在冰豆网上搜索。
南昌季季红私有云平台部署实施方案
南昌季季红私有云平台部署实施方案
文档修订摘要
日期
修订号
描述
编写
审阅者
备注
2014-05-09
V1.0
起草
耿晓芳
张继辉
2014年5月
目录
一、说明……………………………………………………………………………………………………………………………………3
二、全自动部署部分…………………………………………………………………………………………………………..……3
三、半自动部署部分…………………………………………………………………………………………………………..……3
四、数据导入部分…………………………………………………………………………………………………………………….3
五、附录分解介绍…………………………………………………………………………………………………………………3
自动安装操作系统镜像的制作………………………………………………………………………………….………5
遇到手动安装情况的安装环境初始化方法……………………………………………………………….……..5
自动化安装部分…………………………………………………………………………………………………………….…..5
APP半自动化部分分解………………………………………………………………………………………………….…..5
app下应用停止和启动命令………………………………………………………………………………………….……8
端口一览表…………………………………………………………………………………………………………………….…..8
一、说明
Saas平台的部署包含以下几个部分:
a、操作系统安装、内核参数优化、系统工具优化、软件环境安装
b、Postgresql部署部分
c、Mongodb和redis部署部分
d、App部署部分(programes、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_APP2、saastom7061_com1、saastom7061_com2、saastom7061_task、saastom7061_task1、saastom7061_task2这几个目录。
#tarjcvfsaas.tar.bz2--exclude=log--exclude=logs--exclude=*.log/app/programessaastom7061_APP1saastom7061_APP2saastom7061_com1saastom7061_com2saastom7061_task*
b、将代码拷贝到部署服务器的/tmp目录下并解压。
(注意不可覆盖programes下原已存在的imgServer目录,正常解压就不会覆盖)
#tarjxvf/tmp/saas.tar.bz2–C/app/
C、修改改变ip和端口的脚本/app/install/change.sh,只需要修改如下3项参数(脚本开头)。
local_private_ip=10.88.111.111部署机的内网ip
local_public_ip=1.2.3.4部署机的公网ip
local_domain=公网域名
修改完后,执行脚本(请勿重复执行)
#sh/app/install/change.sh(执行完后,app里面需要修改的内容全部完成,以后修改参数如有变动可以直接修改脚本)
直接执行appallstart后所有应用启动!
!
(注意:
单机部署直接执行修改后脚本执行即可,多机部署要具体分析模块分布对应修改其它相应变量)
四、数据导入部分
数据导入比较重要,而且各家不一,采用手动操作方式
实际库操作:
创建用户
postgres=#createroletzxdbloginencryptedpassword'tzxdbp2sswd'superuserinheritcreatedbcreaterolereplication;
修改密码语句:
postgres=#alter user postgres with password 'new password';
再创建表空间
postgres=#createtablespacepgdbownertzxdblocation'/data/pgdb';
注意:
名字不能用pg_db,带下画线的
再创建数据库到表空间
postgres=#createdatabasefuhuaxinruidbwithowner=tzxdbencoding='UTF8'tablespace=pgdblc_collate='zh_CN.UTF-8'lc_ctype='zh_CN.UTF-8'connectionlimit=-1templatetemplate0;commentondatabasefuhuaxinruidbis'复华新锐';
CREATEDATABASE
在公有云上导出模板库:
导出10.88.6.3的库_saastemplate_d80
$pg_dump-Upostgres_saastemplate_d80>/tmp/mb.sql
拷贝xxx.sql在项目服务器上
导入
$psql-Upostgres-dytxkdb
中间库操作
1、创建中间库(如果导中间库区10.88.6.1上)
postgres=#createdatabasemulti_tenancywithowner=postgresencoding='UTF8'tablespace=pgdblc_collate='zh_CN.UTF-8'lc_ctype='zh_CN.UTF-8'connectionlimit=-1templatetemplate0;
#这个表空间可以任意指定
2、创建相关表(3个)
CREATETABLEpublic.multi_account
(
objuidcharactervarying(32)NOTNULL,
namecharactervarying(50)DEFAULTNULL:
:
charactervarying,
tenancyidcharactervarying(127)DEFAULTNULL:
:
charactervarying,
passwordcharactervarying(50)DEFAULTNULL:
:
charactervarying,
asrolecharactervarying(255)DEFAULTNULL:
:
charactervarying,
creatorcharactervarying(255)DEFAULTNULL:
:
charactervarying,
modifiercharactervarying(255)DEFAULTNULL:
:
charactervarying,
modifydatedate,
mversioncharactervarying(50)DEFAULTNULL:
:
charactervarying,
default_app_uidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
register_datedate,
end_datedate,
isvalidcharacter
(1)DEFAULTNULL:
:
bpchar,
user_idcharactervarying(255)DEFAULTNULL:
:
charactervarying,
nicknamecharactervarying(255)DEFAULTNULL:
:
charactervarying,
user_namecharactervarying(255)DEFAULTNULL:
:
charactervarying,
user_emailcharactervarying(255)DEFAULTNULL:
:
charactervarying,
gendercharacter
(1)DEFAULTNULL:
:
bpchar,
provincecharactervarying(255)DEFAULTNULL:
:
charactervarying,
citycharactervarying(255)DEFAULTNULL:
:
charactervarying,
locationcharactervarying(255)DEFAULTNULL:
:
charactervarying,
figureurlcharactervarying(255)DEFAULTNULL:
:
charactervarying,
figureurl_1charactervarying(255)DEFAULTNULL:
:
charactervarying,
figureurl_2charactervarying(255)DEFAULTNULL:
:
charactervarying,
user_descriptioncharactervarying(2000)DEFAULTNULL:
:
charactervarying,
open_sitecharactervarying(255)DEFAULTNULL:
:
charactervarying,
restaurantcodecharacter(60),
CONSTRAINTmulti_account_pkeyPRIMARYKEY(objuid)
)
WITH(
OIDS=FALSE
);
ALTERTABLEpublic.multi_account
OWNERTOpostgres;
CREATETABLEpublic.multi_datasource
(
objuidcharactervarying(32)NOTNULL,
jndinamecharactervarying(255)DEFAULTNULL:
:
charactervarying,
dialectcharactervarying(255)DEFAULTNULL:
:
charactervarying,
l10ncharactervarying(255)DEFAULTNULL:
:
charactervarying,
driver_classcharactervarying(255)DEFAULTNULL:
:
charactervarying,
driver_urlcharactervarying(255)DEFAULTNULL:
:
charactervarying,
usernamecharactervarying(255)DEFAULTNULL:
:
charactervarying,
passwordcharactervarying(255)DEFAULTNULL:
:
charactervarying,
poolsizeinteger,
pooltypeinteger,
otherparascharactervarying(255)DEFAULTNULL:
:
charactervarying,
isinitinteger,
applicationuidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
creatorcharactervarying(255)DEFAULTNULL:
:
charactervarying,
creatdatedate,
modifiercharactervarying(255)DEFAULTNULL:
:
charactervarying,
modifydatedate,
mversioncharactervarying(50)DEFAULTNULL:
:
charactervarying,
CONSTRAINTmulti_datasource_pkeyPRIMARYKEY(objuid)
)
WITH(
OIDS=FALSE
);
ALTERTABLEpublic.multi_datasource
OWNERTOpostgres;
CREATETABLEpublic.multi_tenancy
(
idcharactervarying(32)NOTNULL,
namecharactervarying(255)DEFAULTNULL:
:
charactervarying,
l10ncharactervarying(255)DEFAULTNULL:
:
charactervarying,
startdatedate,
notecharactervarying(10000)DEFAULTNULL:
:
charactervarying,
multi_datasource_uidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
model_datasource_uidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
datasource_host_uidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
city_idcharacter(60),
datasource_host_uid_2character(60),
tenancy_datasource_uidcharacter(60),
restaurant_idcharactervarying(32),
pos_datasource_uidcharactervarying(32)DEFAULTNULL:
:
charactervarying,
CONSTRAINTmulti_tenancy_pkeyPRIMARYKEY(id)
)
WITH(
OIDS=FALSE
);
ALTERTABLEpublic.multi_tenancy
OWNERTOpostgres;
3、插入数据(商户初始化)
插之前,要修改对应的商户的实际数据,替换即可。
如果是私有云,
INSERTINTO"public"."multi_tenancy"VALUES('bc433f6640be77be0140dcb0ab530398','shftest','shftest','2017-05-19','shftest',
'bc433f664052ca450140757e6ce70398','','','','
','','','0');
a、修改商户号函数为自定义的商户号函数,前后必须一致
b、修改日志为当前日期
c、修改2个id,随便修改(位数不能变)保证和已有的不重复
INSERTINTO"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为数据库机器ip
c、修改数据库名字,为已创建的正式库
4、创建tenancy_id(即商户号函数)
CREATEORREPLACEFUNCTIONtenancy_id()RETURNStextAS$$
BEGIN
RETURN'shftest';
END;
$$LANGUAGEplpgsql;
a、这个商户号函数要修改和上面一致
5、修改tenancy_id(即商户号函数)、在实际数据库里面执行,而非在中间库执行。
updatescm_print_setsettenancy_id=tenancy_id();
updatesys_baseinfo_code_rulesettenancy_id=tenancy_id();
updatesys_bill_code_rulesettenancy_id=tenancy_id();
updatesys_dictionarysettenancy_id=tenancy_id();
updatesys_encoding_schemesettenancy_id=tenancy_id();
updatesys_parametersettenancy_id=tenancy_id();
updatesys_parameter_detailsettenancy_id=tenancy_id();
updatesys_regionalismsettenancy_id=tenancy_id();
updatecrm_adjustaccounts_reasonsettenancy_id=tenancy_id();
updatecrm_groupsettenancy_id=tenancy_id();
updatecrm_operate_typesettenancy_id=tenancy_id();
updatecrm_levelsettenancy_id=tenancy_id();
updateduty_ordersettenancy_id=tenancy_id();
updatehq_inout_typesettenancy_id=tenancy_id();
updatehq_service_fee_typesettenancy_id=tenancy_id();
updatehq_unusual_reasonsettenancy_id=tenancy_id();
updateitem_tastesettenancy_id=tenancy_id();
updatepayment_waysettenancy_id=tenancy_id();
updatesys_code_valuessettenancy_id=tenancy_id();
updatecrm_info_businesssettenancy_id=tenancy_id();
updatescm_ordering_cycle_typesettenancy_id=tenancy_id();
updatescm_supply_classsettenancy_id=tenancy_id();
updatesys_model_functionsettenancy_id=tenancy_id();
updateuser_authoritysettenancy_id=tenancy_id();
(到此部署完成)
如果重新导入其他库导致,用户初始化密码后仍然登录不了加一条
updateuser_authoritysettenancy_id=tenancy_id();
updateuser_authority_rolessettenancy_id=tenancy_id();
updateuser_discount_authoritysettenancy_id=tenancy_id();
updateuser_discount_casesettenancy_id=tenancy_id();
###############################################################################
附录分解介绍
###############################################################################
=======================自动安装操作系统镜像的制作=========================
第一:
iso自定义镜像的制作想让其达到预期目的是一个反复修改测试和完善的繁琐过程。
基本制作方法参考
第二:
这里给出本案关键性文件ks.cfg
在Ks文件参数的引导下,镜像主要做了如下工作
按照预先选择的软件包安装系统
设置了分区和其他安装参数
优化了内核参数和系统环境工具等
从镜像中拷贝了应用包和脚本程序等到操作系统
定义了安装完后的操作系统重启后执行平台的安装依靠install-saas.sh
=====================遇到手动安装情况的安装环境初始化方法==================
Saas、sif、rif平台,通用软件环境初始化:
yum-yinstallgccreadline*zlib*unzipperlgcc-c++java-1.7*openssl-develpcre-develzlib-developenssl-develpcre-develzlib-developenssh*openssl*ntpdatecompat-libstdc++-*libstdc++.so.5libaio.so.1libaio-0.3.107-10.el6*wgetattelnetlrzsziptrafvim
执行init_arg.sh,实现内核参数和系统工具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌 季季 私有 平台 部署 实施方案
![提示](https://static.bdocx.com/images/bang_tan.gif)