aboutsummaryrefslogtreecommitdiffstats
path: root/tasks
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-02-20 02:38:41 +0100
committerTharre <tharre3@gmail.com>2018-02-20 03:37:00 +0100
commit8f84cd821701bbfe79c3ecd110d22a10214dd645 (patch)
tree4202aff9808be54140ab577f18b604f3edaec75e /tasks
parent4e32e8d78d2d2bc38ed1c0135d8071fa6a9117f0 (diff)
downloadansible-teamspeak-8f84cd821701bbfe79c3ecd110d22a10214dd645.tar.gz
ansible-teamspeak-8f84cd821701bbfe79c3ecd110d22a10214dd645.tar.xz
ansible-teamspeak-8f84cd821701bbfe79c3ecd110d22a10214dd645.zip
Vastly simplify and refactor the tasks
This mainly includes the complete removal of all the logic involved with storing and deleting multiple versions of teamspeak, which is pointless. All the backup logic has been removed as well, because it is both easier and simpler to just rsync (or the ansible equivalent) the hole ts3 folder over to the target machine.
Diffstat (limited to 'tasks')
-rw-r--r--tasks/config.yml12
-rw-r--r--tasks/display.yml29
-rw-r--r--tasks/install.yml79
-rw-r--r--tasks/install_license.yml18
-rw-r--r--tasks/main.yml109
-rw-r--r--tasks/restore_backup.yml21
-rw-r--r--tasks/ts3update.yml27
7 files changed, 83 insertions, 212 deletions
diff --git a/tasks/config.yml b/tasks/config.yml
deleted file mode 100644
index 3a9035a..0000000
--- a/tasks/config.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-# configuration tasks for teamspeak
-
-- name: "Configuration : Create TeamSpeak 3 Server configuration file"
- template:
- src: ts3server.ini.j2
- dest: "{{ ts3server_dir }}/{{ teamspeak_ini_filename }}"
- mode: 0644
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- notify:
- - Restart TeamSpeak 3 Server
diff --git a/tasks/display.yml b/tasks/display.yml
deleted file mode 100644
index 9c153e2..0000000
--- a/tasks/display.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# configuration tasks for teamspeak
-
-# This task prints information a TeamSpeak 3 server admin needs to log in to
-# the newly installed TeamSpeak 3 Server.
-
-- name: "Display : Wait until TeamSpeak 3 ServerQuery is open"
- wait_for:
- port: "{{ teamspeak_network.query.port }}"
- timeout: 30
-
-- name: "Display : Fetch the password of the Server Query Admin Account"
- shell: journalctl --unit teamspeak3-server.service --reverse | awk -F'"' '/password=/ { print $4; exit }'
- register: __ts3_serveradmin_password
- changed_when: False
-
-- name: "Display : Show the Server Query Admin Account password"
- debug:
- msg: "serveradmin password: {{ __ts3_serveradmin_password.stdout }}"
-
-- block:
- - name: "Display : Fetch the ServerAdmin privilege key (token)"
- shell: journalctl --unit teamspeak3-server.service --reverse | awk -F'=' '/token=/ { print $2 ; exit }'
- register: __ts3_default_priv_token
- changed_when: False
- - name: "Display : Show the ServerAdmin privilege key"
- debug:
- msg: "token: {{ __ts3_default_priv_token.stdout }}"
- when: teamspeak_create_default_virtualserver
diff --git a/tasks/install.yml b/tasks/install.yml
index 847e719..7176941 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -1,75 +1,40 @@
---
-# install tasks file for teamspeak
-
-# Start of installation
-- name: "Install : Create Teamspeak user"
- user:
- name: "{{ teamspeak.user }}"
- comment: "{{ teamspeak.comment }}"
- home: "{{ teamspeak.home }}"
- shell: "{{ teamspeak.shell }}"
- system: yes
- name: "Ensure bzip2 package is installed"
package:
name: bzip2
state: present
-- name: "Install : Download TeamSpeak {{ teamspeak.version }} Server files"
+- name: "Prepare temporary file for download"
+ tempfile: state=file
+ register: tmpfile
+
+- name: "Download teamspeak {{ teamspeak.version }} server files"
get_url:
url: "http://dl.4players.de/ts/releases/{{ teamspeak.version }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}.tar.bz2"
- dest: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}.tar.bz2"
+ dest: "{{ tmpfile.path }}"
checksum: "{{ teamspeak.checksum }}"
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
-
-- name: "Install : Create TeamSpeak {{ teamspeak.version }} Server directory"
- file:
- path: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}"
- state: directory
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- register: mkdir
-# If a new directory has been created, check for (current) user data.
-- name: "Install : Checking for a currently installed TeamSpeak 3 Server with user data"
- stat:
- path: "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/files"
- register: userdata
- when: mkdir.changed
-
-# If user data has been found, this is an upgrade situation.
-- include: ts3update.yml
- when: userdata.stat is defined and userdata.stat.exists == True
-
-# Created a new directory? Extract the files into it. Overwrites existing.
-- name: "Install : Extract TeamSpeak {{ teamspeak.version }} Server files"
+- name: "Install teamspeak server files"
unarchive:
- copy: no
- src: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}.tar.bz2"
- dest: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/"
+ src: "{{ tmpfile.path }}"
+ remote_src: yes
+ dest: "{{ teamspeak.home }}"
owner: "{{ teamspeak.user }}"
group: "{{ teamspeak.user }}"
- when: mkdir.changed
+ extra_opts: [--strip-components=1]
+ notify:
+ - Restart teamspeak server
-- name: "Install : Create/Update symlink to TeamSpeak {{ teamspeak.version }} Server"
+- name: "Cleanup temporary download file"
file:
- src: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}"
- dest: "{{ teamspeak.home }}/{{ teamspeak.symlink }}"
- state: link
+ state: absent
+ path: "{{ tmpfile.path }}"
+
+- name: "Create VERSION file"
+ copy:
+ content: "{{ teamspeak.version }}"
+ dest: "{{ teamspeak.home }}/VERSION"
+ mode: 0600
owner: "{{ teamspeak.user }}"
group: "{{ teamspeak.user }}"
- notify:
- - Restart TeamSpeak 3 Server
-
-- name: "Install : Install TeamSpeak 3 systemctl service file"
- template:
- src: teamspeak3-server.service.j2
- dest: "{{ systemd_service_file_path }}/teamspeak3-server.service"
- mode: 0644
- owner: root
- group: root
- notify:
- - Reload systemd
- - Restart TeamSpeak 3 Server
-
diff --git a/tasks/install_license.yml b/tasks/install_license.yml
deleted file mode 100644
index 25c9365..0000000
--- a/tasks/install_license.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# License install tasks for role teamspeak
-
-- name: "License : Create directory for license"
- file:
- path: "{{ teamspeak_licensepath }}"
- state: directory
- when: teamspeak_licensepath is not none
-
-- name: "License : Copy the license file"
- copy:
- src: "{{ teamspeak_license_srcfile }}"
- dest: "{{ teamspeak_licensepath if teamspeak_licensepath is not none else ts3server_dir }}/licensekey.dat"
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- mode: 0400
- notify:
- - Restart TeamSpeak 3 Server
diff --git a/tasks/main.yml b/tasks/main.yml
index b5dded6..f524f4c 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,69 +1,82 @@
---
-# tasks file for teamspeak
- name: "Load OS specific variables"
include_vars: "{{ item }}"
- with_first_found:
- - files:
+ with_first_found:
+ - files:
- "{{ ansible_distribution|lower }}.yml"
- "{{ ansible_os_family|lower }}.yml"
- "{{ ansible_system|lower }}.yml"
- - main.yml
- paths:
+ skip: true
+ paths:
- ../vars
-# Installation of TeamSpeak 3 Server
-- include: install.yml
+- name: "Ensure teamspeak user exists"
+ user:
+ name: "{{ teamspeak.user }}"
+ comment: "{{ teamspeak.comment }}"
+ home: "{{ teamspeak.home }}"
+ shell: "{{ teamspeak.shell }}"
+ system: yes
-# Store the TeamSpeak 3 Server directory in a short variable
-- name: "Set TeamSpeak 3 Server directory fact"
- set_fact:
- ts3server_dir: "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64"
+- name: "Ensure everything is owned by {{ teamspeak.user }}"
+ file:
+ path: "{{ teamspeak.home }}"
+ state: directory
+ owner: "{{ teamspeak.user }}"
+ group: "{{ teamspeak.user }}"
+ recurse: yes
-# License file management
- # Install a license file
-- include: install_license.yml
- when: teamspeak_use_license
+- name: "Check teamspeak server version"
+ slurp:
+ src: "{{ teamspeak.home }}/VERSION"
+ ignore_errors: yes
+ register: ts3version
- # Remove a possible leftover license file when teamspeak_use_license is disabled.
- # The default is to look for it in the TeamSpeak 3 Server directory, so
- # we remove it there if the option has been disabled.
-- name: "License : Clean up license in TeamSpeak 3 Server directory if needed"
- file:
- path: "{{ ts3server_dir }}/licensekey.dat"
- state: absent
- when: not teamspeak_use_license
-# End of license file management
+- include_tasks: install.yml
+ when: ts3version.content|default(None)|b64decode != teamspeak.version
-# Configuration of TeamSpeak 3 Server (if requested)
- # Create configuration file
-- include: config.yml
+- name: "Create teamspeak server configuration file"
+ template:
+ src: ts3server.ini.j2
+ dest: "{{ teamspeak.home }}/{{ teamspeak_ini_filename }}"
+ mode: 0644
+ owner: "{{ teamspeak.user }}"
+ group: "{{ teamspeak.user }}"
when: teamspeak_ini_enabled
+ notify:
+ - Restart teamspeak server
- # Clean-up a lingering configuration file if we don't need it anymore
-- name: "Configuration : Clean-up old configuration file if needed"
+- name: "Ensure license directory exists"
file:
- path: "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/{{ teamspeak_ini_filename }}"
- state: absent
- when: not teamspeak_ini_enabled
-# End of configuration
+ path: "{{ teamspeak_licensepath }}"
+ state: directory
+ when: teamspeak_licensepath is not none and teamspeak_use_license
-# Restore from backups if they exist
-- include: restore_backup.yml
- when: userdata.stat is defined and userdata.stat.exists == False
+- name: "Copy the license file"
+ copy:
+ src: "{{ teamspeak_license_srcfile }}"
+ dest: "{{ teamspeak_licensepath if teamspeak_licensepath is not none else teamspeak.home }}/licensekey.dat"
+ owner: "{{ teamspeak.user }}"
+ group: "{{ teamspeak.user }}"
+ mode: 0400
+ when: teamspeak_use_license
+ notify:
+ - Restart teamspeak server
+
+- name: "Install systemd service file"
+ template:
+ src: teamspeak3-server.service.j2
+ dest: "{{ systemd_service_file_path }}/teamspeak3-server.service"
+ mode: 0644
+ owner: root
+ group: root
+ notify:
+ - Restart teamspeak server
-# Perform the running of handlers now
-# So we can do "Reload systemd" (and possibly queued clean-up)
-# before we start using the new/changed .service file.
-- meta: flush_handlers
-# Make sure TeamSpeak 3 Server is started and enabled
-- name: Enable and start TeamSpeak 3 Server
- service:
+- name: "Ensure teamspeak server is running and enabled"
+ systemd:
name: teamspeak3-server
state: started
enabled: yes
-
-# Display Teamspeak 3 Server Token and Password if this is a new installation
-# (a new installation has no userdata, and this is checked for in install.yml)
-- include: display.yml
- when: userdata.stat is defined and userdata.stat.exists == False
+ daemon_reload: yes
diff --git a/tasks/restore_backup.yml b/tasks/restore_backup.yml
deleted file mode 100644
index a760c0a..0000000
--- a/tasks/restore_backup.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-- name: "Restoring database from backup"
- copy:
- src: "{{ teamspeak_restore_db_path }}"
- dest: "{{ ts3server_dir }}/ts3server.sqlitedb"
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- mode: 0600
- notify:
- - Restart TeamSpeak 3 Server
- when: teamspeak_restore_db_path is not none
-
-- name: "Restoring files/ from backup"
- unarchive:
- src: "{{ teamspeak_restore_files_path }}"
- dest: "{{ ts3server_dir }}"
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- notify:
- - Restart TeamSpeak 3 Server
- when: teamspeak_restore_files_path is not none
diff --git a/tasks/ts3update.yml b/tasks/ts3update.yml
deleted file mode 100644
index 58e9e12..0000000
--- a/tasks/ts3update.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# tasks file for teamspeak
-
-- name: "Update : Check if a TeamSpeak 3 Server systemd service unit exists"
- stat:
- path: "{{ systemd_service_file_path }}/teamspeak3-server.service"
- register: ts3_systemd_service
-
-- name: "Update : Stop currently running TeamSpeak 3 Server instance"
- service:
- name: teamspeak3-server
- state: stopped
- when: ts3_systemd_service.stat.exists
-
-- name: "Update : Copy existing TeamSpeak 3 Server data to new TeamSpeak {{ teamspeak.version }} Server directory"
- command: cp -r "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/"
- "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/teamspeak3-server_linux_amd64/"
- notify:
- - Prune older TeamSpeak 3 Server versions
-
-- name: "Update : Make sure ownership is set to {{ teamspeak.user }}"
- file:
- path: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/teamspeak3-server_linux_amd64/"
- state: directory
- owner: "{{ teamspeak.user }}"
- group: "{{ teamspeak.user }}"
- recurse: yes