Jitsi Meet をさくらのクラウドのスタートアップスクリプトで動かす方法


概要

Jitsi Meet ( https://jitsi.org/jitsi-meet/) は、ビデオ会議用の WebRTC JavaScript アプリケーションであり、ブラウザやスマートフォン向けの専用アプリから利用できます。 オープンソース・ソフトウェア(Apache License 2.0) として自由に利用できます。

この Jitsi Meet を自動的にセットアップできるのが、さくらのクラウドの「Jitsi Meet スタートアップスクリプト」です。このスタートアップスクリプトを使えば、以下の作業を自動的に行います。

  • サーバ作成時、自動的に Jitsi Meet をセットアップする(スタートアップスクリプトは Ubuntu 18.04 LTS が対象)
  • 自動的に DNS ゾーン情報を変更し、「https://<ドメイン名>」でアクセス可能になる

また、手作業で、 Let's Encrypt の SSL 証明書を使った暗号化の通信にも対応できます。

事前準備

スタートアップスクリプトを使えば、新しいサーバ(とディスク)作成と同時に Jitsi Meet を自動的にセットアップします。そのためには、DNS ゾーンの登録と、API 鍵の作成が必要です。

DNS アプライアンスに DNS ゾーンを登録

スタートアップスクリプトで作成した Jitsi Meet の環境には、ブラウザで「https://ホスト名/」へアクセスします(例: meet.example.jpexample.jp など)。ここで利用する「ホスト名」にあたる場所は、あらかじめ DNS アプライアンスに登録が必要です。

注意点としては、「ホスト名+ドメイン名」でアクセスしたい場合、DNS アプライアンスでも「ホスト名.ドメイン名」として「ゾーン名」を追加する必要があります。

以下の例は、 https://meet.toaru.site/ としてアクセスしたいため、 meet.toaru.site のゾーンを追加しています。

ゾーン追加後、表示された名前をダブルクリックすると、「DNSサーバ」が表示されます。 ここで表示されている DNS サーバを、DNS 登録事業者(レジストラ)のドメイン管理画面から「ネームサーバ」として指定する必要があります。

DNS アプライアンスに関する一般的な手順は、以下の記事をご覧ください。

注意点:DNS アプライアンスにドメイン登録後、 リソースレコードは追加しないでください 。 もし登録済みのドメイン名で利用しようとする場合は、あらかじめ、対象ドメインのリソースレコードを削除しておく必要があります。

API キーの作成

スタートアップスクリプトの内部操作(起動したサーバの IP アドレスを確認するため、API キーと sacloud CLI を使います)のため、何らかの API キーを事前に作成する必要があります。既に作成済みの場合は、作業は不要です。

サーバ作成時、スタートアップスクリプトで Jitsi Meet を選択

スタートアップスクリプトは Ubuntu Server をご利用いただく前提です。

セットアップを進めるには、コントロールパネルの左メニューから「サーバ」をクリックします。そして、「シンプルモード」にチェック印が入っていれば、クリックしてシンプルモードを解除します。

それから、サーバプランの「仮想コア」や「メモリ」は特に触りません。1コア、1GB のままで構いません。必要があれば、サーバ作成後にスペックアップもできます。

それから「アーカイブ選択」は「Ubuntu Server 18.04.04 LTS 64bit」を選択します。

画面を更に下へスクロールし、「ディスクの修正」では、 管理ユーザのパスワード を入力します。 Ubuntu Server の場合、サーバにログインする「ubuntu」ユーザのパスワード になります。また、「sudo su」で root 権限で作業するときの確認パスワードにもなります。

それから「ホスト名」には、今回利用する「ドメイン名」を記録します。画面では「toaru」というホスト名を入力していますが、ここは任意の名前で構いません。

そして、「配置する スタートアップスクリプト」で「Jitsi Meet」を選択します。

さらに下にある「スタートアップスクリプト オプション」で「ホスト名」の場所には、DNS アプライアンスに登録した「ゾーン名」を入力します。

ここで注意が必要なのは、たとえば「meet.example.jp」とゾーンを登録した場合、この「meet.example.jp」をホスト名に書く必要があります。あるいは、ホスト名ナシの 「example.jp」してゾーンを登録した場合は「example.jp」です。

もし「room.example.jp」のような別の名前で作成したい場合は、DNS アプライアンスでゾーンの登録を「room.example.jp」になっているかどうか確認し、そうでなければ作り直す必要があります。

なお、先の画像では「toaru.site」というゾーンで登録したので、Jitsi Meet で扱うホスト名も「toaru.site」になります。

それから「APIキー」で利用したい API キーを選びます。

あとは、画面をスクロールし「サーバの情報」で「Jitsi Meet」など、サーバ一覧画面に表示される分かりやすい名前をつけておきます。

最後に画面を下までスクロールし、右下にある「作成」を押します。確認画面で再び「作成」をクリックし、サーバ作成を開始します。

あとはサーバが作成完了するまで待ちます。

これでサーバ作成まで完了しました。

サーバ作成後のスタートアップスクリプト動作確認

サーバ作成が完了すると、スタートアップスクリプトの自動処理がスタートします。進行状況を確認するには、サーバに SSH 接続するか、コンソール画面からサーバの中にログインします。さくらのクラウドの Ubuntu Server は、ログインユーザが「ubuntu」です。また、接続先のサーバ IP アドレス情報は、サーバ一覧画面の「NIC」列から確認できます。

$ ssh -l ubuntu <IPアドレス>

それから sudo ls -al /root/.sacloud-api/notes/ で root に切り替えます。パスワードは ubuntu アカウントでログイン時のものです。

ubuntu@toaru:~$ sudo  sudo ls -al /root/.sacloud-api/notes/
[sudo] password for ubuntu:

それから画面を確認します。

ubuntu@toaru:~$ sudo ls -al /root/.sacloud-api/notes/
total 72
drwx------ 2 root root  4096 May 21 11:58 .
drwx------ 3 root root  4096 May 21 11:54 ..
-rwx------ 1 root root  3571 May 21 11:54 113200581151
-rw-r--r-- 1 root root     0 May 21 11:58 113200581151.done
-rw-r--r-- 1 root root 55541 May 21 11:58 113200581151.log

このように「数字.done」というファイルが出来ていれば、スタートアップスクリプトの処理が正常終了しました。あとはブラウザから https://<IPアドレス>/ でアクセスすると、Jitsi Meet の画面が操作できます。

また、 DNS 情報が反映されれば https://ドメイン名/ でもアクセス可能になります。

処理が進行中かどうかは sudo tail -f /root/.sacloud-api/notes/<数字>.log コマンドを実行し、ログを確認すると進行状況などを確認できます。

Jitsi Meet 動作確認

ブラウザで「https://<ドメイン名>/」 にアクセスします。なお、接続時は SSL の自己書名を行っているため、ブラウザで継続が出ます。

Let's Encrypt の証明書を設定するには、サーバログイン後

sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

を実行します。

関連文章