cimnine.jitsi_meet
jitsi_meet
Jitsi Meet をインストールするための Ansible ロール。
概要
これは Jitsi Meet をインストールするための Ansible ロールです。TLS 終端プロキシとして nginx を使用し、(オプションで)Let's Encrypt 証明書 を certbot 経由で使用します。対象は Ubuntu Bionic (18.04) です。
要件
- Let's Encrypt を使用するには、ドメインがサーバーを指している必要があります。
- ファイアウォールでポート 80/tcp、443/tcp、4443/tcp、10000/udp を許可する必要があります。
- サーバーが NAT の背後にある場合は、これらのポートを転送してください。
ロール変数
apt_mirror
: Ubuntu では universe を有効にする必要があります。この変数はシステムミラーを示します。デフォルトはhttp://archive.ubuntu.com/ubuntu
。jitsi_domain
: Jitsi にアクセスするためのドメイン名。Let's Encrypt を使用する場合はドメイン名が必要です。そうでなければ IP アドレスでも可。デフォルトは{{ inventory_hostname }}
。certbot_enabled
:{{ jitsi_domain }}
のために certbot をインストールし、証明書をリクエストするかどうか。デフォルトはfalse
。certbot_admin_email
: Let's Encrypt に登録するメールアドレス。certbot_enabled=true
の場合は必須。メールアドレスは存在する必要があります。デフォルト値はありません。jitsi_nat
: Jitsi Meet を NAT の背後で実行しているかどうか。デフォルトはfalse
。有効にする場合はjitsi_nat_local_ip
とjitsi_nat_public_ip
を設定する必要があります。jitsi_nat_public_ip
: Jitsi Meet ホストのパブリック IP アドレス。デフォルトは ipify によって報告された IPv4。jitsi_nat_private_ip
: Jitsi Meet ホストのプライベート IP アドレス。デフォルトは Ansible がホストのデフォルトと考える IPv4。nginx_server_names_hash_bucket_size
: nginx のserver_names_hash_bucket_size
。nginx_modify_server_names_hash_bucket_size
がtrue
の場合、グローバルなnginx.conf
に宣言されます。デフォルトは64
。nginx_modify_server_names_hash_bucket_size
: グローバルnginx.conf
ファイル内のserver_names_hash_bucket_size
の値を変更するかどうか。デフォルトはtrue
。
さらに、certbot に関連する設定については geerlingguy/ansible-role-certbot/.../defaults/main.yml を参照してください。
依存関係
Let's Encrypt / certbot タスクに対して geerlingguy.certbot
Ansible ロール に依存しています:
ansible-galaxy install geerlingguy.certbot
クイックスタート
# macOS で Homebrew を使用する場合
brew install ansible
# Debian で
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
# または Python / pip 経由で
sudo python3 -m pip install ansible
Ubuntu 18.04 の新しいサーバーをセットアップするか、Digital Ocean、Vultr、Hetzner Cloud、Cloudscale、Azure、Google Cloud、AWS などでサーバーを取得してください。
ssh-copy-id ubuntu@my-jitsi-server.com
ssh ubuntu@my-jitsi-server.com
インベントリファイルを作成:
# jitsi.ini
[jitsi]
my-jitsi-server.com jitsi_domain=my-jitsi-server.com certbot_admin_email=admin@my-jitsi-server.com
[jitsi:vars]
ansible_user=ubuntu
ansible_become=yes # root でログインしている場合は `no` に設定
apt_mirror=http://archive.ubuntu.com/ubuntu # 使用するミラーに変更
certbot_enabled=yes
jitsi_nat=no # サーバーが NAT の behind にある場合はオンにします。
プレイブックファイルを作成:
# jitsi.yml
- hosts: jitsi
roles:
- cimnine.jitsi_meet
必要な依存関係をインストール:
ansible-galaxy install cimnine.jitsi_meet
ansible-galaxy install geerlingguy.certbot
インベントリでプレイブックファイルを実行:
# サーバーの sudo にパスワードが不要な場合:
ansible-playbook -i jitsi.ini jitsi.yml
# サーバーの sudo にパスワードが必要な場合:
ansible-playbook -K -i jitsi.ini jitsi.yml
設定
Jitsi Meet はこの Ansible ロールから設定できます。そのためには、上流パッケージの /etc/jitsi/meet/{{ jitsi_domain }}-config.js
ファイルがこのロールによって管理されるファイルに置き換えられます。
この動作を有効にするには、変数 managed_jitsi_config
を定義し、yes
に設定します。
つまり、次の例の最後の行を jitsi.ini
に追加します:
# jitsi.ini
[jitsi]
my-jitsi-server.com jitsi_domain=my-jitsi-server.com certbot_admin_email=admin@my-jitsi-server.com
[jitsi:vars]
ansible_user=ubuntu
ansible_become=yes
apt_mirror=http://archive.ubuntu.com/ubuntu # 使用するミラーに変更
certbot_enabled=yes
jitsi_nat=no
managed_jitsi_config=yes # このロールを通じて Jitsi 設定を管理
次に、すべての必要な設定変数を設定します。デフォルトはロールの defaults/main.yml
ファイルにあります。すべての変数を提供する必要があるので、上書きしたいものだけでなく、すべての変数を提供してください。空の変数(例:analytics: {}
)には注意してください。Jitsi の動作上、これは空のオブジェクトでなければならず、null ではいけません。
すべての設定、それらの値、使用法、および効果は jitsi-meet config.js に記載されています。
最も最小の例は次の通りです:
jitsi_config:
hosts:
domain: "{{ jitsi_domain }}"
muc: "conference.{{ jitsi_domain }}"
bosh: "//{{ jitsi_domain }}/http-bind"
clientNode: "http://jitsi.org/jitsimeet"
testing:
enableFirefoxMulticast: false
p2pTestMode: false
desktopSharingChromeExtId: null
desktopSharingChromeSources: [ 'screen', 'window', 'tab' ]
desktopSharingChromeMinExtVersion: '0.1'
channelLastN: -1
enableWelcomePage: true
enableUserRolesBasedOnToken: false
p2p:
enabled: true
stunServers:
- urls: 'stun:stun.l.google.com:19302'
- urls: 'stun:stun1.l.google.com:19302'
- urls: 'stun:stun2.l.google.com:19302'
preferH264: true
analytics: {}
deploymentInfo: {}
localRecording: {}
e2eping: {}
deploymentUrls: {}
注意:
config.js
の要件は、Jitsi Meet のアップデート時にいつでも変更される可能性があります。新しい要件がないか、プロジェクトの CHANGELOG や告知を確認することをお勧めします。
注意:
構造は大文字と小文字を区別し、config.js
の変数設定に厳密に従います。たとえば、webrctIceUdpDisable
は WebRTCIceUDPDisable
と異なります。Jitsi は変数の名前付けに一貫性がないため(例えば、偶然に URL
と Url
を混在させるなど)、正確な名前に注意してください。
アンインストール
以下のコマンドは、インストールを削除するのに役立ちます。すべてのファイルを完全に削除するわけではありませんが、何かをいじった場合に再開するには十分です。
systemctl stop jitsi-videobridge
systemctl disable jitsi-videobridge
apt-get purge -y jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-web jicofo jitsi-videobridge
systemctl stop nginx
systemctl disable nginx
apt-get purge -y nginx nginx-common nginx-full
apt purge certbot
rm -rf /etc/jitsi /etc/nginx /etc/letsencrypt
crontab -e -u root
reboot
ライセンス
MIT
Install jitsi-meet with nginx and (optionally) certbot
ansible-galaxy install cimnine.jitsi_meet