totaldebug.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
  • 在 systemd 下安全地使用 stop 停止服务器
  • 使用 Github Actions 和 molecule 运行集成测试
  • 管理用户访问控制列表(ACL)
  • 管理 server.properties
  • 钩子:在执行过程中的特定阶段包含任意任务

角色变量

角色变量

以下变量默认值在 defaults/main.yml 中定义。

minecraft_server_type 选择 minecraftspigot(默认: 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 Minecraft 下载 URL(默认: https://launcher.mojang.com/v1/objects

minecraft_server_download_checksum Minecraft 下载 URL 校验和

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 选择 systemdsupervisor(默认: 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

  • 配置服务器 ACL(白名单、禁止玩家等)

configure

  • 设置 server.properties

start

  • (重新)启动服务器

您可以在特定阶段之前或之后执行自定义任务。只需使用相关的角色变量指定一个 task include file <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_setupsetup 任务之前运行

minecraft_hook_after_setupsetup 任务之后运行

minecraft_hook_before_downloaddownload 任务之前运行

minecraft_hook_after_downloaddownload 任务之后运行

minecraft_hook_before_installinstall 任务之前运行

minecraft_hook_after_installinstall 任务之后运行

minecraft_hook_before_startstart 任务之前运行

minecraft_hook_after_startstart 任务之后运行

示例

.. code:: yaml

- hosts: minecraft
  roles:
     - { role: devops-coop.minecraft, minecraft_whitelist: ["jeb_", "dinnerbone"]}

贡献

欢迎提交拉取请求。除了其他功能外,该角色缺少对自定义 Minecraft 服务器的支持。

版本控制

该项目遵循语义版本控制。

在语义版本控制的上下文中,角色合同由角色变量定义。

  • 破坏性更改或需要用户干预的更改将增加主要版本。这包括更改角色变量的默认值。
  • 不需要用户干预但新增功能的更改将增加次要版本。
  • 修复错误将增加补丁版本。
关于项目

Provisions a vanilla minecraft or spigot server

安装
ansible-galaxy install totaldebug.minecraft
许可证
Unknown
下载
120
拥有者