src.nth.io/

summaryrefslogtreecommitdiff
path: root/minecraft
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2021-07-18 20:17:16 -0500
committerLuke Hoersten <[email protected]>2021-07-18 20:17:16 -0500
commit769d10b216d52482eca1de9ca9491c3ab8fc3f5f (patch)
tree1e2994544c16a2b3d8aa67a908210c605c141e2f /minecraft
parent9bb76f57d55ca5a9e502a34e504a21904d4157a1 (diff)
Updated minecraft to be multi-world and minimized world size.
Diffstat (limited to 'minecraft')
-rw-r--r--minecraft/aws-s3-backup/files/minecraft-s3-backup-lifecycle.json2
-rw-r--r--minecraft/aws-s3-backup/files/minecraft-s3-backup.sh8
-rw-r--r--minecraft/aws-s3-backup/handlers/main.yaml2
-rw-r--r--minecraft/aws-s3-backup/tasks/main.yaml11
-rw-r--r--minecraft/aws-s3-backup/templates/[email protected]2
-rw-r--r--minecraft/server/defaults/main.yaml6
-rw-r--r--minecraft/server/handlers/main.yaml2
-rw-r--r--minecraft/server/tasks/main.yaml20
-rw-r--r--minecraft/server/templates/[email protected] (renamed from minecraft/server/templates/minecraft.service.j2)6
-rw-r--r--minecraft/server/vars/main.yaml5
10 files changed, 30 insertions, 34 deletions
diff --git a/minecraft/aws-s3-backup/files/minecraft-s3-backup-lifecycle.json b/minecraft/aws-s3-backup/files/minecraft-s3-backup-lifecycle.json
index c408e9b..44036c0 100644
--- a/minecraft/aws-s3-backup/files/minecraft-s3-backup-lifecycle.json
+++ b/minecraft/aws-s3-backup/files/minecraft-s3-backup-lifecycle.json
@@ -5,7 +5,7 @@
"Filter": {},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
- "NoncurrentDays": 5
+ "NoncurrentDays": 30
}
}
]
diff --git a/minecraft/aws-s3-backup/files/minecraft-s3-backup.sh b/minecraft/aws-s3-backup/files/minecraft-s3-backup.sh
index bd6fa08..1e41ae4 100644
--- a/minecraft/aws-s3-backup/files/minecraft-s3-backup.sh
+++ b/minecraft/aws-s3-backup/files/minecraft-s3-backup.sh
@@ -1,10 +1,12 @@
#!/bin/bash
-BUCKET=$1
+BACKUP_WORLD_NAME=$1
BACKUP_DIR=$2
-BACKUP_TAR="/tmp/$BUCKET.tgz"
+BUCKET=$3
+BACKUP_TAR_DIR=$4
+BACKUP_TAR="${BACKUP_TAR_DIR}/${BUCKET}.tgz"
-tar -zc -f $BACKUP_TAR $BACKUP_DIR
+tar -zc -f $BACKUP_TAR -C $BACKUP_DIR $BACKUP_WORLD_NAME {$BACKUP_WORLD_NAME}_nether ${BACKUP_WORLD_NAME}_the_end
aws s3 mb "s3://$BUCKET/"
aws s3api put-bucket-versioning --bucket "$BUCKET" --versioning-configuration Status=Enabled
aws s3api put-bucket-lifecycle-configuration --bucket "$BUCKET" --lifecycle-configuration "file:///usr/local/share/minecraft-s3-backup-lifecycle.json"
diff --git a/minecraft/aws-s3-backup/handlers/main.yaml b/minecraft/aws-s3-backup/handlers/main.yaml
index a931eb4..dde3942 100644
--- a/minecraft/aws-s3-backup/handlers/main.yaml
+++ b/minecraft/aws-s3-backup/handlers/main.yaml
@@ -1,5 +1,5 @@
---
- name: reload s3 backup service
- systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service" enabled="yes" daemon_reload="yes"
+ systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_world_name}}.service" enabled="yes" daemon_reload="yes"
become: yes
diff --git a/minecraft/aws-s3-backup/tasks/main.yaml b/minecraft/aws-s3-backup/tasks/main.yaml
index 2bc68b3..c3818d4 100644
--- a/minecraft/aws-s3-backup/tasks/main.yaml
+++ b/minecraft/aws-s3-backup/tasks/main.yaml
@@ -14,13 +14,20 @@
dest: "/usr/local/share/minecraft-s3-backup-lifecycle.json"
mode: "0755"
+- name: create minecraft tar dir
+ become: yes
+ file:
+ path: "{{minecraft_s3_backup_tar_dir}}"
+ mode: "0755"
+ state: "directory"
+
- name: configure minecraft s3 backup systemd service
become: yes
template:
- dest: "/lib/systemd/system/minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service"
+ dest: "/lib/systemd/system/minecraft-s3-backup@{{minecraft_s3_backup_world_name}}.service"
notify: reload s3 backup service
- name: ensure minecraft s3 backup service is started
become: yes
- systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service" enabled="yes"
+ systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_world_name}}.service" enabled="yes"
diff --git a/minecraft/aws-s3-backup/templates/[email protected] b/minecraft/aws-s3-backup/templates/[email protected]
index 84bfdb7..5be93a9 100644
--- a/minecraft/aws-s3-backup/templates/[email protected]
+++ b/minecraft/aws-s3-backup/templates/[email protected]
@@ -3,7 +3,7 @@ Description=Minecraft s3 backup for "%I"
[Service]
Type=oneshot
-ExecStart=/usr/local/bin/minecraft-s3-backup.sh %i "{{minecraft_s3_backup_dir}}"
+ExecStart=/usr/local/bin/minecraft-s3-backup.sh %i "{{minecraft_s3_backup_dir}}" "{{minecraft_s3_backup_bucket}}" "{{minecraft_s3_backup_tar_dir}}"
[Install]
WantedBy=aws-s3-backup.target
diff --git a/minecraft/server/defaults/main.yaml b/minecraft/server/defaults/main.yaml
index e98b8c7..f7143c5 100644
--- a/minecraft/server/defaults/main.yaml
+++ b/minecraft/server/defaults/main.yaml
@@ -1,7 +1,6 @@
---
minecraft_user: "minecraft"
-minecraft_fork: "vanilla" # paper
minecraft_parent_dir: "/opt"
minecraft_motd: "A Minecraft Server"
minecraft_mem: "2G"
@@ -9,14 +8,13 @@ minecraft_seed: ""
minecraft_difficulty: "hard"
minecraft_whitelist: "true"
minecraft_view_distance: "10"
-
-minecraft_vanilla_hash: "0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e"
+minecraft_world_name: "world"
# https://papermc.io
minecraft_paper_version: "1.17.1"
minecraft_paper_build: "98"
-minecreat_paper_plugins_enabled:
+minecreat_plugins_enabled:
- "dynmap"
- "geyser"
diff --git a/minecraft/server/handlers/main.yaml b/minecraft/server/handlers/main.yaml
index b5baff0..00bb9d3 100644
--- a/minecraft/server/handlers/main.yaml
+++ b/minecraft/server/handlers/main.yaml
@@ -2,4 +2,4 @@
- name: restart minecraft
become: yes
- systemd: name="minecraft.service" state="restarted" daemon_reload="yes"
+ systemd: name="minecraft@{{minecraft_world_name}}.service" state="restarted" daemon_reload="yes"
diff --git a/minecraft/server/tasks/main.yaml b/minecraft/server/tasks/main.yaml
index d80b9cf..a5d3337 100644
--- a/minecraft/server/tasks/main.yaml
+++ b/minecraft/server/tasks/main.yaml
@@ -2,19 +2,11 @@
- name: add minecraft user
become: yes
- user: name="{{minecraft_user}}" home="{{minecraft_dir}}"
+ user: name="{{minecraft_user}}" home="{{minecraft_parent_dir}}/minecraft"
- name: install adoptopenjdk
include_tasks: adoptopenjdk.yaml
-- name: set minecraft fork
- set_fact: minecraft_url="{{minecraft_vanilla_url}}"
- when: minecraft_fork == "vanilla"
-
-- name: set minecraft fork
- set_fact: minecraft_url="{{minecraft_paper_url}}"
- when: minecraft_fork == "paper"
-
- name: create minecraft dir
become: yes
file:
@@ -72,8 +64,7 @@
- name: install plugins
include_tasks: "{{item}}.yaml"
- loop: "{{minecreat_paper_plugins_enabled}}"
- when: minecraft_fork == "paper"
+ loop: "{{minecreat_plugins_enabled}}"
- name: create server.properties
become: yes
@@ -94,6 +85,7 @@
notify: restart minecraft
loop:
- {key: "motd", value: "{{minecraft_motd}}"}
+ - {key: "level-name", value: "{{minecraft_world_name}}"}
- {key: "level-seed", value: "{{minecraft_seed}}"}
- {key: "difficulty", value: "{{minecraft_difficulty}}"}
- {key: "white-list", value: "{{minecraft_whitelist}}"}
@@ -104,10 +96,10 @@
- name: install systemd service
become: yes
template:
- src: "minecraft.service.j2"
- dest: "/lib/systemd/system/minecraft.service"
+ dest: "/lib/systemd/system/[email protected]"
notify: restart minecraft
- name: ensure service is started
become: yes
- systemd: name="minecraft.service" enabled="yes" state="started"
+ systemd: name="minecraft@{{minecraft_world_name}}.service" enabled="yes" state="started"
diff --git a/minecraft/server/templates/minecraft.service.j2 b/minecraft/server/templates/[email protected]
index 0f0e91a..df1defb 100644
--- a/minecraft/server/templates/minecraft.service.j2
+++ b/minecraft/server/templates/[email protected]
@@ -1,14 +1,12 @@
[Unit]
-Description=Minecraft Server
+Description=Minecraft Server %I
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}}
+WorkingDirectory={{minecraft_parent_dir}}/minecraft/%i
Restart=on-failure
RestartSec=20 5
ExecStart=/usr/bin/java -Xms{{minecraft_mem}} -Xmx{{minecraft_mem}} -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
diff --git a/minecraft/server/vars/main.yaml b/minecraft/server/vars/main.yaml
index ded1dc0..cb07da6 100644
--- a/minecraft/server/vars/main.yaml
+++ b/minecraft/server/vars/main.yaml
@@ -1,8 +1,7 @@
---
-minecraft_dir: "{{minecraft_parent_dir}}/minecraft/{{minecraft_fork}}"
-minecraft_paper_url: "https://papermc.io/api/v1/paper/{{minecraft_paper_version}}/{{minecraft_paper_build}}/download"
-minecraft_vanilla_url: "https://launcher.mojang.com/v1/objects/{{minecraft_vanilla_hash}}/server.jar"
+minecraft_dir: "{{minecraft_parent_dir}}/minecraft/{{minecraft_world_name}}"
+minecraft_url: "https://papermc.io/api/v1/paper/{{minecraft_paper_version}}/{{minecraft_paper_build}}/download"
# paper is a spigot derivative
minecraft_dynmap_url: "http://dynmap.us/builds/dynmap/Dynmap-{{minecraft_dynmap_version}}-spigot.jar"