udelarinterior.jitsi_meet
jitsi-meet
Jitsi Meetのビデオ会議ソフトウェアをインストールし、設定します。
要件
サーバーには既にDNSが向けられており、SSLキーが必要です。ドメインのSSLキーがまだない場合は、geerlingguy.certbot Ansibleロールを使用して、LetsEncryptから(無料の)SSL証明書を取得することを検討してください。
また、Jitsi Meetコンポーネントが動作するためには、TCPの443ポートとUDPの10000ポートを開放する必要があります。このロールでは、jitsi_meet_configure_firewall: true
を設定することでufw
を使用してこれらのポートを許可できます。iptablesなどの他のホストベースのファイアウォールソリューションを使用する場合は、jitsi_meet_configure_firewall: false
を維持してください。AWSなどを使用している場合は、関連するセキュリティグループでこれらのポートを開放する必要があります。
ロール変数
########################################
###### 最も重要な変数 ###############
# あなたのケースに合わせて調整する必要があります #
########################################
# SSLがない場合、「localhost」が正しいデフォルトです。SSL情報が提供されている場合、
# それなら本物のドメイン名が必要です。Ansibleが推測するFQDNを使用していますが、
# 短いホスト名を使用する場合、変数値を明示的に設定できます。
# 自動Nginx設定が無効になっている場合もFQDNを使用してください。
jitsi_meet_server_name: "{{ ansible_fqdn | default('localhost') }}"
# 公式ドキュメントからの注意:
# インストーラーはNginxまたはApacheが存在するかを確認し(その順序で)、見つかったWebサーバー内で
# Jitsi Meetを提供するためのバーチャルホストを構成します。何も見つからなかった場合は、デフォルトでNginxになります。
# 同じマシンでポート443でNginxを実行している場合は、turnserver設定をスキップした方が良いです。
# そうしないと、現在のポート443と衝突します。
jitsi_meet_install_recommends: yes
# (jitsi_meet_install_recommends == no) の場合、turnserverはインストールされず、利用できません。
jitsi_meet_use_stun_turn: false
# ピア・ツー・ピア接続で使用されるSTUNサーバー
jitsi_meet_stun_servers:
- 'meet-jit-si-turnrelay.jitsi.net:443'
# P2Pモードを有効にする
jitsi_meet_enable_p2p_mode: true
# nginxおよびjitsi-meetがIPv6でもリスニングするように設定
jitsi_meet_ipv6_enable: true
# HTTPS証明書を作成して構成し、後でLet's Encrypt証明書に置き換えることができます。
jitsi_meet_cert_choice: "新しい自己署名証明書を生成(後でLet's Encrypt証明書を取得する機会があります)"
# Jitsiインストーラーのスクリプトの動作のため、この値を維持することをお勧めします。
# カスタム証明書をここに設定しないのは、空の文字列が
# カスタムNginx構成タスクをスキップさせてしまうからです。
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
#############
### NGINX ###
# このロールは、jitsi-meet用のnginxバーチャルホストを自動的に構成します。
# 別のロールでWebバーチャルホストを管理したい場合は、これをfalseに設定してください。
jitsi_meet_configure_nginx: true
# お好みで、他のパスを示すjitsi_meet_nginx.conf.j2テンプレートを使用できます。
jitsi_meet_nginx_config_template: "jitsi_meet_nginx.conf.j2"
###########################################
# インストールをカスタマイズするのに役立つ他の変数
###########################################
# jitsi-meetのDebianパッケージインストールは、コンポーネント用の秘密を生成します。
# このロールは構成ファイルを読み取り、秘密を保持します。
# 自分の秘密を生成して使用したい場合は、これらの変数を上書きしますが、必ず
# 秘密を安全に保管してください。
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
##################
### APT関連 ###
# jitsi meetをインストールする前に必要なパッケージのリスト。
jitsi_meet_base_packages:
- apt-transport-https
- debconf
- debconf-utils
# Jitsi Meetコンポーネントのナイトリービルドを使用するかどうか。
jitsi_meet_use_nightly_apt_repo: false
jitsi_meet_apt_repos:
stable:
repo_url: 'deb https://download.jitsi.org/ stable/'
unstable:
repo_url: 'deb https://download.jitsi.org unstable/'
jitsi_meet_apt_key_url: 'https://download.jitsi.org/jitsi-key.gpg.key'
jitsi_meet_apt_key_id: '66A9CD0595D6AFA247290D3BEF8B479E2DC1389C'
# debconf設定は、jitsi-meet debパッケージのインストール中に
# 発生する対話型プロンプトへの回答を表します。
jitsi_meet_debconf_settings:
- 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
- name: jitsi-videobridge
question: jitsi-videobridge/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
- name: jitsi-meet-web-config
question: jitsi-meet/cert-choice
value: "{{ jitsi_meet_cert_choice }}"
vtype: select
- name: jitsi-meet-web-config
question: jitsi-meet/cert-path-key
value: "{{ jitsi_meet_ssl_key_path }}"
vtype: string
- name: jitsi-meet-web-config
question: jitsi-meet/cert-path-crt
value: "{{ jitsi_meet_ssl_cert_path }}"
vtype: string
#######################
### サーバーファイアウォール ###
# このロールは、jitsi-meetポートホールの設定でufwを自動的にインストールおよび構成できます。
# 他の方法でファイアウォールを管理している場合はfalseを保持し、ufwタスクはスキップされます。
jitsi_meet_configure_firewall: false
jitsi_meet_firewall_ports_allow:
tcp:
- "80" # HTTP / Lets Encrypt
- "443" # HTTPS
udp:
- "10000" # Videobridge
# NAT接続をJitsi Meetに構成します。
jitsi_meet_behind_nat_firewall: false
jitsi_meet_nat_private_ip: 127.0.0.1
jitsi_meet_nat_public_ip: 255.255.255.255
##############
### Jicofo ###
# デフォルトの認証情報は、複数のサービステンプレートで使用されます。
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
jitsi_meet_jicofo_loglevel: INFO
# お好みで、他のパスを示すjitsi_meet_jicofo_config_templateを使用できます。
jitsi_meet_jicofo_config_template: jicofo_config.j2
jitsi_meet_jicofo_sip_template: jicofo_sip-communicator.properties.j2
###################
### Videobridge ###
# デフォルトの構成ファイルは/etc/jitsi/videobridge/configにあり、JVBのデフォルトポートは「5275」ですが、
# 手動インストールガイドでは「5347」を参照しています。
jitsi_meet_videobridge_port: 5347
jitsi_meet_videobridge_loglevel: INFO
jitsi_meet_videobridge_opts: '--apis=,'
jitsi_meet_videobridge_statistics_enable: true
jitsi_meet_videobridge_statistics_interval: 1000
jitsi_meet_videobridge_statistics_transport: 'muc'
# HTTPS経由でcolibri/statsを公開するためのリバースプロキシを構成します。
jitsi_meet_expose_colibri_stats: false
# 他のサーバーの資格情報を有効にするための辞書型です。
jitsi_meet_videobridge_other_xmpp_servers: {}
# お好みで、他のパスを示すjitsi_meet_videobridge_config_templateを使用できます。
jitsi_meet_videobridge_config_template: videobridge_config.j2
jitsi_meet_videobridge_sip_template: videobridge_sip-communicator.properties.j2
############
### Meet ###
# "anonymous"を設定すると、誰でもビデオ会議サーバーを使用できます。
jitsi_meet_authentication: anonymous
# プライバシーに配慮した追加機能
jitsi_meet_enable_third_party_requests: true
# Chrome用の画面共有設定
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_enable_desktop_sharing_chrome: true
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# 他のパスのローカル拡張機能
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Firefox用の画面共有設定
jitsi_meet_desktop_sharing_firefox_ext_id: 'null'
jitsi_meet_enable_desktop_sharing_firefox: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'
jitsi_meet_channel_last_n: -1
jitsi_meet_enable_layer_suspension: false
jitsi_meet_start_audio_only: false
jitsi_meet_show_audio_levels: false
jitsi_meet_audio_levels_interval: 200
jitsi_meet_resolution: 480
jitsi_meet_constraints_video_aspect_ratio: "16 / 9"
jitsi_meet_constraints_video_height_ideal: "{{ jitsi_meet_resolution }}"
jitsi_meet_constraints_video_height_max: 720
jitsi_meet_constraints_video_height_min: 240
# お好みで、他のパスを示すjitsi_meet_config_js_templateを使用できます。
jitsi_meet_config_js_template: jitsi_meet_config.js.j2
jitsi_meet_interface_config_js_template: interface_config.js.j2
###################
### SIPゲートウェイ ###
jitsi_meet_configure_sip_gateway: false
jitsi_meet_jigasi_account: [email protected]
jitsi_meet_jigasi_password: fdi49fndKjhe3
########################
### UIカスタマイズ ###
jitsi_meet_customize_the_ui: false
jitsi_meet_lang: 'en'
jitsi_meet_appname: 'アプリ名'
jitsi_meet_org_link: 'https://link-to-my-organization.com'
jitsi_meet_welcomepage_title: '安全で、完全機能を備え、完全に無料のビデオ会議'
jitsi_meet_welcomepage_description: 'さあ、チーム全体でビデオチャットをしましょう。知っている人全員を招待しても大丈夫です。__app__は、1日中、毎日無料で使用できる、完全に暗号化された100%オープンソースのビデオ会議ソリューションです。アカウントは必要ありません。'
# デフォルトでは空文字列ですが、CSSファイルはサイト全体のバンドルファイルであり、
# リリースごとに非常に頻繁に変わります。カスタムCSSファイルがある場合のみ、
# この変数にそのパスを示すと置き換えられます。
jitsi_meet_css_file: ''
jitsi_meet_welcome_page_additions_file: welcomePageAdditionalContent.html.j2
jitsi_meet_title_template: title.html.j2
jitsi_meet_favicon_file: images/favicon.ico
jitsi_meet_logo_file: images/jitsilogo.png
jitsi_meet_watermark_file: images/watermark.png
jitsi_meet_default_background: '#474747'
jitsi_meet_show_video_background: true
jitsi_meet_default_remote_display_name: '仲間のJitster'
jitsi_meet_default_local_display_name: '私'
jitsi_meet_generate_roomnames_on_welcome_page: true
jitsi_meet_lang_detection: false # システム言語の検出を許可します。
画面共有
Jitsi Meetは、ブラウザ拡張機能を介して画面共有機能をサポートしています。 画面を共有するパーティのみが拡張機能をインストールする必要があります。他の参加者は何もインストールせずに、共有された画面を表示できます。 ChromeやFirefox用に自分のブラウザ拡張機能を作成する必要があります。 詳細なビルド手順についてはJideshaのドキュメントを参照してください。このロールでは、カスタムChrome拡張機能のみがテストされています。
Chromeは承認されていないウェブサイトからの拡張機能のインストールを禁じているため、.crx
ファイルを直接ダウンロードし、chrome://extensions
に移動して、ドラッグ&ドロップしてインストールする必要があります。別の参加者に画面共有サポートを提供したい場合は、Jitsi Meetのテキストチャットウィンドウを通じて、拡張機能のURLを共有してください。
依存関係
技術的には依存関係ではありませんが、非常に簡単にSSL証明書を取得するためにgeerlingguy.certbotをチェックすることをお勧めします。
例のPlaybook
あなたのロールの使い方の例(例えば、変数をパラメータとして渡す場合)を含むことは、ユーザーにとっても良いことです:
- name: Jitsi-meetサーバーを構成します。
hosts: jitsi
vars:
# ホストIPのDNSエントリに一致するように変更してください。
jitsi_meet_server_name: meet.example.com
roles:
- role: geerlingguy.certbot
become: yes
certbot_create_if_missing: true
certbot_admin_email: "webmaster@{{ jitsi_meet_server_name }}"
certbot_certs:
- domains:
- "{{ jitsi_meet_server_name }}"
certbot_create_standalone_stop_services: []
- role: udelarinterior.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