177 lines
4.2 KiB
YAML
177 lines
4.2 KiB
YAML
---
|
|
# Install required dependancies
|
|
- hosts: '{{ target | default("all") }}'
|
|
become: yes
|
|
become_method: sudo
|
|
tasks:
|
|
|
|
- name: Install aptitude
|
|
apt: pkg=aptitude state=present update_cache=true
|
|
|
|
- name: Configure the package manager to include accommodations for i386 architecture
|
|
shell: dpkg --add-architecture i386
|
|
ignore_errors: True
|
|
|
|
- name: apt update
|
|
apt: update-cache=yes cache_valid_time=3600
|
|
retries: 3
|
|
delay: 1
|
|
ignore_errors: yes
|
|
register: apt_updated
|
|
|
|
- name: apt safe upgrade
|
|
apt: upgrade=safe
|
|
delay: 1
|
|
ignore_errors: yes
|
|
register: apt_upgraded
|
|
|
|
- name: check if reboot is required
|
|
stat: path=/var/run/reboot-required
|
|
register: rb
|
|
|
|
- name: Reboot if necessary
|
|
reboot:
|
|
reboot_timeout: 3600
|
|
ignore_errors: true
|
|
when: rb.stat.exists
|
|
|
|
- name: Delete reboot-required file
|
|
file:
|
|
path: /var/run/reboot-required
|
|
state: absent
|
|
ignore_errors: true
|
|
|
|
- name: Install requisite 32-bit libraries
|
|
apt:
|
|
name: "{{ packages }}"
|
|
state: present
|
|
update_cache: yes
|
|
vars:
|
|
packages:
|
|
- lib32gcc-s1
|
|
- netcat
|
|
- rsync
|
|
|
|
# Mount data drive
|
|
- hosts: '{{ target | default("all") }}'
|
|
become: yes
|
|
become_method: sudo
|
|
vars:
|
|
mount_src: /dev/vdb
|
|
mount_path: /data
|
|
tasks:
|
|
|
|
- name: Create list of mounted devices
|
|
set_fact:
|
|
mounted_devices: "{{ ansible_mounts|json_query('[].device') }}"
|
|
|
|
- name: Create a ext4 filesystem on /dev/vdb and check disk blocks
|
|
community.general.filesystem:
|
|
fstype: ext4
|
|
dev: "{{ mount_src }}"
|
|
state: present
|
|
|
|
- name: Mount File System
|
|
mount:
|
|
path: "{{ mount_path }}"
|
|
src: "{{ mount_src }}"
|
|
fstype: ext4
|
|
state: mounted
|
|
when: mount_src not in mounted_devices
|
|
|
|
# Download steamcmd
|
|
- hosts: '{{ target | default("all") }}'
|
|
become: yes
|
|
become_method: sudo
|
|
vars:
|
|
ssh_user: debian
|
|
url: http://media.steampowered.com/installer/steamcmd_linux.tar.gz
|
|
tasks:
|
|
|
|
- name: Sets Steam folder
|
|
file: path=/data/Steam owner={{ssh_user}} group={{ssh_user}} state=directory mode=0775
|
|
ignore_errors: True
|
|
|
|
- stat: path=/data/Steam/steamcmd.sh
|
|
register: steamcmd_dir
|
|
|
|
- name: Download SteamCMD
|
|
get_url:
|
|
url: "{{url}}"
|
|
dest: /data/Steam/steamcmd_linux.tar.gz
|
|
mode: '0664'
|
|
#when: not steamcmd_dir.stat.exists
|
|
|
|
- name: Unarchive SteamCMD
|
|
unarchive:
|
|
src: /data/Steam/steamcmd_linux.tar.gz
|
|
dest: /data/Steam
|
|
remote_src: yes
|
|
creates: /data/Steam/steamcmd.sh
|
|
#when: not steamcmd_dir.stat.exists
|
|
|
|
- name: Delete file steamcmd_linux.tar.gz
|
|
file:
|
|
path: /data/Steam/steamcmd_linux.tar.gz
|
|
state: absent
|
|
|
|
# SteamCMD game server setup
|
|
- hosts: '{{ target | default("all") }}'
|
|
vars:
|
|
ssh_user: debian
|
|
become: yes
|
|
become_method: sudo
|
|
become_user: "{{ssh_user}}"
|
|
tasks:
|
|
|
|
- name: Sets Steam folder
|
|
file: path=/data/Steam owner={{ssh_user}} group={{ssh_user}} state=directory mode=0775
|
|
ignore_errors: True
|
|
|
|
- name: Create game script
|
|
template: src=static_files/7days.j2 dest=/data/Steam/7days.txt owner={{ssh_user}} group={{ssh_user}} mode=0644
|
|
|
|
- name: Run the SteamCMD setup
|
|
shell: './steamcmd.sh +runscript /data/Steam/7days.txt'
|
|
args:
|
|
chdir: /data/Steam/
|
|
ignore_errors: True
|
|
|
|
- name: Upload serverconfig.xml
|
|
copy:
|
|
src: static_files/serverconfig_3rd.xml
|
|
dest: /data/Steam/sdtt-server/serverconfig.xml
|
|
owner: "{{ssh_user}}"
|
|
group: "{{ssh_user}}"
|
|
mode: 0644
|
|
tags:
|
|
- configuration
|
|
|
|
- name: Upload mod configs
|
|
ansible.posix.synchronize:
|
|
src: static_files/Mods
|
|
dest: /data/Steam/sdtt-server
|
|
tags:
|
|
- configuration
|
|
|
|
# Create game server systemd service
|
|
- hosts: '{{ target | default("all") }}'
|
|
vars:
|
|
ssh_user: debian
|
|
become: yes
|
|
become_method: sudo
|
|
tasks:
|
|
|
|
- name: Upload 7days.service
|
|
template: src=static_files/7days.service.j2 dest=/etc/systemd/system/7days.service owner=root group=root mode=0644
|
|
ignore_errors: True
|
|
|
|
- name: force systemd to reread configs
|
|
systemd: daemon_reload=yes
|
|
|
|
- name: enable 7days.service
|
|
systemd:
|
|
name: 7days
|
|
state: started
|
|
enabled: True
|