ansible/roles/minecraft/tasks/main.yml
2020-11-20 04:09:09 -06:00

83 lines
3.7 KiB
YAML

#!/usr/bin/ansible-playbook
# vim:ft=ansible:
---
- name: set up system
block:
- name: install required packages
apt: name="{{ minecraft_packages + minecraft_packages_extra }}"
- name: assure server user
user: name=minecraft system=yes home={{ minecraft_home }}
- name: assure operational directory
file: path={{ minecraft_home }} state=directory owner=minecraft group=minecraft mode="3775"
- name: assure systemd unit
template: src=minecraft@.service dest=/etc/systemd/system/minecraft@.service
notify: "restart minecraft {{ minecraft_name }}"
- name: set up minecraft
block:
- name: assure server directory
file: path={{ minecraft_home }}/{{ minecraft_name }} state=directory
- name: accept eula
template: src=eula.txt dest={{ minecraft_home }}/{{ minecraft_name }}/eula.txt
- name: configure server properties
lineinfile:
dest: "{{ minecraft_home }}/{{ minecraft_name }}/server.properties"
line: "{{ item.opt }}={{ item.value }}"
regex: "^{{ item.opt }}=.*"
create: yes
loop: "{{ minecraft_server_properties }}"
notify: "restart minecraft {{ minecraft_name }}"
become: yes
become_user: minecraft
- name: set up paper
block:
- name: download paper
get_url: url={{ minecraft_paper_downloadurl }} dest={{ minecraft_home }}/{{ minecraft_name }}/server.jar
notify: "restart minecraft {{ minecraft_name }}"
# TODO: Manage configs for plugins, auto-install plugins
become: yes
become_user: minecraft
when: minecraft_fabric_install
- name: set up forge
block:
- name: template out modpack installer
template: src=install-modpack.sh dest={{ minecraft_home }}/{{ minecraft_name }}/install-modpack.sh mode="0755"
- name: download forge
get_url: dest={{ minecraft_home }}/{{ minecraft_name }}/installer.jar url={{ minecraft_forge_downloadurl }}
register: download_forge
- name: install forge
command:
chdir: "{{ minecraft_home }}/{{ minecraft_name }}"
argv: [ "/usr/bin/java", "-jar", "./installer.jar", "--installServer" ]
notify: restart minecraft {{ minecraft_name }}
when: download_forge is changed
- name: link to forge jar
file: path={{ minecraft_home }}/{{ minecraft_name }}/server.jar src=forge-{{ minecraft_version }}-{{ minecraft_forge_version }}.jar state=link
- name: install modpack
block:
- name: download modpack
get_url: dest={{ minecraft_home }}/{{ minecraft_name }}/modpack.zip url={{ minecraft_forge_packurl }}
register: download_modpack
- name: install modpack
block:
- name: assure modpack unzip directory
file: path={{ minecraft_home }}/{{ minecraft_name }}/modpack state=directory
- name: unpack zip
unarchive: src={{ minecraft_home }}/{{ minecraft_name }}/modpack.zip dest={{ minecraft_home }}/{{ minecraft_name }}/modpack remote_src=yes
- name: run installer
command:
chdir: "{{ minecraft_home }}/{{ minecraft_name }}"
argv: [ "bash", "./install-modpack.sh" ]
notify: "restart minecraft {{ minecraft_name }}"
when: download_modpack is changed
when: minecraft_forge_packurl is defined
- name: install mods
get_url: dest="{{ minecraft_home }}/{{ minecraft_name }}/mods" url={{ item }}
loop: "{{ minecraft_forge_mods }}"
notify: restart minecraft {{ minecraft_name }}
when: minecraft_forge_mods is iterable and minecraft_forge_mods != None
become: yes
become_user: minecraft
when: minecraft_forge_install and minecraft_forge_version is defined
- name: enable service
systemd: name=minecraft@{{ minecraft_name }}.service enabled=yes state=started