minecraft: First vesion of ole

This commit is contained in:
Timo Makinen 2022-03-07 23:42:54 +00:00
parent 72c0b43efc
commit 7b9f2a2dfc
5 changed files with 183 additions and 0 deletions

View file

@ -0,0 +1,2 @@
---
minecraft_sha1sum: c8f83c5655308435b3dcf03c06d9fe8740a77469

View file

@ -0,0 +1,12 @@
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/srv/minecraft
ExecStart=/usr/bin/java -Xmx2048M -Xms1024M -jar /usr/local/lib/minecraft/server.jar nogui
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,54 @@
#Minecraft server properties
#Mon Mar 07 18:44:22 UTC 2022
enable-jmx-monitoring=false
rcon.port=25575
level-seed=
gamemode=survival
enable-command-block=false
enable-query=false
generator-settings={}
level-name=world
motd=A Minecraft Server
query.port=25565
pvp=true
generate-structures=true
difficulty=easy
network-compression-threshold=256
require-resource-pack=false
max-tick-time=60000
use-native-transport=true
max-players=20
online-mode=true
enable-status=true
allow-flight=false
broadcast-rcon-to-ops=true
view-distance=10
server-ip=
resource-pack-prompt=
allow-nether=true
server-port=25565
enable-rcon=false
sync-chunk-writes=true
op-permission-level=4
prevent-proxy-connections=false
hide-online-players=false
resource-pack=
entity-broadcast-range-percentage=100
simulation-distance=10
rcon.password=
player-idle-timeout=0
force-gamemode=false
rate-limit=0
hardcore=false
white-list=false
broadcast-console-to-ops=true
spawn-npcs=true
spawn-animals=true
function-permission-level=2
level-type=default
text-filtering-config=
spawn-monsters=true
enforce-whitelist=false
resource-pack-sha1=
spawn-protection=16
max-world-size=29999984

View file

@ -0,0 +1,114 @@
---
- name: install prequisites
ansible.builtin.package:
name: java-17-openjdk
state: installed
- name: create group
ansible.builtin.group:
name: minecraft
gid: 1007
- name: create user
ansible.builtin.user:
name: minecraft
comment: Service Minecraft
uid: 1007
group: minecraft
create_home: false
home: /var/empty
shell: /sbin/nologin
- name: create data directory
ansible.builtin.file:
path: /export/minecraft
state: directory
mode: 0750
owner: root
group: minecraft
- name: link data directory
ansible.builtin.file:
path: /srv/minecraft
src: /export/minecraft
state: link
follow: false
owner: root
group: "{{ ansible_wheel }}"
- name: create writable data directories
ansible.builtin.file:
path: "/srv/minecraft/{{ item }}"
state: directory
mode: 0770
owner: root
group: minecraft
with_items:
- crash-reports
- libraries
- logs
- versions
- world
- name: accept eula
ansible.builtin.copy:
dest: /srv/minecraft/eula.txt
content: |
eula=true
mode: 0640
owner: root
group: minecraft
- name: create server config
ansible.builtin.copy:
dest: /srv/minecraft/server.properties
src: server.properties
mode: 0640
owner: root
group: minecraft
- name: "create {{ item }}"
ansible.builtin.copy:
dest: "/srv/minecraft/{{ item }}"
content: []
force: false
mode: 0660
owner: root
group: minecraft
with_items:
- banned-ips.json
- banned-players.json
- ops.json
- whitelist.json
- name: create minecraft binary directory
ansible.builtin.file:
path: /usr/local/lib/minecraft
state: directory
mode: 0755
owner: root
group: "{{ ansible_wheel }}"
- name: download minecraft binary
ansible.builtin.get_url:
dest: /usr/local/lib/minecraft/server.jar
url: >-
https://launcher.mojang.com/v1/objects/{{ minecraft_sha1sum }}/server.jar
checksum: "sha1:{{ minecraft_sha1sum }}"
mode: 0644
owner: root
group: "{{ ansible_wheel }}"
- name: create service unit file
ansible.builtin.copy:
dest: /etc/systemd/system/minecraft.service
src: minecraft.service
mode: 0644
owner: root
group: "{{ ansible_wheel }}"
- name: enable service
ansible.builtin.service:
name: minecraft
enabled: true
state: started

View file

@ -12,3 +12,4 @@ id user group notes
1004 docker docker docker registry 1004 docker docker docker registry
1005 backup backup 1005 backup backup
1006 mongod mongod 1006 mongod mongod
1007 minecraft minecraft