From 34567048dcba29e94514987636d38ae93d435686 Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Tue, 12 May 2020 21:24:25 -0500 Subject: Added minecraft server role. --- minecraft/defaults/main.yaml | 6 +++++ minecraft/files/eula.txt | 1 + minecraft/handlers/main.yaml | 5 ++++ minecraft/tasks/main.yaml | 42 ++++++++++++++++++++++++++++++ minecraft/templates/minecraft.service.j2 | 22 ++++++++++++++++ minecraft/templates/server.properties.j2 | 44 ++++++++++++++++++++++++++++++++ 6 files changed, 120 insertions(+) create mode 100644 minecraft/defaults/main.yaml create mode 100644 minecraft/files/eula.txt create mode 100644 minecraft/handlers/main.yaml create mode 100644 minecraft/tasks/main.yaml create mode 100644 minecraft/templates/minecraft.service.j2 create mode 100644 minecraft/templates/server.properties.j2 (limited to 'minecraft') diff --git a/minecraft/defaults/main.yaml b/minecraft/defaults/main.yaml new file mode 100644 index 0000000..b4d5ceb --- /dev/null +++ b/minecraft/defaults/main.yaml @@ -0,0 +1,6 @@ +--- + +minecraft_user: "minecraft" +minecraft_url: "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar" +minecraft_dir: "/opt/minecraft" +minecraft_motd: "" diff --git a/minecraft/files/eula.txt b/minecraft/files/eula.txt new file mode 100644 index 0000000..02dccd9 --- /dev/null +++ b/minecraft/files/eula.txt @@ -0,0 +1 @@ +eula=true diff --git a/minecraft/handlers/main.yaml b/minecraft/handlers/main.yaml new file mode 100644 index 0000000..b5baff0 --- /dev/null +++ b/minecraft/handlers/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: restart minecraft + become: yes + systemd: name="minecraft.service" state="restarted" daemon_reload="yes" diff --git a/minecraft/tasks/main.yaml b/minecraft/tasks/main.yaml new file mode 100644 index 0000000..911663a --- /dev/null +++ b/minecraft/tasks/main.yaml @@ -0,0 +1,42 @@ +--- + +- name: add minecract user + become: yes + user: name="{{minecraft_user}}" home="{{minecraft_dir}}" + +- name: install jre + become: yes + apt: name="default-jre-headless" + +- name: download minecraft + become: yes + get_url: + url: "{{minecraft_url}}" + dest: "{{minecraft_dir}}/server.jar" + mode: "0755" + notify: restart minecraft + +- name: configure eula + become: yes + copy: + src: "eula.txt" + dest: "{{minecraft_dir}}/eula.txt" + +- name: configure minecraft + become: yes + template: + src: "server.properties.j2" + dest: "{{minecraft_dir}}/server.properties" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + notify: restart minecraft + +- name: install systemd service + become: yes + template: + src: "minecraft.service.j2" + dest: "/lib/systemd/system/minecraft.service" + +- name: ensure service is started + become: yes + systemd: name="minecraft.service" enabled="yes" state="started" diff --git a/minecraft/templates/minecraft.service.j2 b/minecraft/templates/minecraft.service.j2 new file mode 100644 index 0000000..d310634 --- /dev/null +++ b/minecraft/templates/minecraft.service.j2 @@ -0,0 +1,22 @@ +[Unit] +Description=Minecraft Server +Documentation=https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server + +Wants=network.target +After=network.target + +[Service] +User={{minecraft_user}} +Group={{minecraft_user}} +WorkingDirectory={{minecraft_dir}} +Restart=on-failure +RestartSec=20 5 +ExecStart=/usr/bin/java -Xms1536M -Xmx1536M -jar server.jar nogui + +PrivateTmp=true +ProtectSystem=full +NoNewPrivileges=true +PrivateDevices=true + +[Install] +WantedBy=multi-user.target diff --git a/minecraft/templates/server.properties.j2 b/minecraft/templates/server.properties.j2 new file mode 100644 index 0000000..b2a8411 --- /dev/null +++ b/minecraft/templates/server.properties.j2 @@ -0,0 +1,44 @@ +broadcast-rcon-to-ops=true +view-distance=10 +max-build-height=256 +server-ip= +level-seed= +rcon.port=25575 +gamemode=survival +server-port=25565 +allow-nether=true +enable-command-block=false +enable-rcon=false +enable-query=false +op-permission-level=4 +prevent-proxy-connections=false +generator-settings= +resource-pack= +level-name=world +rcon.password= +player-idle-timeout=0 +motd={{minecraft_motd}} +query.port=25565 +force-gamemode=false +hardcore=false +white-list=false +broadcast-console-to-ops=true +pvp=true +spawn-npcs=true +generate-structures=true +spawn-animals=true +snooper-enabled=true +difficulty=easy +function-permission-level=2 +network-compression-threshold=256 +level-type=default +spawn-monsters=true +max-tick-time=60000 +enforce-whitelist=false +use-native-transport=true +max-players=20 +resource-pack-sha1= +spawn-protection=16 +online-mode=true +allow-flight=false +max-world-size=29999984 -- cgit v1.2.3