From ac8e7e2733c7fb0b712475faa9d2936c464d2270 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Tue, 10 Feb 2026 19:37:27 +0100 Subject: [PATCH] delete old l4d bundles --- bundles/left4dead2_old/README.md | 58 ------- bundles/left4dead2_old/files/server.cfg | 40 ----- bundles/left4dead2_old/items.py | 122 --------------- bundles/left4dead2_old/metadata.py | 127 ---------------- bundles/left4dead2_old2/README.md | 97 ------------ bundles/left4dead2_old2/files/server.cfg | 0 bundles/left4dead2_old2/items.py | 183 ----------------------- bundles/left4dead2_old2/metadata.py | 107 ------------- bundles/left4dead2_steam_old/items.py | 54 ------- bundles/left4dead2_steam_old/metadata.py | 52 ------- 10 files changed, 840 deletions(-) delete mode 100644 bundles/left4dead2_old/README.md delete mode 100644 bundles/left4dead2_old/files/server.cfg delete mode 100644 bundles/left4dead2_old/items.py delete mode 100644 bundles/left4dead2_old/metadata.py delete mode 100644 bundles/left4dead2_old2/README.md delete mode 100644 bundles/left4dead2_old2/files/server.cfg delete mode 100644 bundles/left4dead2_old2/items.py delete mode 100644 bundles/left4dead2_old2/metadata.py delete mode 100644 bundles/left4dead2_steam_old/items.py delete mode 100644 bundles/left4dead2_steam_old/metadata.py diff --git a/bundles/left4dead2_old/README.md b/bundles/left4dead2_old/README.md deleted file mode 100644 index 4295b4b..0000000 --- a/bundles/left4dead2_old/README.md +++ /dev/null @@ -1,58 +0,0 @@ -https://developer.valvesoftware.com/wiki/List_of_L4D2_Cvars - -Dead Center c1m1_hotel -Dead Center c1m2_streets -Dead Center c1m3_mall -Dead Center c1m4_atrium -Dark Carnival c2m1_highway -Dark Carnival c2m2_fairgrounds -Dark Carnival c2m3_coaster -Dark Carnival c2m4_barns -Dark Carnival c2m5_concert -Swamp Fever c3m1_plankcountry -Swamp Fever c3m2_swamp -Swamp Fever c3m3_shantytown -Swamp Fever c3m4_plantation -Hard Rain c4m1_milltown_a -Hard Rain c4m2_sugarmill_a -Hard Rain c4m3_sugarmill_b -Hard Rain c4m4_milltown_b -Hard Rain c4m5_milltown_escape -The Parish c5m1_waterfront_sndscape -The Parish c5m1_waterfront -The Parish c5m2_park -The Parish c5m3_cemetery -The Parish c5m4_quarter -The Parish c5m5_bridge -The Passing c6m1_riverbank -The Passing c6m2_bedlam -The Passing c6m3_port -The Sacrifice c7m1_docks -The Sacrifice c7m2_barge -The Sacrifice c7m3_port -No Mercy c8m1_apartment -No Mercy c8m2_subway -No Mercy c8m3_sewers -No Mercy c8m4_interior -No Mercy c8m5_rooftop -Crash Course c9m1_alleys -Crash Course c9m2_lots -Death Toll c10m1_caves -Death Toll c10m2_drainage -Death Toll c10m3_ranchhouse -Death Toll c10m4_mainstreet -Death Toll c10m5_houseboat -Dead Air c11m1_greenhouse -Dead Air c11m2_offices -Dead Air c11m3_garage -Dead Air c11m4_terminal -Dead Air c11m5_runway -Blood Harvest c12m1_hilltop -Blood Harvest c12m2_traintunnel -Blood Harvest c12m3_bridge -Blood Harvest c12m4_barn -Blood Harvest c12m5_cornfield -Cold Stream c13m1_alpinecreek -Cold Stream c13m2_southpinestream -Cold Stream c13m3_memorialbridge -Cold Stream c13m4_cutthroatcreek diff --git a/bundles/left4dead2_old/files/server.cfg b/bundles/left4dead2_old/files/server.cfg deleted file mode 100644 index 9f60c4b..0000000 --- a/bundles/left4dead2_old/files/server.cfg +++ /dev/null @@ -1,40 +0,0 @@ -hostname "CroneKorkN : ${name}" -sv_contact "admin@sublimity.de" - - -sv_steamgroup "${','.join(steamgroups)}" - -rcon_password "${rcon_password}" - - -motd_enabled 0 - - -sv_cheats 1 - - -sv_consistency 0 - - -sv_lan 0 - - -sv_allow_lobby_connect_only 0 - - -sv_gametypes "coop,realism,survival,versus,teamversus,scavenge,teamscavenge" - - -sv_minrate 30000 -sv_maxrate 60000 -sv_mincmdrate 66 -sv_maxcmdrate 101 - - -sv_logsdir "logs-${name}" //Folder in the game directory where server logs will be stored. -log on //Creates a logfile (on | off) -sv_logecho 0 //default 0; Echo log information to the console. -sv_logfile 1 //default 1; Log server information in the log file. -sv_log_onefile 0 //default 0; Log server information to only one file. -sv_logbans 1 //default 0;Log server bans in the server logs. -sv_logflush 0 //default 0; Flush the log files to disk on each write (slow). diff --git a/bundles/left4dead2_old/items.py b/bundles/left4dead2_old/items.py deleted file mode 100644 index 59c8429..0000000 --- a/bundles/left4dead2_old/items.py +++ /dev/null @@ -1,122 +0,0 @@ -assert node.has_bundle('steam') and node.has_bundle('steam-workshop-download') - -directories = { - '/opt/steam/left4dead2-servers': { - 'owner': 'steam', - 'group': 'steam', - 'mode': '0755', - 'purge': True, - }, - # Current zfs doesnt support zfs upperdir. The support was added in October 2022. Move upperdir - unused anyway - - # to another dir. Also move workdir alongside it, as it has to be on same fs. - '/opt/steam-zfs-overlay-workarounds': { - 'owner': 'steam', - 'group': 'steam', - 'mode': '0755', - 'purge': True, - }, -} - -# /opt/steam/steam/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory -symlinks = { - '/opt/steam/steam/.steam/sdk32': { - 'target': '/opt/steam/steam/linux32', - 'owner': 'steam', - 'group': 'steam', - } -} - -# -# SERVERS -# - -for name, config in node.metadata.get('left4dead2/servers').items(): - - #overlay - directories[f'/opt/steam/left4dead2-servers/{name}'] = { - 'owner': 'steam', - 'group': 'steam', - } - directories[f'/opt/steam-zfs-overlay-workarounds/{name}/upper'] = { - 'owner': 'steam', - 'group': 'steam', - } - directories[f'/opt/steam-zfs-overlay-workarounds/{name}/workdir'] = { - 'owner': 'steam', - 'group': 'steam', - } - - # conf - files[f'/opt/steam/left4dead2-servers/{name}/left4dead2/cfg/server.cfg'] = { - 'content_type': 'mako', - 'source': 'server.cfg', - 'context': { - 'name': name, - 'steamgroups': node.metadata.get('left4dead2/steamgroups'), - 'rcon_password': config['rcon_password'], - }, - 'owner': 'steam', - 'group': 'steam', - 'triggers': [ - f'svc_systemd:left4dead2-{name}.service:restart', - ], - } - - # service - svc_systemd[f'left4dead2-{name}.service'] = { - 'needs': [ - f'file:/opt/steam/left4dead2-servers/{name}/left4dead2/cfg/server.cfg', - f'file:/usr/local/lib/systemd/system/left4dead2-{name}.service', - ], - } - - # - # ADDONS - # - - # base - files[f'/opt/steam/left4dead2-servers/{name}/left4dead2/addons/readme.txt'] = { - 'content_type': 'any', - 'owner': 'steam', - 'group': 'steam', - } - directories[f'/opt/steam/left4dead2-servers/{name}/left4dead2/addons'] = { - 'owner': 'steam', - 'group': 'steam', - 'purge': True, - 'triggers': [ - f'svc_systemd:left4dead2-{name}.service:restart', - ], - } - for id in [ - *config.get('workshop', []), - *node.metadata.get('left4dead2/workshop'), - ]: - files[f'/opt/steam/left4dead2-servers/{name}/left4dead2/addons/{id}.vpk'] = { - 'content_type': 'any', - 'owner': 'steam', - 'group': 'steam', - 'triggers': [ - f'svc_systemd:left4dead2-{name}.service:restart', - ], - } - - # admin system - - directories[f'/opt/steam/left4dead2-servers/{name}/left4dead2/ems/admin system'] = { - 'owner': 'steam', - 'group': 'steam', - 'mode': '0755', - 'triggers': [ - f'svc_systemd:left4dead2-{name}.service:restart', - ], - } - files[f'/opt/steam/left4dead2-servers/{name}/left4dead2/ems/admin system/admins.txt'] = { - 'owner': 'steam', - 'group': 'steam', - 'mode': '0755', - 'content': '\n'.join(sorted(node.metadata.get('left4dead2/admins'))), - 'triggers': [ - f'svc_systemd:left4dead2-{name}.service:restart', - ], - } diff --git a/bundles/left4dead2_old/metadata.py b/bundles/left4dead2_old/metadata.py deleted file mode 100644 index 3ab593f..0000000 --- a/bundles/left4dead2_old/metadata.py +++ /dev/null @@ -1,127 +0,0 @@ -assert node.has_bundle('steam') - -from shlex import quote - -defaults = { - 'steam': { - 'games': { - 'left4dead2': 222860, - }, - }, - 'left4dead2': { - 'servers': {}, - 'admins': set(), - 'workshop': set(), - }, -} - - -@metadata_reactor.provides( - 'left4dead2/servers', -) -def rconn_password(metadata): - # only works from localhost! - return { - 'left4dead2': { - 'servers': { - server: { - 'rcon_password': repo.vault.password_for(f'{node.name} left4dead2 {server} rcon', length=24), - } - for server in metadata.get('left4dead2/servers') - }, - }, - } - - -@metadata_reactor.provides( - 'steam-workshop-download', - 'systemd/units', -) -def server_units(metadata): - units = {} - workshop = {} - - for name, config in metadata.get('left4dead2/servers').items(): - # mount overlay - mountpoint = f'/opt/steam/left4dead2-servers/{name}' - mount_unit_name = mountpoint[1:].replace('-', '\\x2d').replace('/', '-') + '.mount' - units[mount_unit_name] = { - 'Unit': { - 'Description': f"Mount left4dead2 server {name} overlay", - 'Conflicts': {'umount.target'}, - 'Before': {'umount.target'}, - }, - 'Mount': { - 'What': 'overlay', - 'Where': mountpoint, - 'Type': 'overlay', - 'Options': ','.join([ - 'auto', - 'lowerdir=/opt/steam/left4dead2', - f'upperdir=/opt/steam-zfs-overlay-workarounds/{name}/upper', - f'workdir=/opt/steam-zfs-overlay-workarounds/{name}/workdir', - ]), - }, - 'Install': { - 'RequiredBy': { - f'left4dead2-{name}.service', - }, - }, - } - - # individual workshop - workshop_ids = config.get('workshop', set()) | metadata.get('left4dead2/workshop', set()) - if workshop_ids: - workshop[f'left4dead2-{name}'] = { - 'ids': workshop_ids, - 'path': f'/opt/steam/left4dead2-servers/{name}/left4dead2/addons', - 'user': 'steam', - 'requires': { - mount_unit_name, - }, - 'required_by': { - f'left4dead2-{name}.service', - }, - } - - # left4dead2 server unit - units[f'left4dead2-{name}.service'] = { - 'Unit': { - 'Description': f'left4dead2 server {name}', - 'After': {'steam-update.service'}, - 'Requires': {'steam-update.service'}, - }, - 'Service': { - 'User': 'steam', - 'Group': 'steam', - 'WorkingDirectory': f'/opt/steam/left4dead2-servers/{name}', - 'ExecStart': f'/opt/steam/left4dead2-servers/{name}/srcds_run -port {config["port"]} +exec server.cfg', - 'Restart': 'on-failure', - }, - 'Install': { - 'WantedBy': {'multi-user.target'}, - }, - } - - return { - 'steam-workshop-download': workshop, - 'systemd': { - 'units': units, - }, - } - - -@metadata_reactor.provides( - 'nftables/input', -) -def firewall(metadata): - ports = set(str(server['port']) for server in metadata.get('left4dead2/servers').values()) - - return { - 'nftables': { - 'input': { - f"tcp dport {{ {', '.join(sorted(ports))} }} accept", - f"udp dport {{ {', '.join(sorted(ports))} }} accept", - }, - }, - } diff --git a/bundles/left4dead2_old2/README.md b/bundles/left4dead2_old2/README.md deleted file mode 100644 index 13f91dc..0000000 --- a/bundles/left4dead2_old2/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# https://github.com/SirPlease/L4D2-Competitive-Rework/blob/master/Dedicated%20Server%20Install%20Guide/README.md - -getent passwd steam >/dev/null || useradd -M -d /opt/l4d2 -s /bin/bash steam -mkdir -p /opt/l4d2 /tmp/dumps -chown steam:steam /opt/l4d2 /tmp/dumps -dpkg --add-architecture i386 -apt update -DEBIAN_FRONTEND=noninteractive apt install -y libc6:i386 lib32z1 - -function steam() { sudo -Hiu steam $* } - -# -- STEAM -- # - -steam mkdir -p /opt/l4d2/steam -test -f /opt/l4d2/steam/steamcmd_linux.tar.gz || \ - steam wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz -P /opt/l4d2/steam -test -f /opt/l4d2/steam/steamcmd.sh || \ - steam tar -xvzf /opt/l4d2/steam/steamcmd_linux.tar.gz -C /opt/l4d2/steam - -# fix: /opt/l4d2/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory -steam mkdir -p /opt/l4d2/steam/.steam -test -f /opt/l4d2/steam/.steam/sdk32/steamclient.so || \ - steam ln -s /opt/l4d2/steam/linux32 /opt/l4d2/steam/.steam/sdk32 - -# -- INSTALL -- # - -# erst die windows deps zu installieren scheint ein workaround für x64 zu sein? -steam mkdir -p /opt/l4d2/installation -steam /opt/l4d2/steam/steamcmd.sh \ - +force_install_dir /opt/l4d2/installation \ - +login anonymous \ - +@sSteamCmdForcePlatformType windows \ - +app_update 222860 validate \ - +quit -steam /opt/l4d2/steam/steamcmd.sh \ - +force_install_dir /opt/l4d2/installation \ - +login anonymous \ - +@sSteamCmdForcePlatformType linux \ - +app_update 222860 validate \ - +quit - -# -- OVERLAYS -- # - -steam mkdir -p /opt/l4d2/overlays - -# workshop downloader -steam wget -4 https://git.sublimity.de/cronekorkn/steam-workshop-downloader/raw/branch/master/steam-workshop-download -P /opt/l4d2 -steam chmod +x /opt/l4d2/steam-workshop-download - -# -- OVERLAY PVE -- # - -steam mkdir -p /opt/l4d2/overlays/pve - -# admin system -steam mkdir -p /opt/l4d2/overlays/pve/left4dead2/addons -steam /opt/l4d2/steam-workshop-download 2524204971 --out /opt/l4d2/overlays/pve/left4dead2/addons -steam mkdir -p "/opt/l4d2/overlays/pve/left4dead2/ems/admin system" -echo "STEAM_1:0:12376499" | steam tee "/opt/l4d2/overlays/pve/left4dead2/ems/admin system/admins.txt" - -# ions vocalizer -steam /opt/l4d2/steam-workshop-download 698857882 --out /opt/l4d2/overlays/pve/left4dead2/addons - -# -- OVERLAY ZONEMOD -- # - -true - -# -- SERVERS -- # - -steam mkdir -p /opt/l4d2/servers - -# -- SERVER PVE1 -- # - -steam mkdir -p \ - /opt/l4d2/servers/pve1 \ - /opt/l4d2/servers/pve1/work \ - /opt/l4d2/servers/pve1/upper \ - /opt/l4d2/servers/pve1/merged - -mount -t overlay overlay \ - -o lowerdir=/opt/l4d2/overlays/pve:/opt/l4d2/installation,upperdir=/opt/l4d2/servers/pve1/upper,workdir=/opt/l4d2/servers/pve1/work \ - /opt/l4d2/servers/pve1/merged - -# run server -steam cat <<'EOF' > /opt/l4d2/servers/pve1/merged/left4dead2/cfg/server.cfg -hostname "CKNs Server" -motd_enabled 0 - -sv_steamgroup "38347879" -#sv_steamgroup_exclusive 0 - -sv_minrate 60000 -sv_maxrate 0 -net_splitpacket_maxrate 60000 - -sv_hibernate_when_empty 0 -EOF -steam /opt/l4d2/servers/pve1/merged/srcds_run -game left4dead2 -ip 0.0.0.0 -port 27015 +map c1m1_hotel diff --git a/bundles/left4dead2_old2/files/server.cfg b/bundles/left4dead2_old2/files/server.cfg deleted file mode 100644 index e69de29..0000000 diff --git a/bundles/left4dead2_old2/items.py b/bundles/left4dead2_old2/items.py deleted file mode 100644 index 42e2a3e..0000000 --- a/bundles/left4dead2_old2/items.py +++ /dev/null @@ -1,183 +0,0 @@ -from shlex import quote - - -def steam_run(cmd): - return f'su - steam -c {quote(cmd)}' - - -users = { - 'steam': { - 'home': '/opt/steam', - }, -} - -directories = { - '/opt/steam': { - 'owner': 'steam', - 'group': 'steam', - }, - '/opt/steam/.steam': { - 'owner': 'steam', - 'group': 'steam', - }, - '/opt/left4dead2': { - 'owner': 'steam', - 'group': 'steam', - }, - '/opt/left4dead2/left4dead2/ems/admin system': { - 'owner': 'steam', - 'group': 'steam', - }, - '/opt/left4dead2/left4dead2/addons': { - 'owner': 'steam', - 'group': 'steam', - }, - '/tmp/dumps': { - 'owner': 'steam', - 'group': 'steam', - 'mode': '1770', - }, -} - -symlinks = { - '/opt/steam/.steam/sdk32': { - 'target': '/opt/steam/linux32', - 'owner': 'steam', - 'group': 'steam', - }, -} - -files = { - '/opt/steam-workshop-download': { - 'content_type': 'download', - 'source': 'https://git.sublimity.de/cronekorkn/steam-workshop-downloader/raw/branch/master/steam-workshop-download', - 'mode': '755', - }, - '/opt/left4dead2/left4dead2/ems/admin system/admins.txt': { - 'unless': 'test -f /opt/left4dead2/left4dead2/ems/admin system/admins.txt', - 'content': 'STEAM_1:0:12376499', - 'owner': 'steam', - 'group': 'steam', - }, -} - -actions = { - 'dpkg_add_architecture': { - 'command': 'dpkg --add-architecture i386', - 'unless': 'dpkg --print-foreign-architectures | grep -q i386', - 'triggers': [ - 'action:apt_update', - ], - 'needed_by': [ - 'pkg_apt:libc6_i386', - ], - }, - 'download_steam': { - 'command': steam_run('wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz -P /opt/steam'), - 'unless': steam_run('test -f /opt/steam/steamcmd_linux.tar.gz'), - 'needs': { - 'pkg_apt:libc6_i386', - 'directory:/opt/steam', - } - }, - 'extract_steamcmd': { - 'command': steam_run('tar -xvzf /opt/steam/steamcmd_linux.tar.gz -C /opt/steam'), - 'unless': steam_run('test -f /opt/steam/steamcmd.sh'), - 'needs': { - 'action:download_steam', - } - }, -} - -for addon_id in [2524204971]: - actions[f'download-left4dead2-addon-{addon_id}'] = { - 'command': steam_run(f'/opt/steam-workshop-download {addon_id} --out /opt/left4dead2/left4dead2/addons'), - 'unless': steam_run(f'test -f /opt/left4dead2/left4dead2/addons/{addon_id}.vpk'), - 'needs': { - 'directory:/opt/left4dead2/left4dead2/addons', - }, - 'needed_by': { - 'tag:left4dead2-servers', - }, - } - -svc_systemd = { - 'left4dead2-install.service': { - 'enabled': True, - 'running': False, - 'needs': { - 'file:/usr/local/lib/systemd/system/left4dead2-install.service', - }, - }, -} - -for server_name, server_config in node.metadata.get('left4dead2/servers', {}).items(): - svc_systemd[f'left4dead2-{server_name}.service'] = { - 'enabled': True, - 'running': True, - 'tags': { - 'left4dead2-servers', - }, - 'needs': { - 'svc_systemd:left4dead2-install.service', - f'file:/usr/local/lib/systemd/system/left4dead2-{server_name}.service', - } - } - - - -# # https://github.com/SirPlease/L4D2-Competitive-Rework/blob/master/Dedicated%20Server%20Install%20Guide/README.md - -# mkdir /opt/steam /tmp/dumps -# useradd -M -d /opt/steam -s /bin/bash steam -# chown steam:steam /opt/steam /tmp/dumps -# dpkg --add-architecture i386 -# apt update -# apt install libc6:i386 lib32z1 -# sudo su - steam -s /bin/bash - -# #-------- - -# wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz -# tar -xvzf steamcmd_linux.tar.gz - -# # fix: /opt/steam/.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory -# mkdir /opt/steam/.steam && ln -s /opt/steam/linux32 /opt/steam/.steam/sdk32 - -# # erst die windows deps zu installieren scheint ein workaround für x64 zu sein? -# ./steamcmd.sh \ -# +force_install_dir /opt/steam/left4dead2 \ -# +login anonymous \ -# +@sSteamCmdForcePlatformType windows \ -# +app_update 222860 validate \ -# +quit -# ./steamcmd.sh \ -# +force_install_dir /opt/steam/left4dead2 \ -# +login anonymous \ -# +@sSteamCmdForcePlatformType linux \ -# +app_update 222860 validate \ -# +quit - -# # download admin system -# wget -4 https://git.sublimity.de/cronekorkn/steam-workshop-downloader/raw/branch/master/steam-workshop-download -# chmod +x steam-workshop-download -# ./steam-workshop-download 2524204971 --out /opt/steam/left4dead2/left4dead2/addons -# mkdir -p "/opt/steam/left4dead2/left4dead2/ems/admin system" -# echo "STEAM_1:0:12376499" > "/opt/steam/left4dead2/left4dead2/ems/admin system/admins.txt" - -# /opt/steam/left4dead2/srcds_run -game left4dead2 -ip 0.0.0.0 -port 27015 +map c1m1_hotel - - -# cat <<'EOF' > /opt/steam/left4dead2/left4dead2/cfg/server.cfg -# hostname "CKNs Server" -# motd_enabled 0 - -# sv_steamgroup "38347879" -# #sv_steamgroup_exclusive 0 - -# sv_minrate 60000 -# sv_maxrate 0 -# net_splitpacket_maxrate 60000 - -# sv_hibernate_when_empty 0 -# EOF diff --git a/bundles/left4dead2_old2/metadata.py b/bundles/left4dead2_old2/metadata.py deleted file mode 100644 index 95c9c27..0000000 --- a/bundles/left4dead2_old2/metadata.py +++ /dev/null @@ -1,107 +0,0 @@ -from re import match - -defaults = { - 'apt': { - 'packages': { - 'libc6_i386': {}, # installs libc6:i386 - 'lib32z1': {}, - 'unzip': {}, - }, - }, - 'left4dead2': { - 'servers': {}, - }, - 'nftables': { - 'input': { - 'udp dport { 27005, 27020 } accept', - }, - }, -} - - -@metadata_reactor.provides( - 'nftables/input', -) -def nftables(metadata): - ports = sorted(str(config["port"]) for config in metadata.get('left4dead2/servers', {}).values()) - - return { - 'nftables': { - 'input': { - f'ip protocol {{ tcp, udp }} th dport {{ {", ".join(ports)} }} accept' - }, - }, - } - - -@metadata_reactor.provides( - 'systemd/units', -) -def initial_unit(metadata): - install_command = ( - '/opt/steam/steamcmd.sh ' - '+force_install_dir /opt/left4dead2 ' - '+login anonymous ' - '+@sSteamCmdForcePlatformType {platform} ' - '+app_update 222860 validate ' - '+quit ' - ) - - return { - 'systemd': { - 'units': { - 'left4dead2-install.service': { - 'Unit': { - 'Description': 'install or update left4dead2', - 'After': 'network-online.target', - }, - 'Service': { - 'Type': 'oneshot', - 'RemainAfterExit': 'yes', - 'User': 'steam', - 'Group': 'steam', - 'WorkingDirectory': '/opt/steam', - 'ExecStartPre': install_command.format(platform='windows'), - 'ExecStart': install_command.format(platform='linux'), - }, - 'Install': { - 'WantedBy': {'multi-user.target'}, - }, - }, - }, - }, - } - - -@metadata_reactor.provides( - 'systemd/units', -) -def server_units(metadata): - units = {} - - for name, config in metadata.get('left4dead2/servers').items(): - assert match(r'^[A-z0-9-_-]+$', name) - - units[f'left4dead2-{name}.service'] = { - 'Unit': { - 'Description': f'left4dead2 server {name}', - 'After': {'left4dead2-install.service'}, - 'Requires': {'left4dead2-install.service'}, - }, - 'Service': { - 'User': 'steam', - 'Group': 'steam', - 'WorkingDirectory': '/opt/left4dead2', - 'ExecStart': f'/opt/left4dead2/srcds_run -port {config["port"]} +exec server_{name}.cfg', - 'Restart': 'on-failure', - }, - 'Install': { - 'WantedBy': {'multi-user.target'}, - }, - } - - return { - 'systemd': { - 'units': units, - }, - } diff --git a/bundles/left4dead2_steam_old/items.py b/bundles/left4dead2_steam_old/items.py deleted file mode 100644 index be7636a..0000000 --- a/bundles/left4dead2_steam_old/items.py +++ /dev/null @@ -1,54 +0,0 @@ -users = { - 'steam': { - 'home': '/opt/steam/steam', - }, -} - -directories = { - '/opt/steam': { - 'owner': 'steam', - 'group': 'steam', - 'needs': [ - 'zfs_dataset:tank/steam', - ], - }, - '/opt/steam/steam': { - 'owner': 'steam', - 'group': 'steam', - }, -} -for game in node.metadata.get('steam/games'): - directories[f'/opt/steam/{game}'] = { - 'owner': 'steam', - 'group': 'steam', - 'needed_by': [ - 'svc_systemd:steam-update.service', - ], - } - -files = { - '/opt/steam/steam/steamcmd_linux.tar.gz': { - 'content_type': 'download', - 'source': 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz', - 'owner': 'steam', - 'group': 'steam', - }, -} - -actions = { - 'extract_steamcmd': { - 'command': """su - steam -c 'tar xfvz /opt/steam/steam/steamcmd_linux.tar.gz --directory /opt/steam/steam'""", - 'unless': 'test -f /opt/steam/steam/steamcmd.sh', - 'needs': [ - 'file:/opt/steam/steam/steamcmd_linux.tar.gz', - ], - }, -} - -svc_systemd['steam-update.service'] = { - 'running': None, - 'enabled': True, - 'needs': { - 'file:/usr/local/lib/systemd/system/steam-update.service', - } -} diff --git a/bundles/left4dead2_steam_old/metadata.py b/bundles/left4dead2_steam_old/metadata.py deleted file mode 100644 index 6b962de..0000000 --- a/bundles/left4dead2_steam_old/metadata.py +++ /dev/null @@ -1,52 +0,0 @@ -defaults = { - 'apt': { - 'packages': { - 'lib32gcc-s1': {}, - 'unzip': {}, - }, - }, - 'steam': { - 'games': { - 'left4dead2': 222860, - }, - }, - 'zfs': { - 'datasets': { - 'tank/steam': { - 'mountpoint': '/opt/steam', - 'backup': False, - }, - }, - }, -} - - -@metadata_reactor.provides( - 'systemd/units', -) -def initial_unit(metadata): - return { - 'systemd': { - 'units': { - 'steam-update.service': { - 'Unit': { - 'Description': 'steam: install and update games', - 'After': 'network-online.target', - }, - 'Service': { - 'Type': 'oneshot', - 'User': 'steam', - 'Group': 'steam', - 'WorkingDirectory': '/opt/steam', - 'ExecStart': { - f'/opt/steam/steam/steamcmd.sh +force_install_dir /opt/steam/{game} +login anonymous +app_update {id} validate +quit' - for game, id in metadata.get('steam/games').items() - } - }, - 'Install': { - 'WantedBy': {'multi-user.target'}, - }, - }, - }, - }, - }