From 9f6f9e4ee831cb4ea2f70f3ca5eae8354ecfce3b Mon Sep 17 00:00:00 2001 From: Administrator Date: Tue, 4 Nov 2025 12:07:10 +0000 Subject: [PATCH] Update 4 files - /group_vars/all.yml - /roles/minecraft/templates/docker-compose.yml.j2 - /roles/minecraft-neoforge/tasks/main.yml - /olimp-deploy.yml --- group_vars/all.yml | 11 ++++++++ olimp-deploy.yml | 9 +++++-- roles/minecraft-neoforge/tasks/main.yml | 27 +++++++++++++++++++ .../minecraft/templates/docker-compose.yml.j2 | 24 +++++++++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 roles/minecraft-neoforge/tasks/main.yml create mode 100644 roles/minecraft/templates/docker-compose.yml.j2 diff --git a/group_vars/all.yml b/group_vars/all.yml index 3a95034..559b055 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -152,6 +152,17 @@ teamspeak_logs_dir: "{{ teamspeak_base_dir }}/logs" teamspeak_query_port: "10011" teamspeak_voice_port: "9987" teamspeak_file_port: "30033" +# ------------ games (192.168.1.208) ------------ +# Minecraft +minecraft_base_dir: "/mnt/minecraft" +minecraft_data_dir: "{{ minecraft_base_dir }}/data" +minecraft_port: "45131" +minecraft_memory: "4G" +minecraft_version: "1.21.1" +minecraft_type: "NEOFORGE" +minecraft_eula: "true" +minecraft_motd: "NeoForge Minecraft @ zailon.ru" +minecraft_online_mode: "true" # ------------ manage (192.168.1.228) ------------ meshcentral_base_dir: "/opt/meshcentral" diff --git a/olimp-deploy.yml b/olimp-deploy.yml index 464d998..a7ee16b 100644 --- a/olimp-deploy.yml +++ b/olimp-deploy.yml @@ -1,7 +1,7 @@ --- - hosts: all roles: - - {role: base_setup, tags: deploy_base} + - {role: base_setup, tags: deploy_base} - {role: system_cleanup, tags: deploy_cleanup} - hosts: gateway-server @@ -29,7 +29,7 @@ - hosts: photo-server roles: - { role: docker, tags: deploy_docker } - - { role: immich, tags: deploy_immich } + - { role: immich, tags: deploy_immich } - hosts: talk-server vars_files: @@ -39,6 +39,11 @@ - { role: mumble, tags: deploy_mumble } - { role: matrix, tags: deploy_matrix } - { role: teamspeak, tags: deploy_teamspeak } + +- hosts: games-server + roles: + - { role: docker, tags: deploy_docker } + - { role: minecraft, tags: deploy_minecraft } - hosts: manage-server roles: diff --git a/roles/minecraft-neoforge/tasks/main.yml b/roles/minecraft-neoforge/tasks/main.yml new file mode 100644 index 0000000..7ec023f --- /dev/null +++ b/roles/minecraft-neoforge/tasks/main.yml @@ -0,0 +1,27 @@ +--- +- name: Ensure Minecraft NeoForge directories exist + ansible.builtin.file: + path: "{{ item }}" + state: directory + owner: root + group: root + mode: '0755' + loop: + - "{{ minecraft_base_dir }}" + - "{{ minecraft_data_dir }}" + +- name: Deploy docker-compose.yml for NeoForge Minecraft + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: "{{ minecraft_base_dir }}/docker-compose.yml" + owner: root + group: root + mode: '0640' + +- name: Start Minecraft NeoForge via docker compose + ansible.builtin.shell: | + docker compose -f "{{ minecraft_base_dir }}/docker-compose.yml" up -d + args: + chdir: "{{ minecraft_base_dir }}" + register: compose_result + changed_when: "'Recreating' in compose_result.stdout or 'Creating' in compose_result.stdout" \ No newline at end of file diff --git a/roles/minecraft/templates/docker-compose.yml.j2 b/roles/minecraft/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..36d7cea --- /dev/null +++ b/roles/minecraft/templates/docker-compose.yml.j2 @@ -0,0 +1,24 @@ +version: '3.8' +services: + minecraft: + image: itzg/minecraft-server:latest + container_name: minecraft-neoforge + restart: unless-stopped + ports: + - "{{ minecraft_port }}:25565/tcp" + - "{{ minecraft_port }}:25565/udp" + environment: + EULA: "{{ minecraft_eula }}" + TYPE: "{{ minecraft_type }}" + VERSION: "{{ minecraft_version }}" + MEMORY: "{{ minecraft_memory }}" + MOTD: "{{ minecraft_motd }}" + ONLINE_MODE: "{{ minecraft_online_mode }}" + volumes: + - "{{ minecraft_data_dir }}:/data" + networks: + - minecraft-net + +networks: + minecraft-net: + driver: bridge \ No newline at end of file