昨年ですが・・・
コロナ禍でWEB会議等が加速し・・・
インターネット環境が無い職場で、なんとかWEB会議システムをオンプレミスで導入するために・・・
【Ubuntu18.04-Server】+【OpenMeetings-5.0.0】でWEB会議サーバーを立てた訳でありますが・・・
年度が変わり、もしサーバーが壊れた場合に、同様の環境で構築できるのかを再度検証してみました。
- Ubuntu20.04.3 Serverでは無理だった
- Ubuntu18.04 Serverを立てる
- ブータブルUSBを作るには
- サーバーが立ったらSSHで接続できることを確認する
- まずは最新にアップーデート
- OpenJava17のインストール
- 設定ファイルの変更
- MariaDBのインストール
- Kurento Media Serverのインストール
- OpenMeetingsのインストール
- OpenMeetingsの自動起動スクリプトを配置
- タイムアウトの設定
- OpenMeetingsの初期設定
- 日本語環境にするには
- UbuntuServerのIPアドレスの変更方法
- IPアドレスの変更は【jitsi meet】よりも【open meetings】の方が楽
- 所要時間
- まとめ
Ubuntu20.04.3 Serverでは無理だった
まず、どうせなら・・・
最新のUbuntu Serverで立てようと試みたのですが・・・
必要となるソストウエア【Kurent Media Server】が・・・
【Ubuntu20.04.3】には未対応の様で、インストール時点でコケました。
ということで、従来通り【Ubntu 18.04】でイスントールを検証してみました。
Ubuntu18.04 Serverを立てる
まずは、Ubuntuサーバーを立てる必要がありあす。
これは、ISOイメージがダウンロードできますので、インストールしましょう。
サーバーマシンがベストですが、無ければ、ある程度高性能な(ゲーミングマシン程度)デスクトップPCでもOKだと思います。
管理人の役所には、それすらも余っていませんでしたので、ノートPCで立てました。
スペックは、つぎのとおりです。
- CPU:Corei7
- メモリ:8G
- ストレージ:512GBSSD
Ubuntu18.04Serverのダウンロードはこちらから
ダウンロードしたISOイメージをDVDに焼くかブータブルUSBを使ってインストールします。
ブータブルUSBを作るには
ブータルブUSBを作るには【rufus】が便利だと思います。
使い方は、非常に簡単です。
赤枠の部分、USBドライブとISOファイルを選択してスタートをクリックすれば、ブータブルUSBが作成されます。
サーバーが立ったらSSHで接続できることを確認する
Ubuntu-Serverが立ったらまずは、SSHで接続できることを確認する。
OpenMeetingsのインストールは、基本的に【CUI】となります。
Windowsの様に【GUI】とはいきませんので、リモートで【SSH】で接続できることが必須となります。
Ubuntu-Serverが立ったらまずは、インストール時に設定したサーバーの【IP-Address】を確認しましょう。
コマンドで次のとおりに入力します。
ip address show
IP-Addressが確認できますので、【SSH】で接続できるか確認します。
管理人は、【ttermpro】を使っています。
まずは最新にアップーデート
【ttermpro】で接続し最新状態にアップデートし再起動します。
sudo apt update sudo apt -y dist-upgrade sudo apt -y autoremove sudo reboot
OpenJava17のインストール
※【OpenJava】については・・・
sudo apt search openjdk-\(\.\)\+-jre$
で最新Ver確認すると・・・
【 openjdk-17-jdk 】まである様ですので・・・
最新バージョンを入れてみます。
sudo apt install openjdk-17-jdk openjdk-17-jdk-headless
バージョンを確認する
sudo java -version
openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 17+35-Ubuntu-118.04) OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-118.04, mixed mode, sharing)
が表示されればOK
他のバージョンのOpenJavaが入っているなら17を選択する。
sudo update-alternatives –config javaLibreOfficeのインストール
sudo apt install libreoffice
ImageMagic・sox,ffmpegと関連ライブラリ等のインストー
sudo apt install -y imagemagick libjpeg62 zlib1g-dev sox ffmpeg vlc
設定ファイルの変更
ここで、次のコマンドで設定ファイルの変更です。
sudo vi /etc/ImageMagick-6/policy.xml
【i】をおして挿入モードにして
下の様に一部をコメントアウトします。
【ESC】ボタンでコマンドモードに戻り
【:wq】で保存して閉じる事ができます。
【:q!】だと、保存せずに閉じます。
<!– disable ghostscript format types –>
<!– <policy domain=”coder” rights=”none” pattern=”PS” /> –>
<policy domain=”coder” rights=”none” pattern=”PS2″ />
<policy domain=”coder” rights=”none” pattern=”PS3″ />
<policy domain=”coder” rights=”none” pattern=”EPS” />
<!– <policy domain=”coder” rights=”none” pattern=”PDF” /> –>
<policy domain=”coder” rights=”none” pattern=”XPS” />
</policymap>
黄色の部分をコメントアウトします。
MariaDBのインストール
sudo apt install mariadb-server sudo mysql
MariaDB [(none)]> create database openmeetings default character set 'utf8'; MariaDB [(none)]> grant all privileges on openmeetings.* to 'openmeetings'@'localhost' identified by 'om_password' with grant option; MariaDB [(none)]> quit
※他の方の設定を参考にして
データベース :openmeetings
ユーザー: openmeetings
パスワードはom_password
しました。
Kurento Media Serverのインストール
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
次のコマンドを入力してソースファイルを新規作成します。
sudo vi /etc/apt/sources.list.d/kurento-dev.list
【tera term】なら、編集モードに変更後に、コピペができます。
deb [arch=amd64] http://ubuntu.openvidu.io/6.13.0 bionic kms6 deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic main restricted deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic universe
Kurento Media Serverのインストール
<!-- 不要と思われる**ここから** sudo apt update sudo apt-get install kms-pointerdetector sudo apt-get install kms-chroma sudo apt-get install kms-crowddetector sudo apt-get install kms-platedetector **ここまで** -->
sudo apt update sudo apt install -y kurento-media-server
次のコマンドで設定ファイルを変更します。
sudo vi /etc/default/kurento-media-server
…
# Service script settings
# =======================
START_DAEMON="true" # If not "true", the daemon will refuse to load
DAEMON_ARGS="" # Passed directly to the kurento-media-server executable
#DAEMON_USER="kurento" # User as whom Kurento Media Server will run
DAEMON_USER="nobody"
DAEMON_LOG_DIR="/var/log/kurento-media-server" # Where to store daemon logs
サービスの再起動と自動機能を設定します。
sudo systemctl start kurento-media-server sudo /lib/systemd/systemd-sysv-install enable kurento-media-server
OpenMeetingsのインストール
カレントディレクトリは、最上位のルートディレクトリに移動しておきます。
OpenMeetingsをダウンロードします。
管理人が確認した時点では・・・
【6.2.0】が最新でしたので、この【6.2.0】を入れてみました。
wget https://archive.apache.org/dist/openmeetings/6.2.0/bin/apache-openmeetings-6.2.0.tar.gz
展開して配置する。
tar xzvf apache-openmeetings-6.2.0.tar.gz mv apache-openmeetings-6.2.0 openmeetings mkdir -p openmeetings/webapps/openmeetings/data/streams/{1,2,3,4,5,6,7,8,9,10,11,12,13,14} mkdir -p openmeetings/webapps/openmeetings/data/streams/hibernate sudo chmod -R 750 openmeetings/webapps/openmeetings/data/streams sudo chown -R nobody:root openmeetings/ sudo mv openmeetings/ /usr/share/
mysql-connectorをダウンロードして配置する。
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.20.tar.gz tar xzvf mysql-connector-java-8.0.20.tar.gz sudo chown nobody:root mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar sudo mv mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar /usr/share/openmeetings/webapps/openmeetings/WEB-INF/lib/
OpenMeetingsの自動起動スクリプトを配置
次のファイルを作成する
/etc/init.d/openmeetings
#!/bin/sh ### BEGIN INIT INFO # Provides: Openmeetings # Required-Start: mysql apache2 kurento-media-server # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Apache Openmeetings Service # Description: Openmeetings provides video conferencing, instant messaging, # white board, collaborative document editing and other groupware # tools using API functions of the Red5 Streaming Server for # Remoting and Streaming. ### END INIT INFO # set the environment # JAVA_OPTS="" # CATALINA_OPTS="" CATALINA_HOME=/usr/share/openmeetings RUN_USER=nobody # set TIME OUT values # TIMELIMIT=10 # SLEEPTIME=40 # Function to wait until all Tomcat processes are killed waitForTomcatToDie() { PROCESSES=`ps auxwww | grep $HOME | grep 'java' | grep 'tomcat' | grep -v 'grep'` while [ ! -z "$PROCESSES" ] && [ $SECONDS -lt $TIMELIMIT ] && [ $TIMELIMIT -ne 0 ]; do echo -n "." sleep $SLEEPTIME PROCESSES=`ps auxwww | grep $USER | grep 'java' | grep 'tomcat' | grep -v 'grep'` done echo "" if [ ! -z "$PROCESSES" ]; then PROCESS_ID=`echo $PROCESSES | awk '{ print $2 }'` echo "Killing process: $PROCESS_ID" kill -9 $PROCESS_ID fi } # See how we were called. case "$1" in start) $CATALINA_HOME/bin/startup.sh -u $RUN_USER -Dcatalina.base$CATALINA_BASE ;; # debug) # DEBUG_PORT=10001 ## export JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address{DEBUG_PORT},server=y,suspend=n" # $CATALINA_HOME/bin/startup.sh -Dcatalina.base{CATALINA_BASE} # ;; stop) # $CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/shutdown.sh waitForTomcatToDie echo "...Tomcat stopped." ;; restart) $0 stop echo "...Restarting..." sleep 8 $0 start ;; status) status $PROG -p $PIDFILE RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|status}" RETVAL=1 esac exit $RETVAL
ファイルを有効化する
sudo chmod 755 /etc/init.d/openmeetings sudo systemctl daemon-reload sudo /lib/systemd/systemd-sysv-install enable openmeetings sudo systemctl start openmeetings
タイムアウトの設定
タイムアウトの設定をしておく120分程度が妥当か?
次のファイルを編集しておく
/usr/share/openmeetings/webapps/openmeetings/WEB-INF/web.xml
…
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<!-- 設定 ここから 120分=2時間-->
<session-config>
<session-timeout>
120
</session-timeout>
</session-config>
<!-- 設定ここまで -->
</web-app>
OpenMeetingsの初期設定
ブラウザでアクセスしてみる。
https://サーバーのIPアドレス:5443
セキュリティ関連のエラーが表示されますが無視して先に進みます。
初期設定は、下図を参考に進めます。
メールを送信する機能がありますので、利用できるメールサーバーを設定しましょう。
日本語環境にするには
さて、このソフトウエア・・・
設定画面は日本語ですが・・・
あらためてログインすると英語です。
ということで、日本語環境に変更する必要があります。
まず、作成した管理者ユーザーでログインするわけですが・・・
ここからいきなり英語ですので、まず管理者ユーザーの環境を日本語にします。
やり方は、簡単で・・・ユーザー設定の【language】を【japanese】に変更します。
次に、デフォルトの言語設定ですが・・・
コンフィグファイルの【default.lang.id】の値を【15】に変更します。
ここは、イマイチ分かりにくいですので、気を付けたい部分です。
UbuntuServerのIPアドレスの変更方法
まず、デフォルとの設定ファイルをリネームします。
cd /etc/netplan/ sudo mv 50-cloud-init.yaml 50-cloud-init.yaml.disabled
新たにネットワーク設定ファイルを次のファイル名で作成する
99-network-config.yaml
設定例は次を参考にしてください。
設定にあたっては、スペースの位置が重要のようです。
1行目のネットワークの最後の文字からエンターを押して改行された部分から次の行を順に入力すると良い様です。
改行により自動的にインデントされますが、そのまま入力していってください。
管理人の環境では、インデント位置を変更すると、ネットワークの設定変更で何故かエラーがでました。
network: version: 2 renderer: networkd ethernets: ens50: dhcp4: false dhcp6: false addresses: [NNN.NNN.NNN.NNN/24] gateway4: NNN.NNN.NNN.NNN nameservers: addresses: [NNN.NNN.NNN.NNN,[NNN.NNN.NNN.NNN]
ネットワーク設定を反映させます。
sudo netplan apply
IPアドレスの変更は【jitsi meet】よりも【open meetings】の方が楽
インストール環境と運う環境が異なり、IPアドレスの変更を必要とする場合は・・・
【jitsi meet】よりも【open meetings】の方が楽ですね。
サーバーのIPアドレスを変更するだけで、そのまま使えます。
また、職場で実際にこのシステムを1年以上運用していますが・・・
結構便利です。
例えば・・・
参加者がカメラとマイクを使えないルームを作って、講義形式で配信するのであれば、100人くらいユーザーが繋がっても問題無く使用できます。
サーバーとネットワーク環境がショボイでの双方向でカメラとマイクを使用できるようにすると・・・
30接続くらいで、サーバーが固まります。
これは、管理人の構築環境が、古いノートPCをサーバーとして再利用していること・・・
職場のNW環境が古く、通信速度が出ていないことが原因と思われます。
あと・・・
ビデオキャプチャーをカメラ代わりに使えば・・・
ZOOMを使ったインターネット上の研修も、インターネット環境の内職場内で【open meetings】を使って視聴することができます。
所要時間
Ubuntu Serverの構築から・・・
open meetingsのインストールから立ち上げ確認までで・・・
今回は時間を計りながらやったのですが・・・
概ね、1時間半くらいでできました。
ただし、【open meetings】は、ユーザーの作成などが別途必要となりますので・・・
そこまで入れると、作成するユーザー数等によって、掛かる時間が変わってきます。
コンフィグファイルばバックアップととれるようですが・・・
サーバーを立て直すと、なぜか上手く持って行けませんでした。
ユーザー数が多くなってくると、再構築がかなり面倒かもしれません。
管理人の職場では・・・
管理者ユーザーを1つ
視聴用ユーザーを何個か
作って、視聴用ユーザーは、共用させています。
ユーザーは、多重ログインでも問題なく使用できる様です。
まとめ
OpenMeetingsはチャット機能・ファイル共有・ホワイトボード機能・画面共有等便利機能が多い。
インストールは少し難しい
管理人が立てたサーバーのスペックの問題かログインするまでに時間が掛かる
コメント