From 7d6affb0f74c1d6821dd874d59f65f39e6e78e10 Mon Sep 17 00:00:00 2001 From: Nightshade <38169527+n1ghtshade@users.noreply.github.com> Date: Sun, 12 May 2019 01:32:53 -0600 Subject: [PATCH] Add teamspeak3 alpine image --- apps/teamspeak3.yml | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 apps/teamspeak3.yml diff --git a/apps/teamspeak3.yml b/apps/teamspeak3.yml new file mode 100644 index 0000000..d36f3c9 --- /dev/null +++ b/apps/teamspeak3.yml @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Title: Teamspeak 3 Alpine +# Author(s): N1ghtshade +# URL: https://plexguide.com - http://github.plexguide.com +# GNU: General Public License v3.0 +################################################################################ +--- +- hosts: localhost + gather_facts: false + tasks: + # FACTS ####################################################################### + - name: 'Set Known Facts' + set_fact: + pgrole: 'teamspeak3' + intport: '9987/udp' + extport: '9987' + intport2: '10011/tcp' + extport2: '10011' + intport3: '30033/tcp' + extport3: '30033' + image: 'qmcgaw/teamspeak3-alpine:latest' + + # CORE (MANDATORY) ############################################################ + - name: 'Including cron job' + include_tasks: '/opt/communityapps/apps/_core.yml' + + # EXTRA FOR TS3 ######################################################### + - name: 'Create {{pgrole}} data and log directories' + file: 'path={{item}} state=directory mode=0700 owner=1000 group=1000 recurse=yes' + with_items: + - '/opt/appdata/{{pgrole}}' + - '/opt/appdata/{{pgrole}}/data' + - '/opt/appdata/{{pgrole}}/logs' + + # LABELS ###################################################################### + - name: 'Setting PG Volumes' + set_fact: + pg_volumes: + - '/opt/appdata/{{pgrole}}/data:/data' + - '/opt/appdata/{{pgrole}}/logs:/logs' + + - name: 'Setting PG ENV' + set_fact: + pg_env: + PUID: '1000' + PGID: '1000' + + # MAIN DEPLOYMENT ############################################################# + + - name: 'Deploying {{pgrole}}' + docker_container: + name: '{{pgrole}}' + image: '{{image}}' + pull: yes + published_ports: + - '{{ports.stdout}}{{extport}}:{{intport}}' + - '{{ports.stdout}}{{extport2}}:{{intport2}}' + - '{{ports.stdout}}{{extport3}}:{{intport3}}' + volumes: '{{pg_volumes}}' + env: '{{pg_env}}' + restart_policy: unless-stopped + networks: + - name: plexguide + aliases: + - '{{pgrole}}' + state: started + labels: '{{pg_labels}}' + + # ENDING TASK FOR TS3 #################################################### + - name: 'Configuring {{pgrole}} for first time use' + block: + - name: 'Wait 30 Seconds' + wait_for: + timeout: 30