totaldebug.minecraft
ansible-role-minecraft
Ce rôle installe Minecraft ou Spigot et le configure pour fonctionner sous systemd ou Supervisor.
Crédit à devops-coop qui a créé la majeure partie de cette version.
Installation
ansible-galaxy install totaldebug.minecraft
Fonctions
- prend en charge Minecraft vanilla et Spigot
- prend en charge Debian 10, Ubuntu 18.04, RHEL/CentOS 7 et RHEL/CentOS 8
- arrête le serveur de manière sécurisée en utilisant stop lorsqu'il fonctionne sous systemd
- Utilise Github Actions et Molecule pour exécuter des tests d'intégration
- gère les ACL des utilisateurs
- gère
server.properties
- hooks : incluez des tâches arbitraires à des étapes spécifiques pendant l'exécution
Variables du rôle
Variables du rôle
Les valeurs par défaut des variables suivantes sont définies dans defaults/main.yml
.
minecraft_server_type
choisissez entre minecraft
ou spigot
(par défaut : minecraft
)
minecraft_version
Version de Minecraft à installer (par défaut : latest
)
Exemples :
.. code:: yaml
minecraft_version: latest
minecraft_version: 1.10
minecraft_version: 1.9.1
minecraft_version: 16w21a
minecraft_server_download_url
URL de téléchargement de Minecraft (par défaut :
https://launcher.mojang.com/v1/objects
)
minecraft_server_download_checksum
Somme de contrôle de l'URL de téléchargement de Minecraft
minecraft_user
utilisateur système sous lequel Minecraft fonctionne (par défaut : minecraft
)
minecraft_group
groupe système sous lequel Minecraft fonctionne (par défaut : minecraft
)
minecraft_home
répertoire où installer Minecraft (par défaut : /srv/minecraft
)
minecraft_max_memory
mémoire maximale de Java (-Xmx
) à allouer (par défaut : 1024M
)
minecraft_initial_memory
mémoire initiale de Java (-Xms
) à allouer (par défaut : 1024M
)
minecraft_service_name
nom du service systemd ou du programme Supervisor (par défaut : minecraft
)
minecraft_supervisor_name
DÉPRÉCIÉ : nom du programme Supervisor (par défaut : {{ minecraft_service_name }}
)
minecraft_process_control
Choisissez entre systemd
et supervisor
(par défaut : systemd
).
minecraft_whitelist
liste des noms d'utilisateur Minecraft à autoriser (par défaut : []
)
minecraft_ops
liste des noms d'utilisateur Minecraft à rendre ops sur le serveur (par défaut : []
)
minecraft_banned_players
liste des noms d'utilisateur Minecraft à bannir (par défaut : []
)
minecraft_banned_ips
liste des adresses IP à bannir (par défaut : []
)
minecraft_server_properties
dictionnaire des entrées de server.properties (par exemple server-port: 25565
) à définir (par défaut : {}
)
Hooks et étapes d'exécution
ansible-minecraft organise l'exécution en plusieurs étapes :
setup
- installer les prérequis (par exemple, Java)
- créer l'utilisateur et le groupe Minecraft
download
- récupérer la dernière version depuis l'API de lancement
- télécharger Minecraft
install
- créer un lien symbolique vers
minecraft_server.jar
- accepter le contrat de licence
acl
- configurer les ACLs du serveur (liste blanche, joueurs bannis, etc.)
configure
- définir
server.properties
start
- (re)démarrer le serveur
Vous pouvez exécuter des tâches personnalisées avant ou après des étapes spécifiques. Il suffit de spécifier un task include file <https://docs.ansible.com/ansible/playbooks_roles.html#task-include-files-and-encouraging-reuse>
__ en utilisant la variable de rôle pertinente :
.. code:: yaml
- hosts: minecraft
roles:
- role: devops-coop.minecraft
minecraft_hook_before_start: "{{ playbook_dir }}/download-world-from-s3.yml"
Les hooks disponibles sont :
minecraft_hook_before_setup
exécuté avant les tâches de setup
minecraft_hook_after_setup
exécuté après les tâches de setup
minecraft_hook_before_download
exécuté avant les tâches de download
minecraft_hook_after_download
exécuté après les tâches de download
minecraft_hook_before_install
exécuté avant les tâches de install
minecraft_hook_after_install
exécuté après les tâches de install
minecraft_hook_before_start
exécuté avant les tâches de start
minecraft_hook_after_start
exécuté après les tâches de start
Exemple
.. code:: yaml
- hosts: minecraft
roles:
- { role: devops-coop.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}
Contribution
Les demandes de tirage sont les bienvenues. Entre autres fonctionnalités, ce rôle manque de support pour des serveurs Minecraft personnalisés.
Versionnement
Ce projet suit le versionnement sémantique.
Dans le contexte du versionnement sémantique, considérez le contrat du rôle comme étant défini par les variables de rôle.
- Les changements majeurs ou les changements qui nécessitent une intervention de l'utilisateur augmenteront la version majeure. Cela inclut le changement de la valeur par défaut d'une variable de rôle.
- Les changements qui ne nécessitent pas d'intervention de l'utilisateur, mais qui ajoutent de nouvelles fonctionnalités, augmenteront la version mineure.
- Les corrections de bogues augmenteront la version de patch.
Provisions a vanilla minecraft or spigot server
ansible-galaxy install totaldebug.minecraft