заготовка под создание systemd юнита сервера

This commit is contained in:
Евгений Храмов 2023-04-26 23:31:42 +03:00
parent 69822e2400
commit 822b20dd87

74
hlna.py

@ -59,6 +59,7 @@ def create_dir(directory):
os.chdir(f"{home_dir}/.config/hlna/")
os.mkdir("maps")
def check_int(number=""):
"""Проверка на ввод числа"""
while True:
@ -231,33 +232,56 @@ def config(list_config=list_config):
max_players = check_int("Укажите максимальное количество игроков: \n")
if max_players == 0:
max_players = 70
yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override)
systemd_unit_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override)
# yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override)
def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override):
settings_hlna = [
{
'map' : map_s,
'Cluster' : cluster_server,
'SessionName' : name_server,
'Port' : port_server,
'QueryPort' : query_port,
'RCONEnabled' : rcon_enabled,
'RCONPort' : rcon_port,
'ServerAdminPassword': adminpassword_server,
'ServerPassword' : password_server,
'MaxPlayers' : max_players,
'ModsId' : mods_id,
'Listen' : listen_server,
'ServerPath' : dir_server,
'clusterid' : cluster_id,
'clusterdir' : cluster_dir_override
}
]
with open(dir_config + f"{name_server}", 'w') as yamlfile:
yaml.dump(settings_hlna, yamlfile)
print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL)
def systemd_unit_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override)
unit = f'''[Unit]
Description=ARK: Survival Evolved dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
ExecStartPre=/home/steam/steamcmd +login anonymous +force_install_dir /home/steam/servers/ark +app_update 376030 +quit
ExecStart=/home/steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<session_name> -server -log
WorkingDirectory=/home/steam/servers/ark/ShooterGame/Binaries/Linux
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
User=steam
Group=steam
[Install]
WantedBy=multi-user.target\
'''
with open(unit, 'w') as systemd_unit:
systemd_unit.write(unit)
os.system('systemctl daemon-reload')
# def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override):
# settings_hlna = [
# {
# 'map' : map_s,
# 'Cluster' : cluster_server,
# 'SessionName' : name_server,
# 'Port' : port_server,
# 'QueryPort' : query_port,
# 'RCONEnabled' : rcon_enabled,
# 'RCONPort' : rcon_port,
# 'ServerAdminPassword': adminpassword_server,
# 'ServerPassword' : password_server,
# 'MaxPlayers' : max_players,
# 'ModsId' : mods_id,
# 'Listen' : listen_server,
# 'ServerPath' : dir_server,
# 'clusterid' : cluster_id,
# 'clusterdir' : cluster_dir_override
# }
# ]
# with open(dir_config + f"{name_server}", 'w') as yamlfile:
# yaml.dump(settings_hlna, yamlfile)
# print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL)
def test_mod_install():