TeamSpeak3のサーバで仮想サーバを追加する方法

TeamSpeak3のサーバで仮想サーバを追加する方法について。

TeamSpeak3のサーバではvirtualserverと呼ばれる仮想サーバ機能がある。これは旧来のTeamSpeak2にもあった機能で仮想的にサーバを増やす方法だ。デフォルト状態では一つのプロセス(実行中のTeamSpeak3サーバプログラム)が一つのTeamSpeak3サーバを提供している。TeamSpeakサーバを運営しているとチャンネルが増えすぎたので二つ目が欲しいなぁ、パスワードが掛かったサーバが欲しいなぁ、という要望が出てきたりする。

そういうときに、じゃぁ新しいTeamSpeak3サーバのプロセスを立てようか、という考えもあるのだけれど別プロセスより仮想サーバで立てる方がメリット色々。
まずはプログラム+configの位置を分けなくて良い事。別プロセスで管理する場合にはconfigを新たに書いてそれを読ませる必要がある。となると起動スクリプト(rcスクリプト)に手を加えるか、rcスクリプトを複製する必要がある。この複製というのはあまり良いモノでは無くて変更があったときに同期をとってやらないといけないだとか、プロセス名が同じだったりするのでkillallやpsが使いにくくなったり、/var/dbなサーバ用の領域にも気を遣って分けてやる必要がある。

そこでデフォルトで提供される機能が仮想サーバ、というわけだ。

この仮想サーバ、正直それほど使い勝手が良いとは思ってない。むしろ少し面倒くさいぐらい。ただ現行のTeamSpeak3はクライアント側に色々とGUIで作業できるようになってきていて、おかげで仮想サーバの運用も楽ちん。今回はそのサーバの立て方をたどってみる。

まず管理者でtelnetログインする。やり方については過去の記事を参照。

ログインが完了したら下記のようなコマンドを入力してやる。


shell> telnet ts.l2tp.org 10011
Trying 192.168.1.1...
Connected to ts.l2tp.org.
Escape character is '^]'.
TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
login serveradmin ABcdEfG12345
error id=0 msg=ok
servercreate virtualserver_name=3rd server virtualserver_port=9989 virtualserver_maxclients=10
sid=8 token=Jadfafda9asdfaf1234xkppEQcxbDSDFAdaQQPJKn1Z2 virtualserver_port=9989

以上でおしまい。本当に簡単だ。
コマンドはservercreateを使う。オプションとして

  • virtualserver_name
  • virtualserver_port
  • virtualserver_maxclients

辺りを与えてやると良い。この辺りのオプションは後ほどGUIから変更することができるので神経質にならず簡単な数値を入力すれば良い。名前、maxclientsは後から変更できる。maxclientsは多すぎるとエラーを起こすので作成時には10とかの小さな値で着くって置いた方が安全。portはGUIクライアントから変更できないのでここで決めてしまおう。

ポート番号に関して、今回自分の環境では、1番目の仮想サーバをデフォルトポートとしていたので、2番目、3番目はそれぞれデフォルトのポート番号に1ずつ足していった。

サーバ ポート番号
1番目のサーバ 最初から存在するサーバ 9987 (デフォルト)
2番目のサーバ 9988
3番目のサーバ 9989
4番目のサーバ 9990
5番目のサーバ 9991

コマンドを入れたらエラーが出ていないか確認する。自分の環境ではmaxclientsが多すぎたのでエラーを起こしてしまった。

servercreate virtualserver_name=3rd virtualserver_port=9989 virtualserver_maxclients=100
error id=2817 msg=max\sslot\slimit\sreached

エラーメッセージが既に見にくいので敬遠してしまいそうだけど、見てみればサーバのスロット数の上限に達しました、と書いてある。一つのライセンスではスロット数の上限が512なので運用中のサーバと合わせてかずに注意したい。

なお成功した場合、tokenと呼ばれる文字列が発行される。次のステップではこれが重要になるので必ず消さずにメモしておくように。

servercreate virtualserver_name=3rd server virtualserver_port=9989 virtualserver_maxclients=10
sid=8 token=Jadfafda9asdfaf1234xkppEQcxbDSDFAdaQQPJKn1Z2 virtualserver_port=9989

サーバの作成が成功したらクライアントで接続してみる。
今回のTeamSpeak3クライアントはポート番号を入力するところがない。代わりにサーバアドレスにコロンでポート番号を追記してやるスタイルだ。例えば ts.l2tp.org サーバのポート番号9988に接続したい時には “ts.l2tp.org:9988” と入力する。これで繋がるはず。

初回接続時にはserveradminの管理付与を促される。serveradminはCUIでのログインに使ったりするキーワードなので混乱してしまうんだけれど、ココで言うadminとはvirtual serverの server admin の事。CUIのコマンドからでもいけるのだけれどここでは簡単にtokenを使って管理者権限を付与する。
初回に接続するとtokenを入力してくれ、という画面が出てくる。ここで先ほどメモして置いた、仮想サーバ作成時に発行されたtokenを入力すれば良い。成功するとユーザ名の右側に光り輝くSの文字が付くはず。これでひとしきりいろいろな事がTeamSpeak3クライアント側のGUIから行うことができる。
ちなみに初回起動時に出てくるtoken入力プロンプトなんだけれど、後から出すこともできる。メニューのPermissionから “Use privilege key”でプロンプトが出てくる。

キャプチャ

Serveradminの権限をもらったら仮想サーバ名、スロット数の変更を行った。
仮想サーバのチャンネル一覧の一番ルートのチャンネルを右クリックし、Edit virtual server。ここから出てくる画面でそれなりの設定ができる。

以上で仮想サーバの作成方法はおしまい。

今回はCUIをできるだけ使わずにGUIからできることはGUIでできるようにしてみた。やれることの幅からするとCUIの方が断然多いんだけれど、いかんせんCUIの使い勝手が悪くまたマニュアルの整備具合も良いとは言いがたい。(とはいえ、それなりの情報量をもったPDFファイルが一緒に付いてきててそれを読めばある程度は分かるんだけれど、目的からコマンドを探すのが大変だったりしてあと一歩及ばず。)
CUIは補完機能はもとより、入力履歴、入力済み文字の修正が不可と一世代前のシェル。それでもBackSpaceが使えるのはすごく便利。

最後に今回の作業で参考にした本家のフォーラム

[Mini Tutorials] Virtual Server Management

 

以上。

コメントを残す