minecraft
ansible-role-minecraft
Эта роль устанавливает Minecraft или Spigot и настраивает его для работы под управлением systemd или Supervisor.
Благодарности devops-coop, который создал большую часть этого релиза.
Установка
ansible-galaxy install totaldebug.minecraft
Особенности
- поддерживает стандартный Minecraft и Spigot
- поддерживает Debian 10, Ubuntu 18.04, RHEL/CentOS 7 и RHEL/CentOS 8
- безопасно останавливает сервер с помощью команды stop при работе под управлением systemd
- Использует Github Actions и molecule для проведения интеграционных тестов
- управляет правами пользователей
- управляет
server.properties
- хуки: включите произвольные задачи на определенных этапах выполнения
Переменные роли
Переменные роли
Следующие значения по умолчанию определены в defaults/main.yml
.
minecraft_server_type
выбрать между minecraft
или spigot
(по умолчанию: minecraft
)
minecraft_version
версия Minecraft для установки (по умолчанию: latest
)
Примеры:
.. code:: yaml
minecraft_version: latest
minecraft_version: 1.10
minecraft_version: 1.9.1
minecraft_version: 16w21a
minecraft_server_download_url
URL для скачивания Minecraft (по умолчанию:
https://launcher.mojang.com/v1/objects
)
minecraft_server_download_checksum
Контрольная сумма URL для скачивания Minecraft
minecraft_user
системный пользователь, от имени которого запускается Minecraft (по умолчанию: minecraft
)
minecraft_group
системная группа, от имени которой запускается Minecraft (по умолчанию: minecraft
)
minecraft_home
директория для установки Minecraft (по умолчанию: /srv/minecraft
)
minecraft_max_memory
максимальная память Java (-Xmx
) для выделения (по умолчанию: 1024M
)
minecraft_initial_memory
начальная память Java (-Xms
) для выделения (по умолчанию: 1024M
)
minecraft_service_name
имя службы systemd или программа Supervisor (по умолчанию: minecraft
)
minecraft_supervisor_name
УСТАРЕЛО: имя программы Supervisor (по умолчанию: {{ minecraft_service_name }}
)
minecraft_process_control
Выберите между systemd
и supervisor
(по умолчанию: systemd
).
minecraft_whitelist
список имен пользователей Minecraft для белого списка (по умолчанию: []
)
minecraft_ops
список имен пользователей Minecraft для назначения прав администратора на сервере (по умолчанию: []
)
minecraft_banned_players
список имен пользователей Minecraft для блокировки (по умолчанию: []
)
minecraft_banned_ips
список IP-адресов для блокировки (по умолчанию: []
)
minecraft_server_properties
словарь записей server.properties (например, server-port: 25565
) для установки (по умолчанию: {}
)
Хуки и стадии выполнения
ansible-minecraft организует выполнение в несколько стадий:
setup
- установка необходимых зависимостей (например, Java)
- создание пользователя и группы Minecraft
download
- получение последней версии с API лаунчера
- загрузка Minecraft
install
- создание симлинка на версию в
minecraft_server.jar
- согласие с EULA
acl
- конфигурация прав доступа сервера (белый список, заблокированные игроки и т.д.)
configure
- установка
server.properties
start
- (пере)запуск сервера
Вы можете выполнить пользовательские задачи до или после определенных стадий. Просто укажите файл включения задачи https://docs.ansible.com/ansible/playbooks_roles.html#task-include-files-and-encouraging-reuse с использованием соответствующей переменной роли:
.. code:: yaml
- hosts: minecraft
roles:
- role: devops-coop.minecraft
minecraft_hook_before_start: "{{ playbook_dir }}/download-world-from-s3.yml"
Доступные хуки:
minecraft_hook_before_setup
выполнить перед задачами setup
minecraft_hook_after_setup
выполнить после задач setup
minecraft_hook_before_download
выполнить перед задачами download
minecraft_hook_after_download
выполнить после задач download
minecraft_hook_before_install
выполнить перед задачами install
minecraft_hook_after_install
выполнить после задач install
minecraft_hook_before_start
выполнить перед задачами start
minecraft_hook_after_start
выполнить после задач start
Пример
.. code:: yaml
- hosts: minecraft
roles:
- { role: devops-coop.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}
Участие в проекте
Pull-запросы приветствуются. Среди прочих возможностей, у этой роли нет поддержки для пользовательских серверов Minecraft.
Версии
Этот проект следует семантическому версионированию.
В контексте семантического версионирования, контракт роли определяется переменными роли.
- Ломающее изменения или изменения, требующие вмешательства пользователя, увеличивают мажорную версию. Это включает изменение значения по умолчанию переменной роли.
- Изменения, не требующие вмешательства пользователя, но добавляющие новые функции, увеличивают минорную версию.
- Исправления ошибок увеличивают патч-версию.
Provisions a vanilla minecraft or spigot server
ansible-galaxy install totaldebug/ansible-role-minecraft