zonemod autostart

This commit is contained in:
CroneKorkN 2025-10-29 10:19:53 +01:00
parent 891e29a362
commit dc614483b5
Signed by: cronekorkn
SSH key fingerprint: SHA256:v0410ZKfuO1QHdgKBsdQNF64xmTxOF8osF1LIqwTcVw
5 changed files with 47 additions and 9 deletions

View file

@ -132,11 +132,11 @@ steam mkdir -p /opt/l4d2/overlays/competitive_rework/left4dead2
test -d /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/cfgogl || \ test -d /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/cfgogl || \
curl -L https://github.com/SirPlease/L4D2-Competitive-Rework/archive/refs/heads/master.tar.gz | steam tar -xz --strip-components=1 -C /opt/l4d2/overlays/competitive_rework/left4dead2 curl -L https://github.com/SirPlease/L4D2-Competitive-Rework/archive/refs/heads/master.tar.gz | steam tar -xz --strip-components=1 -C /opt/l4d2/overlays/competitive_rework/left4dead2
if ! test -f /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg # if ! test -f /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
then # then
steam mv /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg # steam mv /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
steam echo -e "exec server_original.cfg\nsm_forcematch zonemod" > /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg # steam echo -e "exec server_original.cfg\nsm_forcematch zonemod" > /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg
fi # fi
# -- SERVERS -- # # -- SERVERS -- #

View file

@ -14,7 +14,7 @@ function steam() {
} }
mountpoint -q "/opt/l4d2/servers/$name/merged" && umount "/opt/l4d2/servers/$name/merged" mountpoint -q "/opt/l4d2/servers/$name/merged" && umount "/opt/l4d2/servers/$name/merged"
steam rm -rf "/opt/l4d2/servers/$name" steam rm -rf "/opt/l4d2/servers/$name/work" "/opt/l4d2/servers/$name/upper" "/opt/l4d2/servers/$name/merged"
steam mkdir -p \ steam mkdir -p \
"/opt/l4d2/servers/$name" \ "/opt/l4d2/servers/$name" \
@ -26,4 +26,10 @@ mount -t overlay overlay \
-o "lowerdir=/opt/l4d2/overlays/$overlay:/opt/l4d2/installation,upperdir=/opt/l4d2/servers/$name/upper,workdir=/opt/l4d2/servers/$name/work" \ -o "lowerdir=/opt/l4d2/overlays/$overlay:/opt/l4d2/installation,upperdir=/opt/l4d2/servers/$name/upper,workdir=/opt/l4d2/servers/$name/work" \
"/opt/l4d2/servers/$name/merged" "/opt/l4d2/servers/$name/merged"
steam "/opt/l4d2/servers/$name/merged/srcds_run" -norestart -pidfile "/opt/l4d2/servers/$name/pid" -game left4dead2 -ip 0.0.0.0 -port "$port" $params +hostname "Crone_$name" +map c1m1_hotel # TODO: pass config file paht instead of expecting it here
steam mv "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg" "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server_original.cfg"
steam touch "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
echo "exec server_original.cfg" > "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
cat "/opt/l4d2/servers/$name/server.cfg" >> "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
steam "/opt/l4d2/servers/$name/merged/srcds_run" -norestart -pidfile "/opt/l4d2/servers/$name/pid" -game left4dead2 -ip 0.0.0.0 -port "$port" +hostname "Crone_$name" $params +map c1m1_hotel +exec server_wrapper

View file

@ -1,3 +1,5 @@
directories = {}
files = { files = {
'/opt/l4d2/setup': { '/opt/l4d2/setup': {
'mode': '755', 'mode': '755',
@ -7,6 +9,10 @@ files = {
}, },
'/opt/l4d2/start': { '/opt/l4d2/start': {
'mode': '755', 'mode': '755',
'triggers': {
f'svc_systemd:left4dead2-{server_name}.service:restart'
for server_name in node.metadata.get('left4dead2').keys()
},
}, },
} }
@ -21,7 +27,27 @@ svc_systemd = {
}, },
} }
for server_name in node.metadata.get('left4dead2').keys(): for server_name, config in node.metadata.get('left4dead2').items():
directories[f'/opt/l4d2/servers/{server_name}'] = {
'owner': 'steam',
'mode': '755',
'needed_by': {
f'svc_systemd:left4dead2-{server_name}.service',
},
}
files[f'/opt/l4d2/servers/{server_name}/server.cfg'] = {#
'content': '\n'.join(config.get('config', [])) + '\n',
'owner': 'steam',
'mode': '644',
'needed_by': {
f'svc_systemd:left4dead2-{server_name}.service',
},
'triggers': {
f'svc_systemd:left4dead2-{server_name}.service:restart',
},
}
svc_systemd[f'left4dead2-{server_name}.service'] = { svc_systemd[f'left4dead2-{server_name}.service'] = {
'enabled': True, 'enabled': True,
'running': True, 'running': True,

View file

@ -51,7 +51,7 @@ def server_units(metadata):
params = config.get("params", "") params = config.get("params", "")
if config.get("tickrate"): if config.get("tickrate"):
params += f" -tickrate {config['tickrate']}" params = f"-tickrate {config['tickrate']} " + params
units[f'left4dead2-{name}.service'] = { units[f'left4dead2-{name}.service'] = {
'Unit': { 'Unit': {

View file

@ -41,6 +41,12 @@
'overlay': 'competitive_rework', 'overlay': 'competitive_rework',
'port': 27017, 'port': 27017,
'tickrate': '100', 'tickrate': '100',
'config': [
'sm_forcematch zonemod',
'hostname server3_comp1_test',
'motd_enabled 0',
'rcon_password ' + vault.decrypt('encrypt$gAAAAABpAdZhxwJ47I1AXotuZmBvyZP1ecVTt9IXFkLI28JiVS74LKs9QdgIBz-FC-iXtIHHh_GVGxxKQZprn4UrXZcvZ57kCKxfHBs3cE2JiGnbWE8_mfs=').value,
],
}, },
}, },
'bind': { 'bind': {