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と8をサポート
- systemdで実行中は、セーフにサーバーを停止
- Github Actionsとmoleculeを使用して統合テストを実行
- ユーザーACLの管理
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
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
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
- サーバーACLを設定します(ホワイトリスト、バンされたプレイヤーなど)
configure
server.properties
を設定します
start
- サーバーを(再)起動します
特定のステージの前後にカスタムタスクを実行することができます。関連する役割変数を使用して、タスクを含めるファイルを指定してください:
.. 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"]}
コントリビュート
プルリクエストは歓迎します。他の機能の中で、この役割はカスタムMinecraftサーバーのサポートが不足しています。
バージョニング
このプロジェクトはセマンティックバージョニングに従います。
セマンティックバージョニングの文脈では、役割の変数によって役割契約が定義されると考えてください。
- ユーザーの介入が必要な重大な変更はメジャーバージョンを増加させます。これは、役割変数のデフォルト値を変更することを含みます。
- ユーザー介入が必要ないが、新しい機能を追加する変更はマイナーバージョンを増加させます。
- バグ修正はパッチバージョンを増加させます。
Provisions a vanilla minecraft or spigot server
ansible-galaxy install totaldebug.minecraft