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