SaltStack room\_service模块
======

简介
------
room\_service模块主要完成对c++组件的配置管理
包括

1. c++组件的目录部署
2. c++组件的配置管理
3. 可以利用该模块对指定组件进行更新

## 模块目录结构
systembase的目录结构

* pillar目录下
	```bash
	pillar/
	├── prod
	│   ├── room_service.sls
	└── top.sls
	```

* salt目录下
	```bash
	salt/_grains
	└── dy_extend.py		# 扩展自定义grains，该脚本通过mysql获取各个服务器的角色
	salt/room_service
	├── files
	│   ├── AdManagerServer
	│   │   ├── AdManagerServer
	│   │   ├── AdManagerServer0907-01r.tar.gz
	│   │   ├── config.json
	│   │   └── TaskPerfomance.txt
	│   ├── AuthServer
	│   │   ├── AuthServer
	│   │   ├── config.json
	│   │   └── TaskPerfomance.txt
	│   ├── ChatRoom
	│   │   ├── ChatRoom
	│   │   ├── ChatRoom-20151010104032.tar.gz
	│   │   ├── ChatRoom-20151023095908.tar.gz
	│   │   ├── ChatRoom-20151028111604.tar.gz
	│   │   ├── ChatRoom-20151028180908.tar.gz
	│   │   ├── ChatRoom-20151029153541.tar.gz
	│   │   ├── config.json
	│   │   └── TaskPerfomance.txt
	│   ├── EmailServer
	│   │   ├── config.json
	│   │   ├── EmailServer
	│   │   └── TaskPerfomance.txt
	│   ├── GambleServer
	│   │   ├── config.json
	│   │   ├── GambleServer
	│   │   ├── GambleServer-20150921181341.tar.gz
	│   │   ├── GambleServer-20151019174029.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── GateServer
	│   │   ├── config.json
	│   │   ├── config.json_bak
	│   │   ├── GateServer
	│   │   ├── GateServer-20151012141957.tar.gz
	│   │   ├── GateServer-20151022091720.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── libexec
	│   │   ├── component_controler.py
	│   │   └── msg_server_info.sql
	│   ├── LocationServer
	│   │   ├── config.txt
	│   │   ├── LocationServer
	│   │   └── TaskPerfomance.txt
	│   ├── LogServer
	│   │   ├── config.json
	│   │   ├── config.txt
	│   │   ├── LogServer
	│   │   └── TaskPerfomance.txt
	│   ├── MobileGPServer
	│   │   ├── config.json
	│   │   ├── MobileGPServer
	│   │   └── TaskPerfomance.txt
	│   ├── MsgRepeater
	│   │   ├── config.json
	│   │   └── MsgRepeater
	│   ├── MsgServer
	│   │   ├── config.json
	│   │   ├── MsgServer
	│   │   ├── MsgServer1028r-4.tar.gz
	│   │   ├── msgserver_bak.tar.gz
	│   │   ├── server_list_inter.json
	│   │   ├── server_list_online.json
	│   │   └── TaskPerfomance.txt
	│   ├── RankListServer
	│   │   ├── config.json
	│   │   ├── RanklistServer
	│   │   ├── RanklistServer-201510291946.tar.gz
	│   │   ├── RanklistServer-20151030131505.tar.gz
	│   │   ├── RanklistServer-20151030163459.tar.gz
	│   │   ├── RanklistServer-20151101013014.tar.gz
	│   │   ├── RanklistServer-20151102142846.tar.gz
	│   │   ├── RanklistServer-20151103093928.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── RedisWriter
	│   │   ├── config.json
	│   │   ├── config.json_bak
	│   │   ├── RedisWriter
	│   │   ├── RedisWriter14
	│   │   └── TaskPerfomance.txt
	│   ├── RedPacketServer
	│   │   ├── config.json
	│   │   ├── RedPacketServer
	│   │   ├── RedPacketServer-20150922124719.tar.gz
	│   │   ├── RedPacketServer-20150924101646.tar.gz
	│   │   ├── RedPacketServer-20150928104251.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── room_log_clear.sh
	│   ├── RoomMaster
	│   │   ├── config.json
	│   │   ├── RoomMaster
	│   │   ├── RoomMaster-20150915185258.tar.gz
	│   │   ├── RoomMaster-20151028180908.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── room_rsync
	│   │   ├── room.pwd
	│   │   └── roomrsync.sh
	│   ├── SecGateServer
	│   │   ├── config.json
	│   │   ├── SecGateServer
	│   │   └── TaskPerfomance.txt
	│   ├── SecurityServer
	│   │   ├── config.txt
	│   │   ├── SecurityServer
	│   │   ├── TaskPerfomance.txt
	│   │   └── verify_keys.txt
	│   ├── SockPolicy
	│   │   ├── cross-domain-policy.xml
	│   │   └── sockpolicy
	│   ├── StatusServer
	│   │   ├── config.json
	│   │   ├── StatusServer
	│   │   ├── StatusServer-20151023091143.tar.gz
	│   │   ├── StatusServer-20151026140832.tar.gz
	│   │   └── TaskPerfomance.txt
	│   ├── SyslogServer
	│   │   ├── config.json
	│   │   ├── DBCmd.txt
	│   │   ├── Syslog-djw-20151016-183332.tar.gz
	│   │   ├── SyslogServer
	│   │   └── TaskPerfomance.txt
	│   ├── SystemMaster
	│   │   ├── config.txt
	│   │   ├── SystemMaster
	│   │   └── TaskPerfomance.txt
	│   ├── TaskServer
	│   │   ├── TaskPerfomance.txt
	│   │   ├── TaskServer_business
	│   │   │   ├── config.json
	│   │   │   ├── TaskServer
	│   │   │   ├── TaskServer-20151021142549.tar.gz
	│   │   │   ├── TaskServer-20151022101310.tar.gz
	│   │   │   └── TaskServer-20151102164213.tar.gz
	│   │   ├── TaskServer_common
	│   │   │   ├── config.json
	│   │   │   └── TaskServer_common
	│   │   └── TaskServerProxy
	│   │       ├── config.json
	│   │       └── TaskServerProxy
	│   ├── tools
	│   │   ├── addMsgServer.py
	│   │   ├── component_controler.py
	│   │   ├── DyComponentSoketAgent.py
	│   │   ├── DYProcessManager.py
	│   │   └── ProcessCpuUseage.py
	│   ├── TransactServer
	│   │   ├── config.json
	│   │   ├── TaskPerfomance.txt
	│   │   └── TransactServer
	│   ├── WeightConvertServer
	│   │   ├── config.txt
	│   │   ├── TaskPerfomance.txt
	│   │   └── WeightConvertServer
	│   ├── YuBaUserServer
	│   │   ├── config.json
	│   │   ├── TaskPerfomance.txt
	│   │   └── YuBaUserServer
	│   ├── YuChiSecServer
	│   │   ├── config.json
	│   │   ├── TaskPerfomance.txt
	│   │   └── YuChiSecondServer
	│   └── YuChiTransact
	│       ├── config.json
	│       ├── TaskPerfomance.txt
	│       └── YuChiTransactServer
	├── init.sls
	├── map.jinja
	└── states
		├── config.sls					# 定义c++组件运行的目录以及python脚本执行所需的库
		├── logrotate.sls				# 定义轮转，每台服务器日志存储保留3天，其余全部转移至mfs集群
		├── server
		│   ├── AdManagerServer.sls
		│   ├── AuthServer.sls
		│   ├── ChatRoom.sls
		│   ├── EmailServer.sls
		│   ├── GambleServer.sls
		│   ├── GateServer.sls
		│   ├── LocationServer.sls
		│   ├── LogServer.sls
		│   ├── MobileGPServer.sls
		│   ├── MsgRepeater.sls
		│   ├── MsgServer.sls
		│   ├── RankListServer.sls
		│   ├── RedisWriter.sls
		│   ├── RedPacketServer.sls
		│   ├── RoomMaster.sls
		│   ├── SecGateServer.sls
		│   ├── SecurityServer.sls
		│   ├── sockpolicy.sls
		│   ├── StatusServer.sls
		│   ├── SyslogServer.sls
		│   ├── SystemMaster.sls
		│   ├── TaskServer.sls
		│   ├── TransactServer.sls
		│   ├── WeightConvertServer.sls
		│   ├── YuBaUserServer.sls
		│   ├── YuChiSecServer.sls
		│   └── YuChiTransact.sls
		└── user.sls					# 定义c++组件的运行用户和组
	```

### 自定义grains脚本dy\_extend.py
dy\_extend.py脚本为该模块的支撑，通过该脚本分发至agent，从mysql中读取本机的角色定义
注意：

1. 任何对角色的增加或减少，需要重新对某个服务器做出改变的，或者新加服务器，需要利用命令重新分发运行一遍
2. dy\_extend.py的脚本需要读取stt\_config.web\_server\_info以及stt\_config.msg\_server\_info
3. 该脚本需要MySQLdb模块，该模块在config.sls中已经定义(对服务器第一次部署，无法达到预期要求，需要运行第二遍)

### server目录
server目录下面定义的均为各个服务组件的配置管理，大部分服务的配置均类似

1. 定义与mysql中server\_name中相同的目录，二进制文件也采用跟目录名相同
2. 新建TaskPerformance.txt文件
3. 新建log目录
4. 新建 config.json 或者 config.txt文件
5. 针对个别服务组件有重启的state，可以在配置文件有更改或者二进制文件有更新，即完成重启

### map.jinja文件
该文件中定义了大量的默认配置，以及从mysql中读取的定义的属于本机的配置
所有的服务变量从该文件中拉取