68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
|
#!/usr/bin/ansible-playbook
|
||
|
# vim:ft=ansible:
|
||
|
---
|
||
|
- name: Set up TES3MP
|
||
|
block:
|
||
|
- name: Set up system
|
||
|
block:
|
||
|
- 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
|
||
|
- 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 }}"
|
||
|
- 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
|