totaldebug.minecraft
ansible-role-minecraft
Este rol instala Minecraft o Spigot y lo configura para que funcione bajo systemd o Supervisor.
Créditos a devops-coop, quien creó la mayor parte de esta versión.
Instalación
ansible-galaxy install totaldebug.minecraft
Características
- Soporta Minecraft normal y Spigot
- Soporta Debian 10, Ubuntu 18.04, RHEL/CentOS 7 y RHEL/CentOS 8
- Detiene el servidor de manera segura usando "stop" cuando se ejecuta bajo systemd
- Usa Github Actions y molecule para ejecutar pruebas de integración
- Gestiona los ACLs de usuarios
- Gestiona
server.properties
- Hooks: incluye tareas arbitrarias en etapas específicas durante la ejecución
Variables del rol
Variables del rol
Las siguientes variables tienen valores predeterminados definidos en defaults/main.yml
.
minecraft_server_type
elige entre minecraft
o spigot
(predeterminado: minecraft
)
minecraft_version
versión de Minecraft a instalar (predeterminado: latest
)
Ejemplos:
.. code:: yaml
minecraft_version: latest
minecraft_version: 1.10
minecraft_version: 1.9.1
minecraft_version: 16w21a
minecraft_server_download_url
URL de descarga de Minecraft (predeterminado: https://launcher.mojang.com/v1/objects
)
minecraft_server_download_checksum
Suma de verificación de la URL de descarga de Minecraft
minecraft_user
usuario del sistema bajo el cual corre Minecraft (predeterminado: minecraft
)
minecraft_group
grupo del sistema bajo el cual corre Minecraft (predeterminado: minecraft
)
minecraft_home
directorio donde se instalará Minecraft (predeterminado: /srv/minecraft
)
minecraft_max_memory
memoria máxima de Java (-Xmx
) a asignar (predeterminado: 1024M
)
minecraft_initial_memory
memoria inicial de Java (-Xms
) a asignar (predeterminado: 1024M
)
minecraft_service_name
nombre del servicio systemd o nombre del programa de Supervisor (predeterminado: minecraft
)
minecraft_supervisor_name
DEPRECADO: nombre del programa de Supervisor (predeterminado: {{ minecraft_service_name }}
)
minecraft_process_control
elige entre systemd
y supervisor
(predeterminado: systemd
).
minecraft_whitelist
lista de nombres de usuario de Minecraft a permitir (predeterminado: []
)
minecraft_ops
lista de nombres de usuario de Minecraft para hacer operadores del servidor (predeterminado: []
)
minecraft_banned_players
lista de nombres de usuario de Minecraft a prohibir (predeterminado: []
)
minecraft_banned_ips
lista de direcciones IP a prohibir (predeterminado: []
)
minecraft_server_properties
diccionario de entradas para server.properties
(e.g. server-port: 25565
) a establecer (predeterminado: {}
)
Hooks y etapas de ejecución
ansible-minecraft organiza la ejecución en varias etapas:
setup
- instalar requisitos previos (e.g., Java)
- crear usuario y grupo de Minecraft
download
- obtener la última versión de la API del lanzador
- descargar Minecraft
install
- crear un enlace simbólico a la
minecraft_server.jar
- aceptar el EULA
acl
- configurar ACLs del servidor (whitelist, jugadores prohibidos, etc.)
configure
- establecer
server.properties
start
- (re)iniciar el servidor
Puedes ejecutar tareas personalizadas antes o después de etapas específicas. Simplemente especifica un task include file <https://docs.ansible.com/ansible/playbooks_roles.html#task-include-files-and-encouraging-reuse>
__ usando la variable de rol correspondiente:
.. code:: yaml
- hosts: minecraft
roles:
- role: devops-coop.minecraft
minecraft_hook_before_start: "{{ playbook_dir }}/download-world-from-s3.yml"
Los hooks disponibles son:
minecraft_hook_before_setup
ejecutar antes de las tareas de setup
minecraft_hook_after_setup
ejecutar después de las tareas de setup
minecraft_hook_before_download
ejecutar antes de las tareas de download
minecraft_hook_after_download
ejecutar después de las tareas de download
minecraft_hook_before_install
ejecutar antes de las tareas de install
minecraft_hook_after_install
ejecutar después de las tareas de install
minecraft_hook_before_start
ejecutar antes de las tareas de start
minecraft_hook_after_start
ejecutar después de las tareas de start
Ejemplo
.. code:: yaml
- hosts: minecraft
roles:
- { role: devops-coop.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}
Contribuyendo
Las solicitudes de extracción son bienvenidas. Entre otras características, este rol no tiene soporte para servidores Minecraft personalizados.
Versionado
Este proyecto sigue el versionado semántico.
En el contexto del versionado semántico, considera que el contrato del rol está definido por las variables del rol.
- Los cambios que rompen la compatibilidad o que requieren intervención del usuario aumentarán la versión principal. Esto incluye cambiar el valor predeterminado de una variable de rol.
- Los cambios que no requieren intervención del usuario, pero que añaden nuevas características, aumentarán la versión menor.
- Las correcciones de errores aumentarán la versión de parche.
Provisions a vanilla minecraft or spigot server
ansible-galaxy install totaldebug.minecraft