75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
#!/usr/bin/ansible-playbook
|
|
# vim:ft=ansible:
|
|
---
|
|
- name: Set up TES3MP
|
|
block:
|
|
- name: Set up system
|
|
block:
|
|
- name: Install required packages
|
|
apt:
|
|
name:
|
|
- libluajit-5.1-2
|
|
- name: Create user
|
|
user:
|
|
name: tes3mp
|
|
password: "!"
|
|
system: yes
|
|
home: "{{ tes3mp.dest }}"
|
|
- name: Template out service
|
|
template:
|
|
src: "tes3mp@.service"
|
|
dest: "/etc/systemd/system/tes3mp@.service"
|
|
register: t_service
|
|
notify: "restart tes3mp {{ tes3mp.name }}"
|
|
- name: Reload daemons
|
|
systemd:
|
|
daemon_reload: yes
|
|
when: t_service is changed
|
|
- name: Set up TES3MP
|
|
block:
|
|
- name: Create server directory
|
|
file:
|
|
path: "{{ tes3mp.dest }}/{{ tes3mp.name }}"
|
|
state: directory
|
|
owner: tes3mp
|
|
group: tes3mp
|
|
- name: Download archive
|
|
get_url:
|
|
dest: "{{ tes3mp.dest }}/{{ tes3mp.name }}-archive.tar.gz"
|
|
url: "{{ tes3mp.archive }}"
|
|
register: get_archive
|
|
- name: Install server
|
|
block:
|
|
- name: Stop service
|
|
systemd:
|
|
name: "tes3mp@{{ tes3mp.name }}"
|
|
state: stopped
|
|
- name: Unpack zip
|
|
unarchive:
|
|
src: "{{ tes3mp.dest }}/{{ tes3mp.name }}-archive.tar.gz"
|
|
remote_src: yes
|
|
dest: "{{ tes3mp.dest }}/{{ tes3mp.name }}"
|
|
when: get_archive is changed
|
|
- name: Configure server
|
|
template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ tes3mp.dest }}/{{ tes3mp.name }}/{{ item.dest }}"
|
|
loop:
|
|
- { src: "tes3mp-server-default.cfg", dest: "tes3mp-server-default.cfg" }
|
|
notify: "restart tes3mp {{ tes3mp.name }}"
|
|
become: yes
|
|
become_user: tes3mp
|
|
- name: Set up system
|
|
block:
|
|
- name: Start and enable service
|
|
systemd:
|
|
name: "tes3mp@{{ tes3mp.name }}"
|
|
enabled: yes
|
|
state: started
|
|
- name: Template out backup module
|
|
template:
|
|
src: "backup.sh"
|
|
dest: "/opt/backups/modules/tes3mp-{{ tes3mp.name }}.sh"
|
|
mode: "0600"
|
|
become: yes
|