Add a Terraria role
Time to blow shit up
This commit is contained in:
parent
24b26d57bf
commit
a2a3b10ac9
9
ec2.yml
9
ec2.yml
@ -84,6 +84,15 @@
|
|||||||
nextcloud_tarbz2: "https://download.nextcloud.com/server/releases/nextcloud-18.0.0.tar.bz2"
|
nextcloud_tarbz2: "https://download.nextcloud.com/server/releases/nextcloud-18.0.0.tar.bz2"
|
||||||
nextcloud_url: "nc.9iron.club"
|
nextcloud_url: "nc.9iron.club"
|
||||||
nextcloud_webroot: "/var/www/nextcloud"
|
nextcloud_webroot: "/var/www/nextcloud"
|
||||||
|
- hosts: tag_terraria_vanilla
|
||||||
|
roles:
|
||||||
|
- role: terraria
|
||||||
|
vars:
|
||||||
|
terraria_name: "vanilla1"
|
||||||
|
terraria_zip: "https://terraria.org/server/terraria-server-1344.zip"
|
||||||
|
terraria_port: "7777"
|
||||||
|
terraria_worldsize: "large"
|
||||||
|
terraria_password: "dicks"
|
||||||
- hosts: tag_minecraft_ultreload
|
- hosts: tag_minecraft_ultreload
|
||||||
roles:
|
roles:
|
||||||
- role: backups
|
- role: backups
|
||||||
|
1
roles/terraria/defaults/main.yml
Normal file
1
roles/terraria/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
terraria_root: "/var/terraria"
|
0
roles/terraria/meta/main.yml
Normal file
0
roles/terraria/meta/main.yml
Normal file
72
roles/terraria/tasks/main.yml
Normal file
72
roles/terraria/tasks/main.yml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/ansible-playbook
|
||||||
|
# vim:ft=ansible:
|
||||||
|
---
|
||||||
|
- name: Set up Terraria user
|
||||||
|
block:
|
||||||
|
- name: Install required packages
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- mono-complete
|
||||||
|
- name: Assure terraria admin group
|
||||||
|
group:
|
||||||
|
name: ter-admin
|
||||||
|
- name: Assure server user
|
||||||
|
user:
|
||||||
|
name: terraria
|
||||||
|
group: ter-admin
|
||||||
|
system: yes
|
||||||
|
home: "{{ terraria_root }}"
|
||||||
|
- name: Assure var directory
|
||||||
|
file:
|
||||||
|
path: "{{ terraria_root }}"
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: terraria
|
||||||
|
# Sticky, SetGID
|
||||||
|
mode: "3770"
|
||||||
|
- name: Assure systemd unit
|
||||||
|
template:
|
||||||
|
src: "terraria@.service"
|
||||||
|
dest: "/etc/systemd/system/terraria@.service"
|
||||||
|
- name: Reload available daemons
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
become: yes
|
||||||
|
- name: Set up Terraria server
|
||||||
|
block:
|
||||||
|
- name: Create server directory
|
||||||
|
file:
|
||||||
|
path: "{{ terraria_root }}/{{ terraria_name }}"
|
||||||
|
state: directory
|
||||||
|
- name: Check for existing install
|
||||||
|
stat:
|
||||||
|
path: "{{ terraria_root }}/{{ terraria_name }}/TerrariaServer"
|
||||||
|
register: stat_server_binary
|
||||||
|
- name: Unpack archive
|
||||||
|
block:
|
||||||
|
- name: Download zip
|
||||||
|
get_url:
|
||||||
|
dest: "{{ terraria_root }}/{{ terraria_name }}/pack.zip"
|
||||||
|
url: "{{ terraria_zip }}"
|
||||||
|
- name: Unpack zip
|
||||||
|
unarchive:
|
||||||
|
src: "{{ terraria_root }}/{{ terraria_name }}/pack.zip"
|
||||||
|
remote_src: yes
|
||||||
|
dest: "{{ terraria_root }}/{{ terraria_name }}"
|
||||||
|
- name: Move zip contents
|
||||||
|
shell: mv "{{ terraria_root }}/{{ terraria_name }}/Dedicated Server/*" "{{ terraria_root }}/{{ terraria_name }}"
|
||||||
|
when: not stat_server_binary.stat.exists
|
||||||
|
- name: Configure server
|
||||||
|
block:
|
||||||
|
- name: Template out server config
|
||||||
|
template:
|
||||||
|
src: config
|
||||||
|
dest: "{{ terraria_root }}/{{ terraria_name }}/config"
|
||||||
|
become: yes
|
||||||
|
- name: Enable service
|
||||||
|
systemd:
|
||||||
|
name: "terraria@{{ terraria_name }}"
|
||||||
|
daemon_reload: yes
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
become: yes
|
33
roles/terraria/templates/terraria@.service
Normal file
33
roles/terraria/templates/terraria@.service
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# Licensed under the terms of the MIT license
|
||||||
|
# vim:ft=dosini:
|
||||||
|
#
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Terraria Server %i
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=terraria
|
||||||
|
Group=ter-admin
|
||||||
|
WorkingDirectory={{ terraria_root }}/%i
|
||||||
|
PrivateUsers=true
|
||||||
|
ProtectSystem=full
|
||||||
|
ProtectHome=true
|
||||||
|
# Implies MountFlags=slave
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
# Implies NoNewPrivileges=yes
|
||||||
|
ProtectKernelModules=true
|
||||||
|
# Implies MountAPIVFS=yes
|
||||||
|
ProtectControlGroups=true
|
||||||
|
|
||||||
|
ExecStart=/bin/sh -c '/usr/bin/screen -DmS ter-%i ./TerrariaServer.bin.x86_64'
|
||||||
|
|
||||||
|
ExecStop=/usr/bin/screen -p 0 -S ter-%i -X eval 'stuff "say Server is going down: Service was stopped"\\015'
|
||||||
|
ExecStop=/usr/bin/screen -p 0 -S ter-%i -X eval 'stuff "exit"\\015'
|
||||||
|
ExecStop=/bin/sleep 5
|
||||||
|
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user