From 137e8279dbe357a75838deb96f473dd15c9816d0 Mon Sep 17 00:00:00 2001 From: Eric Meehan Date: Fri, 12 Sep 2025 17:38:18 +0000 Subject: [PATCH] Inititial setup (#2) Initialize the Ansible role and establish an interface for server configuration. Reviewed-on: https://gitea.eom.dev/Gaming/ansible-role-vintage-story/pulls/2 --- defaults/main.yml | 354 +++++++++++++++++++++++++++++++ handlers/main.yml | 3 + meta/main.yml | 35 +++ tasks/main.yml | 97 +++++++++ templates/serverconfig.json.j2 | 375 +++++++++++++++++++++++++++++++++ tests/inventory | 3 + tests/test.yml | 6 + vars/main.yml | 3 + 8 files changed, 876 insertions(+) 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 b/defaults/main.yml new file mode 100644 index 0000000..024187c --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,354 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for ansible-role-vintage-story +FileEditWarning: '' +ConfigVersion: '1.8' +ServerName: Vintage Story Server +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/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..3a9219b --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,97 @@ +#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 a ConfigMap + k8s: + state: present + definition: + apiVersion: v1 + kind: ConfigMap + metadata: + name: config + namespace: vintage-story + data: + serverconfig.json: "{{ lookup('template', 'serverconfig.json.j2') }}" + +- 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 + subPath: serverconfig.json + imagePullPolicy: IfNotPresent + ports: + - containerPort: 42420 + volumes: + - name: data + persistentVolumeClaim: + claimName: data + - name: config + configMap: + name: config + items: + - key: serverconfig.json + path: serverconfig.json + +- 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..e035e3e --- /dev/null +++ b/templates/serverconfig.json.j2 @@ -0,0 +1,375 @@ +{ + "FileEditWarning": "", + "ConfigVersion": "1.8", + "ServerName": "{{ ServerName }}", + "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": "{{ StartupCommands }}", + "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