aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan <stefan@sjoosten.nl>2016-08-23 16:34:45 +0200
committerGitHub <noreply@github.com>2016-08-23 16:34:45 +0200
commit5f98c5659e7341d07c849261abcf283184104568 (patch)
tree79f078b91ed8dece4638416016f662c6f7d7782c
parent9c055a880110226dfae26db9a92a7d6c34b7bb11 (diff)
parent7a8008c94ce13515cd500d7b5ccfd1798690d765 (diff)
downloadansible-teamspeak-5f98c5659e7341d07c849261abcf283184104568.tar.gz
ansible-teamspeak-5f98c5659e7341d07c849261abcf283184104568.tar.xz
ansible-teamspeak-5f98c5659e7341d07c849261abcf283184104568.zip
Merge pull request #10 from EggieCode/issue-e1
Patches to fix issue #1. Thank you.
-rw-r--r--.gitignore2
-rw-r--r--README.md17
-rw-r--r--defaults/main.yml18
-rw-r--r--tasks/config.yml23
-rw-r--r--tasks/main.yml3
-rw-r--r--templates/teamspeak3-server.service.j25
-rw-r--r--templates/ts3server.ini.j217
7 files changed, 84 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..783cd5b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.swp
+
diff --git a/README.md b/README.md
index 549c78a..6ed9088 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,23 @@ Role Variables
* <tt>teamspeak.version</tt>: Version of Teamspeak 3 Server to install. Defaults to "3.0.12.4".
* <tt>teamspeak.checksum</tt>: SHA256 checksum of archive of TeamSpeak 3 server version for verification purposes. Example: "sha256:6bb0e8c8974fa5739b90e1806687128342b3ab36510944f576942e67df7a1bd9"
* <tt>teamspeak.keep</tt>: Amount of TeamSpeak 3 server versions to keep installed, includes current version. A setting of "2" keeps the current and one previous version installed.
+* <tt>teamspeak.ini_file</tt>: Set the teamspeak ini file. If not set it will not generate.
+
+* <tt>teamspeak_ini.machine_id</tt>: Teamspeak server machine ID, used for multiple instances on the save database.
+* <tt>teamspeak.voice</tt>: Properties of the voice server
+* <tt>teamspeak.voice.ip</tt>: Voice server bind IP
+* <tt>teamspeak.voice.create_default</tt>: Let teamspeak3 server on first start create default server (TODO #7)
+* <tt>teamspeak.voice.default_port</tt>: Default voice server port (TODO #7)
+* <tt>teamspeak.filetransfer</tt>: Properties of the file transfer server
+* <tt>teamspeak.filetransfer.ip</tt>: File transfer server bind IP
+* <tt>teamspeak.filetransfer.port</tt>: File transfer server listen port
+* <tt>teamspeak.query</tt>: Properties of the server query
+* <tt>teamspeak.query.ip</tt>: Server query bind IP
+* <tt>teamspeak.query.port</tt>: Server query listen port
+* <tt>teamspeak.db_plugin</tt>: Teamspeak database system (TODO #4)
+* <tt>teamspeak.logpath</tt>: Teamspeak logpath. Must be absolute
+* <tt>teamspeak.logquerycommand</tt>: Teamspeak log all query command
+
<tt>vars/{debian,redhat}.yml</tt>:
diff --git a/defaults/main.yml b/defaults/main.yml
index fd667dc..ca9739a 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -10,3 +10,21 @@ teamspeak:
version: "3.0.12.4"
checksum: "sha256:6bb0e8c8974fa5739b90e1806687128342b3ab36510944f576942e67df7a1bd9"
keep: 2
+ ini_file: ts3server.ini
+
+teamspeak_ini:
+ disabled: true
+ machine_id: ""
+ voice:
+ ip: 0.0.0.0
+ create_default: true
+ default_port: 9987
+ filetransfer:
+ ip: 0.0.0.0
+ port: 10011
+ query:
+ ip: 0.0.0.0
+ port: 33003
+ db_plugin: ts3db_sqlite3
+ logpath: /var/log/teamspeak3-server
+ logquerycommands: false
diff --git a/tasks/config.yml b/tasks/config.yml
new file mode 100644
index 0000000..11e57ff
--- /dev/null
+++ b/tasks/config.yml
@@ -0,0 +1,23 @@
+---
+# Config files and actions for teamspeak3 server
+- name: Short facts
+ set_fact:
+ ts3server_dir: "{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64"
+
+- name: Create ts3server.ini
+ template:
+ src: ts3server.ini.j2
+ dest: "{{ ts3server_dir }}/ts3server.ini"
+ mode: 0644
+ owner: "{{ teamspeak.user }}"
+ group: "{{ teamspeak.user }}"
+ register: ts3server_ini
+
+- name: Create teamspeak 3 server logs folder
+ file:
+ path: "{{ teamspeak_ini.logpath }}"
+ state: directory
+ mode: 0755
+ owner: "{{ teamspeak.user }}"
+ group: "{{ teamspeak.user }}"
+
diff --git a/tasks/main.yml b/tasks/main.yml
index 3486eb2..4d93664 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -67,6 +67,9 @@
notify:
- Restart TeamSpeak 3 Server
+- include: config.yml
+ when: teamspeak_ini is defined or teamspeak.ini_file is none and teamspeak_ini.disable is false
+
- name: Install TeamSpeak 3 systemctl service file
template:
src: teamspeak3-server.service.j2
diff --git a/templates/teamspeak3-server.service.j2 b/templates/teamspeak3-server.service.j2
index 4579694..03a8be3 100644
--- a/templates/teamspeak3-server.service.j2
+++ b/templates/teamspeak3-server.service.j2
@@ -7,8 +7,11 @@ Type=simple
User={{ teamspeak.user }}
Group={{ teamspeak.user }}
WorkingDirectory={{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64
-Environment='LD_LIBRARY_PATH="{{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/:$LD_LIBRARY_PATH"'
+{% if teamspeak.ini_file is not none %}
+ExecStart={{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/ts3server_minimal_runscript.sh inifile={{ teamspeak.ini_file }}
+{% else %}
ExecStart={{ teamspeak.home }}/{{ teamspeak.symlink }}/teamspeak3-server_linux_amd64/ts3server_minimal_runscript.sh
+{% endif %}
[Install]
WantedBy=multi-user.target
diff --git a/templates/ts3server.ini.j2 b/templates/ts3server.ini.j2
new file mode 100644
index 0000000..ee6d6f3
--- /dev/null
+++ b/templates/ts3server.ini.j2
@@ -0,0 +1,17 @@
+machine_id={{ teamspeak_ini.machine_id }}
+
+default_voice_port={{teamspeak_ini.voice.default_port}}
+voice_ip={{teamspeak_ini.voice.ip}}
+
+query_port={{teamspeak_ini.query.port}}
+query_ip={{teamspeak_ini.query.ip}}
+
+filetransfer_port={{teamspeak_ini.filetransfer.port}}
+filetransfer_ip={{teamspeak_ini.filetransfer.ip}}
+
+dbplugin={{ teamspeak_ini.db_plugin }}
+dbpluginparameter={{ 'ts3db_mysql.ini' if teamspeak_ini.db_plugin == 'ts3db_mysql' else '' }}
+dbsqlpath=sql/
+dbsqlcreatepath={{ 'create_mysql/' if teamspeak_ini.db_plugin == 'ts3db_mysql' else 'create_sqlite/' }}
+logpath={{ teamspeak_ini.logpath }}
+logquerycommands={{ teamspeak_ini.logquerycommands }}