From 8fac62be4217e465b03f7c71f93661ca76c0c5fb Mon Sep 17 00:00:00 2001 From: Eric Meehan Date: Thu, 11 Sep 2025 21:11:02 -0400 Subject: [PATCH] Set up Ansible role --- defaults/.main.yml.kate-swp | Bin 0 -> 15843 bytes defaults/main.yml | 3 + handlers/main.yml | 3 + meta/main.yml | 35 +++ tasks/main.yml | 81 +++++++ templates/serverconfig.json.j2 | 375 +++++++++++++++++++++++++++++++++ tests/inventory | 3 + tests/test.yml | 6 + vars/main.yml | 3 + 9 files changed, 509 insertions(+) create mode 100644 defaults/.main.yml.kate-swp create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/serverconfig.json.j2 create mode 100644 tests/inventory create mode 100644 tests/test.yml create mode 100644 vars/main.yml diff --git a/defaults/.main.yml.kate-swp b/defaults/.main.yml.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..61297096e03d3ae33ad9cc52040311f993142dc1 GIT binary patch literal 15843 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 literal 0 HcmV?d00001 diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..8eac0b1 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for ansible-role-vintage-story diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..2f50750 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for ansible-role-vintage-story diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..36b9858 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,35 @@ +#SPDX-License-Identifier: MIT-0 +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..903c0fc --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,81 @@ +#SPDX-License-Identifier: MIT-0 +--- +# tasks file for ansible-role-vintage-story +- name: Create Vintage Story namespace + k8s: + state: present + definition: + apiVersion: v1 + kind: Namespace + metadata: + name: vintage-story + +- name: Create a persistent volume claim + k8s: + state: present + definition: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: data + namespace: vintage-story + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 32Gi + +- name: Create Deployment for Vintage Story + k8s: + definition: + apiVersion: v1 + kind: Deployment + metadata: + name: vintage-story + namespace: vintage-story + spec: + replicas: 1 + selector: + matchLabels: + app: vintage-story + template: + metadata: + labels: + app: vintage-story + spec: + containers: + - name: vintage-story + image: devidian/vintagestory + volumeMounts: + - name: data + mountPath: /gamedata + - name: config + mountPath: /gamedata/vs/serverconfig.json + imagePullPolicy: IfNotPresent + ports: + - containerPort: 42420 + volumes: + - name: data + persistentVolumeClaim: + claimName: data + - name: config + configMap: + name: config + +- name: Create Service for Vintage Story + k8s: + definition: + apiVersion: v1 + kind: Service + metadata: + name: vintage-story + namespace: vintage-story + spec: + selector: + app: vintage-story + ports: + - port: 42420 + name: http + type: LoadBalancer + diff --git a/templates/serverconfig.json.j2 b/templates/serverconfig.json.j2 new file mode 100644 index 0000000..1c35799 --- /dev/null +++ b/templates/serverconfig.json.j2 @@ -0,0 +1,375 @@ +{ + "FileEditWarning": "", + "ConfigVersion": "1.8", + "ServerName": "{{ server_name }}", + "ServerUrl": null, + "ServerDescription": null, + "WelcomeMessage": "Welcome {0}, may you survive well and prosper", + "Ip": null, + "Port": 42420, + "Upnp": false, + "CompressPackets": true, + "AdvertiseServer": false, + "MaxClients": 16, + "MaxClientsInQueue": 0, + "PassTimeWhenEmpty": false, + "MasterserverUrl": "http://masterserver.vintagestory.at/api/v1/servers/", + "ModDbUrl": "https://mods.vintagestory.at/", + "ClientConnectionTimeout": 150, + "EntityDebugMode": false, + "Password": null, + "MapSizeX": 1024000, + "MapSizeY": 256, + "MapSizeZ": 1024000, + "ServerLanguage": "en", + "MaxChunkRadius": 12, + "TickTime": 33.333332, + "SpawnCapPlayerScaling": 0.5, + "BlockTickChunkRange": 5, + "MaxMainThreadBlockTicks": 10000, + "RandomBlockTicksPerChunk": 16, + "BlockTickInterval": 300, + "SkipEveryChunkRow": 0, + "SkipEveryChunkRowWidth": 0, + "Roles": [ + { + "Code": "suvisitor", + "PrivilegeLevel": -1, + "Name": "Survival Visitor", + "Description": "Can only visit this world and chat but not use/place/break anything", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "chat" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 1, + "Color": "Green", + "LandClaimAllowance": 0, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 3, + "AutoGrant": false + }, + { + "Code": "crvisitor", + "PrivilegeLevel": -1, + "Name": "Creative Visitor", + "Description": "Can only visit this world, chat and fly but not use/place/break anything", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "chat" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 2, + "Color": "DarkGray", + "LandClaimAllowance": 0, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 3, + "AutoGrant": false + }, + { + "Code": "limitedsuplayer", + "PrivilegeLevel": -1, + "Name": "Limited Survival Player", + "Description": "Can use/place/break blocks only in permitted areas (priv level -1), create/manage player groups and chat", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "build", + "useblock", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 1, + "Color": "White", + "LandClaimAllowance": 0, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 3, + "AutoGrant": false + }, + { + "Code": "limitedcrplayer", + "PrivilegeLevel": -1, + "Name": "Limited Creative Player", + "Description": "Can use/place/break blocks in only in permitted areas (priv level -1), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed)", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "build", + "useblock", + "gamemode", + "freemove", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 2, + "Color": "LightGreen", + "LandClaimAllowance": 0, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 3, + "AutoGrant": false + }, + { + "Code": "suplayer", + "PrivilegeLevel": 0, + "Name": "Survival Player", + "Description": "Can use/place/break blocks in unprotected areas (priv level 0), create/manage player groups and chat. Can claim an area of up to 8 chunks.", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "areamodify", + "build", + "useblock", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 1, + "Color": "White", + "LandClaimAllowance": 262144, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 3, + "AutoGrant": false + }, + { + "Code": "crplayer", + "PrivilegeLevel": 100, + "Name": "Creative Player", + "Description": "Can use/place/break blocks in all areas (priv level 100), create/manage player groups, chat, fly and set his own game mode (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "areamodify", + "build", + "useblock", + "gamemode", + "freemove", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 2, + "Color": "LightGreen", + "LandClaimAllowance": 1310720, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 6, + "AutoGrant": false + }, + { + "Code": "sumod", + "PrivilegeLevel": 200, + "Name": "Survival Moderator", + "Description": "Can use/place/break blocks everywhere (priv level 200), create/manage player groups, chat, kick/ban players and do serverwide announcements. Can claim an area of up to 4 chunks.", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "areamodify", + "build", + "useblock", + "buildblockseverywhere", + "useblockseverywhere", + "kick", + "ban", + "announce", + "readlists", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 1, + "Color": "Cyan", + "LandClaimAllowance": 1310720, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 60, + "AutoGrant": false + }, + { + "Code": "crmod", + "PrivilegeLevel": 500, + "Name": "Creative Moderator", + "Description": "Can use/place/break blocks everywhere (priv level 500), create/manage player groups, chat, kick/ban players, fly and set his own or other players game modes (= allows fly and change of move speed). Can claim an area of up to 40 chunks.", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "controlplayergroups", + "manageplayergroups", + "chat", + "areamodify", + "build", + "useblock", + "buildblockseverywhere", + "useblockseverywhere", + "kick", + "ban", + "gamemode", + "freemove", + "commandplayer", + "announce", + "readlists", + "attackcreatures", + "attackplayers", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 2, + "Color": "Cyan", + "LandClaimAllowance": 1310720, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 60, + "AutoGrant": false + }, + { + "Code": "admin", + "PrivilegeLevel": 99999, + "Name": "Admin", + "Description": "Has all privileges, including giving other players admin status.", + "DefaultSpawn": null, + "ForcedSpawn": null, + "Privileges": [ + "build", + "useblock", + "buildblockseverywhere", + "useblockseverywhere", + "attackplayers", + "attackcreatures", + "freemove", + "gamemode", + "pickingrange", + "chat", + "kick", + "ban", + "whitelist", + "setwelcome", + "announce", + "readlists", + "give", + "areamodify", + "setspawn", + "controlserver", + "tp", + "time", + "grantrevoke", + "root", + "commandplayer", + "controlplayergroups", + "manageplayergroups", + "selfkill" + ], + "RuntimePrivileges": [], + "DefaultGameMode": 1, + "Color": "LightBlue", + "LandClaimAllowance": 2147483647, + "LandClaimMinSize": { + "X": 5, + "Y": 5, + "Z": 5 + }, + "LandClaimMaxAreas": 99999, + "AutoGrant": true + } + ], + "DefaultRoleCode": "suplayer", + "ModPaths": [ + "Mods", + "/gamedata/vs/Mods" + ], + "AntiAbuse": 0, + "WorldConfig": { + "Seed": null, + "SaveFileLocation": "/gamedata/vs/Saves/default.vcdbs", + "WorldName": "A new world", + "AllowCreativeMode": true, + "PlayStyle": "surviveandbuild", + "PlayStyleLangCode": "surviveandbuild-bands", + "WorldType": "standard", + "WorldConfiguration": null, + "MapSizeY": null, + "CreatedByPlayerName": null, + "DisabledMods": null, + "RepairMode": false + }, + "NextPlayerGroupUid": 10, + "GroupChatHistorySize": 20, + "MaxOwnedGroupChannelsPerUser": 10, + "OnlyWhitelisted": false, + "WhitelistMode": 0, + "VerifyPlayerAuth": true, + "DefaultSpawn": null, + "AllowPvP": true, + "AllowFireSpread": true, + "AllowFallingBlocks": true, + "HostedMode": false, + "HostedModeAllowMods": false, + "StartupCommands": null, + "RepairMode": false, + "AnalyzeMode": false, + "CorruptionProtection": true, + "RegenerateCorruptChunks": false, + "ChatRateLimitMs": 1000, + "DieBelowDiskSpaceMb": 400, + "ModIdBlackList": null, + "ModIdWhiteList": null, + "ServerIdentifier": "a617d619-b910-41fb-827b-a6a748b78b7b", + "LogBlockBreakPlace": false, + "LogFileSplitAfterLine": 500000, + "DieAboveErrorCount": 100000, + "LoginFloodProtection": false, + "TemporaryIpBlockList": false, + "DisableModSafetyCheck": false, + "DieAboveMemoryUsageMb": 50000 +} diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..321be6f --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - ansible-role-vintage-story diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..9b75e90 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for ansible-role-vintage-story