oneoffadmins.ansible_role_jitsi_meet
jitsi-meet
Jitsi Meetビデオ会議ソフトウェアをインストールし、設定します。
要件
すでにサーバーにDNSが設定されており、SSLキーが必要です。ドメイン用のSSLキーがまだない場合は、優れたthefinn93.letsencrypt Ansibleロールを使用して(無料!)SSL証明書を取得することを検討してください。
Jitsi Meetのコンポーネントが動作するために、TCPの443ポートとUDPの10000ポートを開放する必要があります。デフォルトでは、このロールはufw
を使用してこれらのポートを許可します。他のホストベースのファイアウォールソリューション(iptablesなど)を使用している場合は、jitsi_meet_configure_firewall: false
を設定してください。AWSやそれに類似したサービスを使用している場合は、関連付けられたセキュリティグループでこれらのポートを開放する必要があります。
ロール変数
# デフォルトの証明書ファイルは/var/lib/prosody/localhost.{crt,key}です。
# ここで設定しないのは、カスタム証明書のための空の文字列は
# カスタムNginx設定タスクをスキップさせるからです。
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# SSLがない場合は、「localhost」が正しいデフォルトです。SSL情報が提供されている場合、
# 本物のドメイン名が必要になります。Ansibleの推測されたFQDNを使用していますが、
# 短いホスト名を使用する場合は、変数の値を明示的に設定できます。
# 自動のNginx設定が無効化されている場合も、FQDNを使用してください。
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# ここでは「匿名」認証のみがサポートされています。
jitsi_meet_authentication: anonymous
# Debianパッケージインストールのjitsi-meetがコンポーネントのためのシークレットを生成します。
# このロールは設定ファイルを読み込み、テンプレート化中もシークレットを保持します。
# 自分でシークレットを生成し、使用したい場合は、これらの変数を上書きしますが、
# シークレットを安全に保管することを確認してください。例えば、ansible-vaultやcredstashを使用します。
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# 複数のサービステンプレートで使用されるデフォルトの認証情報。
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# /etc/jitsi/videobridge/configのデフォルト設定ファイルはJVBのデフォルトポートを「5275」としていますが、
# 手動インストールガイドは「5347」を参照しています。
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Jitsi VideobridgeがNATの背後にある場合、ICEを機能させるためにこれらの値を設定します。
jitsi_meet_videobridge_nat:
local_ip: ''
public_ip: ''
# 最近のプライバシー配慮のある追加情報。詳細はここを参照:
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_disable_third_party_requests: true
# Chrome向けの画面共有設定。自分のドメイン専用のブラウザ拡張
# を構築しパッケージ化する必要があります。詳細はhttps://github.com/jitsi/jideshaを参照。
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# ディスク上のローカル拡張のパス。ターゲットホストにコピーします。
# リモートファイル名は、ここで提供されたパスのベース名になります。
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Firefox向けの画面共有設定。Firefoxで画面共有を使用したい場合はmax_versionを「42」に設定し、
# disabledを「false」に設定します。
jitsi_meet_desktop_sharing_firefox_ext_id: 'null'
jitsi_meet_desktop_sharing_firefox_disabled: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'
# これらのdebconf設定は、jitsi-meet debパッケージのインストール中のインタラクティブなプロンプトへの回答を示します。
# カスタムSSL証明書を使用する場合は、他のオプションも設定する必要があります。
jitsi_meet_debconf_settings:
- name: jitsi-meet
question: jitsi-meet/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
- name: jitsi-meet
question: jitsi-meet/jvb-serve
value: "false"
vtype: boolean
- name: jitsi-meet-prosody
question: jitsi-meet-prosody/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
# このロールは自動的にufwをインストールし、jitsi-meetのポートホールを設定します。
# 他の方法でファイアウォールを管理している場合は、これをfalseに設定し、ufwはスキップされます。
jitsi_meet_configure_firewall: true
# このロールは自動的にnginxをインストールし、jitsi-meet用のvhostを設定します。
# 別のロールでウェブvhostsを管理したい場合は、これをfalseに設定します。
jitsi_meet_configure_nginx: true
画面共有
Jitsi Meetはブラウザ拡張機能を通じて画面共有機能をサポートしています。 画面を共有する参加者のみが拡張機能をインストールする必要があり、会議に参加している他の参加者は、 何もインストールせずに共有された画面を見ることができます。 ChromeやFirefox用の独自のブラウザ拡張を構築する必要があります。 詳細なビルド手順については、Jideshaのドキュメントを参照してください。このロールはカスタムChrome拡張でのみテストされています。
Chromeは未承認のウェブサイトからの拡張機能のインストールを禁じているため、.crx
ファイルを直接ダウンロードし、
chrome://extensions
に移動して拡張機能をドラッグアンドドロップしてインストールします。
他の参加者に画面共有をサポートさせたい場合は、拡張機能のURLをJitsi Meetテキストチャットペインで彼らに共有してください。
依存関係
技術的には依存関係ではありませんが、thefinn93.letsencryptは驚くほど簡単にSSL証明書を取得できるため、確認することをお勧めします。
サンプルプレイブック
ロールの使用方法(変数をパラメータとして渡す例)を含めるのは、ユーザーにとっても便利です:
- name: Jitsi Meetサーバーの構成
hosts: jitsi
vars:
# これをホストIPのDNSエントリと一致させてください。
jitsi_meet_server_name: meet.example.com
roles:
- role: thefinn93.letsencrypt
become: yes
letsencrypt_email: "webmaster@{{ jitsi_meet_server_name }}"
letsencrypt_cert_domains:
- "{{ jitsi_meet_server_name }}"
tags: letsencrypt
- role: ansible-role-jitsi-meet
jitsi_meet_ssl_cert_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/fullchain.pem"
jitsi_meet_ssl_key_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/privkey.pem"
become: yes
tags: jitsi
テストの実行
このロールは、テストにMoleculeとServerSpecを使用しています。使用するには次のようにします:
pip install molecule
gem install serverspec
molecule test
特定のコマンドを実行することもできます:
molecule idempotence
molecule verify
詳細については、Moleculeのドキュメントを参照してください。
ライセンス
MIT