src.nth.io/

summaryrefslogtreecommitdiff
path: root/minecraft
diff options
context:
space:
mode:
Diffstat (limited to 'minecraft')
-rw-r--r--minecraft/defaults/main.yaml6
-rw-r--r--minecraft/files/eula.txt1
-rw-r--r--minecraft/handlers/main.yaml5
-rw-r--r--minecraft/tasks/main.yaml42
-rw-r--r--minecraft/templates/minecraft.service.j222
-rw-r--r--minecraft/templates/server.properties.j244
6 files changed, 120 insertions, 0 deletions
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