totaldebug.minecraft
ansible-role-minecraft
Diese Rolle installiert Minecraft oder Spigot und konfiguriert es, um unter systemd oder Supervisor zu laufen.
Kredit gilt devops-coop, der den Großteil dieser Version erstellt hat.
Installation
ansible-galaxy install totaldebug.minecraft
Funktionen
- unterstützt die ursprüngliche Version von Minecraft und Spigot
- unterstützt Debian 10, Ubuntu 18.04, RHEL/CentOS 7 und RHEL/CentOS 8
- stoppt den Server sicher mit "stop", wenn er unter systemd läuft
- Verwendet Github Actions & Molecule, um Integrationstests durchzuführen
- verwaltet Benutzer-ACLs
- verwaltet
server.properties
- Hooks: schließt beliebige Aufgaben zu bestimmten Zeitpunkten während der Ausführung ein
Rollenvariablen
Rollenvariablen
Die folgenden Standardwerte für die Variablen sind in defaults/main.yml
definiert.
minecraft_server_type
wähle zwischen minecraft
oder spigot
(Standard: minecraft
)
minecraft_version
Die Minecraft-Version, die installiert werden soll (Standard: latest
)
Beispiele:
.. code:: yaml
minecraft_version: latest
minecraft_version: 1.10
minecraft_version: 1.9.1
minecraft_version: 16w21a
minecraft_server_download_url
Download-URL für Minecraft (Standard: https://launcher.mojang.com/v1/objects
)
minecraft_server_download_checksum
Prüfziffer für die Minecraft-Download-URL
minecraft_user
Systembenutzer, unter dem Minecraft läuft (Standard: minecraft
)
minecraft_group
Systemgruppe, unter der Minecraft läuft (Standard: minecraft
)
minecraft_home
Verzeichnis, in das Minecraft installiert wird (Standard: /srv/minecraft
)
minecraft_max_memory
Maximalen Speicher in Java (-Xmx
) zuweisen (Standard: 1024M
)
minecraft_initial_memory
Anfangsspeicher in Java (-Xms
) zuweisen (Standard: 1024M
)
minecraft_service_name
Systemd-Dienstname oder Supervisor-Programname (Standard: minecraft
)
minecraft_supervisor_name
VERALTET: Supervisor-Programname (Standard: {{ minecraft_service_name }}
)
minecraft_process_control
Wähle zwischen systemd
und supervisor
(Standard: systemd
).
minecraft_whitelist
Liste von Minecraft-Benutzernamen, die auf die Whitelist gesetzt werden (Standard: []
)
minecraft_ops
Liste von Minecraft-Benutzernamen, die zu Server-Administratoren gemacht werden (Standard: []
)
minecraft_banned_players
Liste von Minecraft-Benutzernamen, die gesperrt werden (Standard: []
)
minecraft_banned_ips
Liste von IP-Adressen, die gesperrt werden (Standard: []
)
minecraft_server_properties
Wörterbuch von Einträgen in server.properties (z.B. server-port: 25565
) (Standard: {}
)
Hooks und Ausführungsphasen
ansible-minecraft organisiert die Ausführung in mehrere Phasen:
setup
- installiere Voraussetzungen (z.B. Java)
- erstelle Minecraft-Benutzer und -Gruppe
download
- lade die neueste Version von der Launcher-API herunter
- lade Minecraft herunter
install
- erstelle eine Symlink-Version zu
minecraft_server.jar
- stimme der EULA zu
acl
- konfiguriere die Server-ACLs (Whitelist, gesperrte Spieler usw.)
configure
- setze
server.properties
start
- (re)starte den Server
Du kannst benutzerdefinierte Aufgaben vor oder nach bestimmten Phasen ausführen. Gib einfach eine task include file <https://docs.ansible.com/ansible/playbooks_roles.html#task-include-files-and-encouraging-reuse>
__ mit der entsprechenden Rollenvariable an:
.. code:: yaml
- hosts: minecraft
roles:
- role: devops-coop.minecraft
minecraft_hook_before_start: "{{ playbook_dir }}/download-world-from-s3.yml"
Die verfügbaren Hooks sind:
minecraft_hook_before_setup
führe vor den setup
-Tasks aus
minecraft_hook_after_setup
führe nach den setup
-Tasks aus
minecraft_hook_before_download
führe vor den download
-Tasks aus
minecraft_hook_after_download
führe nach den download
-Tasks aus
minecraft_hook_before_install
führe vor den install
-Tasks aus
minecraft_hook_after_install
führe nach den install
-Tasks aus
minecraft_hook_before_start
führe vor den start
-Tasks aus
minecraft_hook_after_start
führe nach den start
-Tasks aus
Beispiel
.. code:: yaml
- hosts: minecraft
roles:
- { role: devops-coop.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}
Mitwirken
Pull-Requests sind willkommen. Diese Rolle unterstützt unter anderem keine benutzerdefinierten Minecraft-Server.
Versionsverwaltung
Dieses Projekt folgt der semantischen Versionierung.
Im Kontext der semantischen Versionierung gilt das Rollenvertrag als durch die Rollenvariablen definiert.
- Breaking Changes oder Änderungen, die eine Benutzerintervention erfordern, erhöhen die Hauptversion. Dazu gehört auch die Änderung des Standardwerts einer Rollenvariable.
- Änderungen, die keine Benutzerintervention erfordern, aber neue Funktionen hinzufügen, erhöhen die Nebenversion.
- Fehlerbehebungen erhöhen die Patch-Version.
Provisions a vanilla minecraft or spigot server
ansible-galaxy install totaldebug.minecraft