This is a fork from the https://github.com/devops-coop/ansible-minecraft/ Project, thanks for the basement!!!
This role installs Minecraft or Spigot and configures it to run under systemd.
- supports vanilla Minecraft and Spigot
- supports Debian >9, Ubuntu 14.04, Ubuntu 16.04, Ubuntu 18.04, CentOS 7 & 8, Fedora 29 - 34
- safely stops the server using stop when running under systemd
- uses Docker and Molecule to run integration tests
- manages user ACLs
- manages Bukkit/Spigot Plugins
- manages
server.properties
- hooks: include arbitrary tasks at specific stages during execution
- install a Java Runtime, this must be done, before you use this Role, you can use nolte/ansible-role-msopenjdk for example.
- executing backups and recovery
- healthy checks like Minecraft-Region-Fixer
- handle utility services like filebeat or prometheus
- install additional Tools like rcon-cli.
All of this is needet but not a part of this role!, you will find examples at nolte/minecraft-infrastructure.
By default this role will be install a Vanilla Minecraft Server.
ansible-galaxy install nolte.minecraft
or add this to your requirements.yml
- name: nolte.minecraft
and execute ansible-galaxy install -r requirements.yml
- hosts: minecraft
roles:
- { role: nolte.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}
- Python 3.x on the Ansible control machine to generate user ACLs
- Ansible 2.7.0+ on the control machine to fetch the Minecraft version
- Existing Compatible Java Runtime for start and install Minecraft on target System.
The best way to contribute is to use this role to deploy your own Minecraft server! We really appreciate bug reports from the wild.
If you'd like to help with the project itself, here are some other ways you can contribute:
- Add support for additional servers like Cuberite.
- Write integration tests for Minecraft- or Spigot-specific configuration.
- Share useful hooks.
- Fixing Typos ...
Apache 2.0
To execute an automatic installation you must accept the Minecraft EULA. Be aware that by using this role, you implicitly accept the same EULA.
You can handle the acception by using a Environment Property like: export mc_accept_eula=true
the default is false
for disagree.