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: 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