Azerothcore WOW server metadata for Fleet management.
Project description
Welcome to acore_server_metadata Documentation
背景
AzerothCore (acore) 是一个开源的魔兽世界模拟器, 其代码质量以及文档是目前 (2023 年) 我看来所有的开源魔兽世界模拟器中最好的. 根据魔兽世界官服服务器的架构, 每一个 realm (大区下的某个服务器, 例如国服著名的山丘之王, 洛萨等) 一般都对应着一个单体虚拟机和一个单体数据库. 一个大区下有很多这种服务器, 而在生产环境和测试开发环境下又分别有很多这种服务器. 所以我需要开发一个工具对于这些服务器进行管理, 健康检查等.
我假设游戏服务器虚拟机和数据库都是在 AWS 上用 EC2 和 RDS 部署的. 所以这个项目只能用于 AWS 环境下的服务器管理.
关于本项目
本项目是一个简单的 Python 包, 提供了对一个 realm 服务器的抽象.
基础用例, 获取服务器状态
# 获取服务器的状态
>>> import boto3
>>> from acore_server_metadata.api import Server
>>> server_id = "prod"
>>> server = Server.get_server(server_id, ec2_client, rds_client)
>>> server
Server(
id='prod-1',
ec2_inst=Ec2Instance(
id='i-1a2b3c4d',
status='running',
...
tags={'realm': 'prod'},
data=...
),
rds_inst=RDSDBInstance(
id='db-inst-1',
status='available',
tags={'realm': 'prod'},
data=...
),
)
# 检查服务器的状态
>>> server.is_exists()
>>> server.is_running()
>>> server.is_ec2_exists()
>>> server.is_ec2_running()
>>> server.is_rds_exists()
>>> server.is_rds_running()
# 重新获取服务器的状态
>>> server.refresh()
# 批量获取服务器的状态, 进行了一些优化, 以减少 API 调用次数
>>> server_mapper = Server.batch_get_server(
... ids=["prod-1", "prod-2", "dev-1", "dev-2"],
... ec2_client=ec2_client,
... rds_client=rds_client,
... )
>>> server_mapper
{
"prod-1": <Server id="prod-1">,
"prod-2": <Server id="prod-2">,
"dev-1": <Server id="dev-1">,
"dev-2": <Server id="dev-2">,
}
对服务器进行操作
# 启动新的 EC2
>>> server.run_ec2(ec_client, ami_id, instance_type, ...)
# 启动新的 DB Instance
>>> server.run_rds(rds_client, db_snapshot_identifier, db_instance_class, ...)
# 关联 EIP 地址
>>> server.associate_eip_address(...)
# 创建数据库备份
>>> server.create_db_snapshot(...)
# 清理数据库备份
>>> server.cleanup_db_snapshot(...)
Install
acore_server_metadata is released on PyPI, so all you need is to:
$ pip install acore-server-metadata
To upgrade to latest version:
$ pip install --upgrade acore-server-metadata
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for acore_server_metadata-0.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56d6b1dd257f903c23e2b07519fae9cc2dd9b997737bc466ab7a1fd16c972dde |
|
MD5 | 678097e9a12a68cbb3d8377633ab1092 |
|
BLAKE2b-256 | d71492faea13db0ed2dc58d1022d04a3edecc9e9c157a90018b2323649d446f4 |
Close
Hashes for acore_server_metadata-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2239a834012604a4d9bb13265d338d065a141492a7a27fb915f8bc2cb95f2745 |
|
MD5 | a502ee2093a39ffa970bb1932bb37075 |
|
BLAKE2b-256 | 58b737a8dd44d5541987509683d899993c818a6b0da7f9fc96d1095cee847a68 |