ansible/roles/minecraft/tasks/main.yml

114 lines
2.4 KiB
YAML

---
- name: Install prequisites
ansible.builtin.package:
name: java-17-openjdk
state: installed
- name: Create group
ansible.builtin.group:
name: minecraft
gid: 307
- name: Create user
ansible.builtin.user:
name: minecraft
comment: Service Minecraft
uid: 307
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: Copy configs
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