diff --git a/group_vars/all.yml b/group_vars/all.yml index 01ea0c3..3a95034 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -145,6 +145,14 @@ matrix_synapse_secret: "{{ vault_matrix_synapse_secret }}" matrix_macaroon_secret: "{{ vault_matrix_macaroon_secret }}" matrix_form_secret: "{{ vault_matrix_form_secret }}" +# TeamSpeak +teamspeak_base_dir: "/mnt/teamspeak" +teamspeak_data_dir: "{{ teamspeak_base_dir }}/data" +teamspeak_logs_dir: "{{ teamspeak_base_dir }}/logs" +teamspeak_query_port: "10011" +teamspeak_voice_port: "9987" +teamspeak_file_port: "30033" + # ------------ manage (192.168.1.228) ------------ meshcentral_base_dir: "/opt/meshcentral" meshcentral_data_dir: "/mnt/mesh/meshcentral-data" diff --git a/olimp-deploy.yml b/olimp-deploy.yml index ef914b0..da28d13 100644 --- a/olimp-deploy.yml +++ b/olimp-deploy.yml @@ -38,6 +38,7 @@ - { role: docker, tags: deploy_docker } - { role: mumble, tags: deploy_mumble } - { role: matrix, tags: deploy_matrix } + - { role: teamspeak, tags: deploy_teamspeak } - hosts: manage-server roles: - { role: docker, tags: deploy_docker } diff --git a/roles/teamspeak/tasks/main.yml b/roles/teamspeak/tasks/main.yml new file mode 100644 index 0000000..33cce38 --- /dev/null +++ b/roles/teamspeak/tasks/main.yml @@ -0,0 +1,28 @@ +--- +- name: Ensure TeamSpeak directories exist + ansible.builtin.file: + path: "{{ item }}" + state: directory + owner: root + group: root + mode: '0755' + loop: + - "{{ teamspeak_base_dir }}" + - "{{ teamspeak_data_dir }}" + - "{{ teamspeak_logs_dir }}" + +- name: Deploy docker-compose.yml for TeamSpeak + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: "{{ teamspeak_base_dir }}/docker-compose.yml" + owner: root + group: root + mode: '0640' + +- name: Start TeamSpeak via docker compose + ansible.builtin.shell: | + docker compose -f "{{ teamspeak_base_dir }}/docker-compose.yml" up -d + args: + chdir: "{{ teamspeak_base_dir }}" + register: compose_result + changed_when: "'Recreating' in compose_result.stdout or 'Creating' in compose_result.stdout" \ No newline at end of file diff --git a/roles/teamspeak/templates/docker-compose.yml.j2 b/roles/teamspeak/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..00e6701 --- /dev/null +++ b/roles/teamspeak/templates/docker-compose.yml.j2 @@ -0,0 +1,21 @@ +version: '3.8' +services: + teamspeak: + image: teamspeak:latest + container_name: teamspeak + restart: unless-stopped + ports: + - "{{ teamspeak_voice_port }}:9987/udp" + - "{{ teamspeak_query_port }}:10011" + - "{{ teamspeak_file_port }}:30033" + volumes: + - "{{ teamspeak_data_dir }}:/var/ts3server" + - "{{ teamspeak_logs_dir }}:/var/ts3server/logs" + environment: + TS3SERVER_LICENSE: accept + networks: + - teamspeak-net + +networks: + teamspeak-net: + driver: bridge \ No newline at end of file