diff --git a/group_vars/all.yml b/group_vars/all.yml index 559b055..a2bfa47 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -153,16 +153,19 @@ 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_port: "25565" minecraft_memory: "4G" minecraft_version: "1.21.1" minecraft_type: "NEOFORGE" minecraft_eula: "true" -minecraft_motd: "NeoForge Minecraft @ zailon.ru" +minecraft_motd: "Minecraft @ zailon.ru" minecraft_online_mode: "true" +minecraft_mods: + - "https://mediafilez.forgecdn.net/files/7178/775/create-1.21.1-6.0.8.jar" # ------------ manage (192.168.1.228) ------------ meshcentral_base_dir: "/opt/meshcentral" diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml index 7ec023f..4fc8037 100644 --- a/roles/minecraft/tasks/main.yml +++ b/roles/minecraft/tasks/main.yml @@ -1,5 +1,5 @@ --- -- name: Ensure Minecraft NeoForge directories exist +- name: Ensure Minecraft directories exist ansible.builtin.file: path: "{{ item }}" state: directory @@ -10,7 +10,15 @@ - "{{ minecraft_base_dir }}" - "{{ minecraft_data_dir }}" -- name: Deploy docker-compose.yml for NeoForge Minecraft +- name: Deploy mods.txt from template + ansible.builtin.template: + src: mods.txt.j2 + dest: "{{ minecraft_mods_file }}" + owner: root + group: root + mode: '0644' + +- name: Deploy docker-compose.yml ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ minecraft_base_dir }}/docker-compose.yml" @@ -18,7 +26,7 @@ group: root mode: '0640' -- name: Start Minecraft NeoForge via docker compose +- name: Start Minecraft via docker compose ansible.builtin.shell: | docker compose -f "{{ minecraft_base_dir }}/docker-compose.yml" up -d args: diff --git a/roles/minecraft/templates/docker-compose.yml.j2 b/roles/minecraft/templates/docker-compose.yml.j2 index 36d7cea..f8aea62 100644 --- a/roles/minecraft/templates/docker-compose.yml.j2 +++ b/roles/minecraft/templates/docker-compose.yml.j2 @@ -2,20 +2,28 @@ version: '3.8' services: minecraft: image: itzg/minecraft-server:latest - container_name: minecraft-neoforge + container_name: minecraft 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 }}" + SERVER_NAME: "Olimp-Minecraft-Server" + EULA: "{{ minecraft_eula }}" + TYPE: "{{ minecraft_type }}" + VERSION: "{{ minecraft_version }}" + MEMORY: "{{ minecraft_memory }}" + MOTD: "{{ minecraft_motd }}" + ONLINE_MODE: "{{ minecraft_online_mode }}" + SPAWN_ANIMALS: "true" + SPAWN_MONSTERS: "true" + PVP: "FALSE" + TZ: "{{ timezone }}" + GUI: "FALSE" + MODS_FILE: /extras/mods.txt volumes: - "{{ minecraft_data_dir }}:/data" + - "{{ minecraft_mods_file }}:/extras/mods.txt:ro" networks: - minecraft-net diff --git a/roles/minecraft/templates/mods.txt.j2 b/roles/minecraft/templates/mods.txt.j2 new file mode 100644 index 0000000..77e4a4e --- /dev/null +++ b/roles/minecraft/templates/mods.txt.j2 @@ -0,0 +1,3 @@ +{%- for mod_url in minecraft_mods %} +{{ mod_url }} +{%- endfor %} \ No newline at end of file