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(...)
# 启动新的 DB Instance
>>> server.run_rds(...)
# 关联 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.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9753e5d5985bd8e45e1a97eb1e50dfecbce633967af8549662690cea7b48a900 |
|
MD5 | 42ae8b2f70202c8a0c84495b77ab6360 |
|
BLAKE2b-256 | 13fdc4718a987ac463276797553041958ce721547f37b953e2efb15a8e4127e7 |
Close
Hashes for acore_server_metadata-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa62b5f7139d29316e4724c05049d526f64acaf8e04a28bb7ea22a3d552d817f |
|
MD5 | 181c200eaa97e10ef575809195edb589 |
|
BLAKE2b-256 | a4aa5e879e3ae689640a025201b567ba0bfc4f6adbf7663499ec6eab283a8cff |