room_service.md 10 KB

SaltStack room_service模块

简介

room_service模块主要完成对c++组件的配置管理 包括

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

模块目录结构

systembase的目录结构

  • pillar目录下

    pillar/
    ├── prod
    │   ├── room_service.sls
    └── top.sls
    
  • salt目录下

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