aboutsummaryrefslogtreecommitdiffstats
path: root/tasks
diff options
context:
space:
mode:
authorStefan Joosten <stefan@sjoosten.nl>2016-07-31 02:33:23 +0200
committerStefan Joosten <stefan@sjoosten.nl>2016-07-31 02:40:03 +0200
commit509c5986cfa2458156a4543332530a002a01c59a (patch)
treea688aff54ce8b022608e32ab94d68286be807f57 /tasks
parent1786fb4baee84deeaae30ec3aa0e59d0c92a812c (diff)
downloadansible-teamspeak-509c5986cfa2458156a4543332530a002a01c59a.tar.gz
ansible-teamspeak-509c5986cfa2458156a4543332530a002a01c59a.tar.xz
ansible-teamspeak-509c5986cfa2458156a4543332530a002a01c59a.zip
Inplemented first version of a updating mechanism.
README.md: Documented new variable and requirement. defaults/main.yml: Changed symlink to "current" handlers/main.yml: "reload systemd" -> "Reload systemd" Added pruning of old TS3Server versions. tasks/main.yml: Added version number of TS3Server in names. Added tasks to perform updating. Changed symlink path. Changed task name for service file slightly. templates/teamspeak3-server.service.j2: updated to use the new symlink path.
Diffstat (limited to 'tasks')
-rw-r--r--tasks/main.yml57
1 files changed, 40 insertions, 17 deletions
diff --git a/tasks/main.yml b/tasks/main.yml
index f23906b..cdbd25a 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -24,7 +24,7 @@
tags:
- teamspeak
-- name: Download TeamSpeak 3 server files
+- 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"
@@ -34,37 +34,60 @@
tags:
- teamspeak
-- name: Create TeamSpeak 3 server directory
+- name: 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
tags:
- teamspeak
-- name: Extract TeamSpeak 3 server files
+# If a new directory has been created, check for (current) user data.
+- name: 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
+ tags:
+ - teamspeak
+
+# If user data has been found, this is an upgrade situation.
+# Stop, copy current and extract newer on top.
+- name: Stop currently running TeamSpeak 3 server instance
+ service:
+ name: teamspeak3-server
+ state: stopped
+ when: userdata.stat.exists is defined and userdata.stat.exists == True
+ tags:
+ - teamspeak
+
+- name: Copy existing TeamSpeak 3 server data to new TeamSpeak {{ teamspeak.version }} server directory
+ synchronize:
+ src: "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/"
+ dest: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/teamspeak3-server_linux_amd64/"
+ delegate_to: "{{ inventory_hostname }}"
+ when: userdata.stat.exists is defined and userdata.stat.exists == True
+ notify:
+ - Prune older TeamSpeak 3 server versions
+ tags:
+ - teamspeak
+
+- name: Extract TeamSpeak {{ teamspeak.version }} 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 }}/"
- creates: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/teamspeak3-server_linux_amd64"
owner: "{{ teamspeak.user }}"
group: "{{ teamspeak.user }}"
+ when: mkdir.changed
tags:
- teamspeak
-# Updater idea
-# 1. Check if user files exist under symlinked directory.
-# 2. true? Copy user files to directory of new TeamSpeak3 server version.
-# 3. Stop currently running TeamSpeak 3 Server (under symlinked directory).
-# 4. Create/Update symlink
-# 5. notify systemd of the update
-# 6. Start new TeamSpeak 3 server
-
-- name: Create/Update symlink to TeamSpeak 3 server {{ teamspeak.version }}
+- name: Create/Update symlink to TeamSpeak {{ teamspeak.version }} server
file:
- src: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}/teamspeak3-server_linux_amd64"
+ src: "{{ teamspeak.home }}/teamspeak3-server_linux_amd64-{{ teamspeak.version }}"
dest: "{{ teamspeak.home }}/{{ teamspeak.symlink }}"
state: link
owner: "{{ teamspeak.user }}"
@@ -72,7 +95,7 @@
tags:
- teamspeak
-- name: Add TeamSpeak 3 systemctl service file
+- name: Install TeamSpeak 3 systemctl service file
template:
src: teamspeak3-server.service.j2
dest: "{{ systemd_service_file_path }}/teamspeak3-server.service"
@@ -80,11 +103,11 @@
owner: root
group: root
notify:
- - reload systemd
+ - Reload systemd
tags:
- teamspeak
-# Perform the "reload systemd" handler now.
+# Perform the "Reload systemd" (and possibly queued clean-up) handler now.
# Before we start using the new/changed .service file.
- meta: flush_handlers
tags: