61 lines
2.2 KiB
YAML
61 lines
2.2 KiB
YAML
#!/usr/bin/ansible-playbook
|
|
# vim:ft=ansible:
|
|
---
|
|
- name: Set up Paper server
|
|
block:
|
|
- name: Set up system
|
|
block:
|
|
- name: Install required packages
|
|
apt:
|
|
name:
|
|
- openjdk-8-jre
|
|
- screen
|
|
- name: Assure server user
|
|
user:
|
|
name: minecraft-paper
|
|
system: yes
|
|
home: "{{ paper_home }}"
|
|
- name: Assure var directory
|
|
file:
|
|
path: "{{ paper_home }}"
|
|
state: directory
|
|
owner: minecraft-paper
|
|
group: minecraft-paper
|
|
# Sticky, SetGID
|
|
mode: "3775"
|
|
- name: Assure systemd unit
|
|
template:
|
|
src: "paper@.service"
|
|
dest: /etc/systemd/system/paper@.service
|
|
notify: "restart paper {{ paper_name }}"
|
|
- name: Set up server "{{ paper_name }}"
|
|
block:
|
|
- name: Assure server directory
|
|
file:
|
|
path: "{{ paper_home }}/{{ paper_name }}"
|
|
state: directory
|
|
owner: minecraft-paper
|
|
group: minecraft-paper
|
|
- name: Configure server.properties
|
|
template: src=server.properties dest="{{ paper_home }}/{{ paper_name }}/server.properties"
|
|
notify: "restart paper {{ paper_name }}"
|
|
- name: Accept EULA
|
|
template: src=eula.txt dest="{{ paper_home }}/{{ paper_name }}/eula.txt" mode="0644"
|
|
- name: Download Paper
|
|
get_url: url="{{ paper_downloadurl }}" dest="{{ paper_home }}/{{ paper_name }}/server.jar"
|
|
notify: "restart paper {{ paper_name }}"
|
|
- name: Template out hourly backup job
|
|
template: src=hourly.sh dest="{{ paper_home }}/{{ paper_name }}/hourly.sh" mode="0775"
|
|
- name: Set up hourly backup job
|
|
cron: minute="0" name="{{ paper_name }}-nightly" job="{{ paper_home }}/{{ paper_name }}/hourly.sh"
|
|
become: yes
|
|
become_user: minecraft-paper
|
|
- name: Enable service
|
|
systemd: name="paper@{{ paper_name }}" enabled=yes state=started
|
|
- name: Template out backup module
|
|
template:
|
|
src: backup.sh
|
|
dest: "/opt/backups/modules/paper-{{ paper_name }}.sh"
|
|
mode: "0600"
|
|
become: yes
|