src.nth.io/

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2020-05-30 20:57:42 -0500
committerLuke Hoersten <[email protected]>2020-05-30 20:57:42 -0500
commit1e68b7ce8921b66c13d04f814cd514b02353b94a (patch)
treece99d5ad9d3eab1b70690954ec6caa558837d3a6
parent514749e194806ca298783265c0e19d8370c8f6b6 (diff)
Added papermc role.
-rw-r--r--papermc/defaults/main.yaml10
-rw-r--r--papermc/files/eula.txt1
-rw-r--r--papermc/files/ops.json8
-rw-r--r--papermc/handlers/main.yaml5
-rw-r--r--papermc/tasks/main.yaml66
-rw-r--r--papermc/templates/papermc.service.j222
6 files changed, 112 insertions, 0 deletions
diff --git a/papermc/defaults/main.yaml b/papermc/defaults/main.yaml
new file mode 100644
index 0000000..39cc3cd
--- /dev/null
+++ b/papermc/defaults/main.yaml
@@ -0,0 +1,10 @@
+---
+
+papermc_user: "papermc"
+papermc_version: "1.15.2"
+papermc_build: "327"
+papermc_url: "https://papermc.io/api/v1/paper/{{papermc_version}}/{{papermc_build}}/download"
+papermc_dir: "/opt/papermc"
+papermc_motd: "A Minecraft Server"
+papermc_mem: "2G"
+papermc_world_dir: "{{papermc_dir}}"
diff --git a/papermc/files/eula.txt b/papermc/files/eula.txt
new file mode 100644
index 0000000..02dccd9
--- /dev/null
+++ b/papermc/files/eula.txt
@@ -0,0 +1 @@
+eula=true
diff --git a/papermc/files/ops.json b/papermc/files/ops.json
new file mode 100644
index 0000000..8ef1e5f
--- /dev/null
+++ b/papermc/files/ops.json
@@ -0,0 +1,8 @@
+[
+ {
+ "uuid": "98827ef9-601c-49fd-b575-abc8de019854",
+ "name": "Lukemute",
+ "level": 4,
+ "bypassesPlayerLimit": true
+ }
+] \ No newline at end of file
diff --git a/papermc/handlers/main.yaml b/papermc/handlers/main.yaml
new file mode 100644
index 0000000..d38cca1
--- /dev/null
+++ b/papermc/handlers/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: restart papermc
+ become: yes
+ systemd: name="papermc.service" state="restarted" daemon_reload="yes"
diff --git a/papermc/tasks/main.yaml b/papermc/tasks/main.yaml
new file mode 100644
index 0000000..9cb50ab
--- /dev/null
+++ b/papermc/tasks/main.yaml
@@ -0,0 +1,66 @@
+---
+
+- name: add papermc user
+ become: yes
+ user: name="{{papermc_user}}" home="{{papermc_dir}}"
+
+- name: install jre
+ become: yes
+ apt: name="default-jre-headless"
+
+- name: download papermc
+ become: yes
+ get_url:
+ url: "{{papermc_url}}"
+ dest: "{{papermc_dir}}/server.jar"
+ mode: "0755"
+ notify: restart papermc
+
+- name: configure eula and ops
+ become: yes
+ copy:
+ src: "{{item}}"
+ dest: "{{papermc_dir}}/{{item}}"
+ owner: "{{papermc_user}}"
+ group: "{{papermc_user}}"
+ loop:
+ - "eula.txt"
+ - "ops.json"
+ notify: restart papermc
+
+- name: set motd
+ become: yes
+ lineinfile:
+ path: "{{papermc_dir}}/server.properties"
+ regexp: "^motd="
+ line: "motd={{papermc_motd}}"
+ notify: restart papermc
+
+- name: create world file directory
+ become: yes
+ file:
+ path: "{{papermc_world_dir}}"
+ state: "directory"
+ owner: "{{papermc_user}}"
+ group: "{{papermc_user}}"
+ mode: "0755"
+
+- name: set world files
+ become: yes
+ lineinfile:
+ path: "{{papermc_dir}}/bukkit.yml"
+ regexp: "^ world-container:"
+ line: " world-container: {{papermc_world_dir}}"
+ insertbefore: "^ permissions-file:"
+ notify: restart papermc
+
+- name: install systemd service
+ become: yes
+ template:
+ src: "papermc.service.j2"
+ dest: "/lib/systemd/system/papermc.service"
+ notify: restart papermc
+
+- name: ensure service is started
+ become: yes
+ systemd: name="papermc.service" enabled="yes" state="started"
diff --git a/papermc/templates/papermc.service.j2 b/papermc/templates/papermc.service.j2
new file mode 100644
index 0000000..942ac6d
--- /dev/null
+++ b/papermc/templates/papermc.service.j2
@@ -0,0 +1,22 @@
+[Unit]
+Description=PaperMC Server
+Documentation=https://paper.readthedocs.io/en/latest/server/getting-started.html
+
+Wants=network.target
+After=network.target
+
+[Service]
+User={{papermc_user}}
+Group={{papermc_user}}
+WorkingDirectory={{papermc_dir}}
+Restart=on-failure
+RestartSec=20 5
+ExecStart=/usr/bin/java -Xms{{papermc_mem}} -Xmx{{papermc_mem}} -jar server.jar
+
+PrivateTmp=true
+ProtectSystem=full
+NoNewPrivileges=true
+PrivateDevices=true
+
+[Install]
+WantedBy=multi-user.target