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中读取的定义的属于本机的配置 所有的服务变量从该文件中拉取