さて、コロ助(新型コロナウイルス)の影響のせいで、地方の田舎の役所でも・・・
テレワーク・・・やら・・・
WEB会議・・・やら・・・・
感染経路となりうるお金のやり取りを無くすために、電子決済(PayPay等)の導入を検討しろ・・・やら・・・
結構面倒な仕事が上から降ってきております。
さて、その中でも今回は、管理人的に一番やっかいなWEB会議をどうにかしようと悪戦苦闘しましたので、その内容を掲載します。
役所は自治体セキュリティクラウドで【ZOOM】等のWEB系の会議システムは使えない
まず、役所は自治体セキュリティクラウドのせいで、基本的に役所内からインターネットに接続できる環境はありません。
WEB系のシステムは、無害化が必須となっておりますので、インターネットで検索を掛けるにも、インターネット側に立てた仮想環境から画面転送を行うという面倒くさい手法が取られています。
ということで、最近はやりませんが、庁舎内にサーバーを立ててなんとか、オンプレミスで庁内のみでTV会議がでいる環境を整える必要があります。
しかも予算がないのでとにかく低予算で立てる必要があります。
Ubuntu+OpenMeetingsという方法があるらしい
ネットでいろいろ調べてみると、数少ないですが、オープンソフトウエアでTV会議システムを構築できる方法がある様でした。
代表的なものが
Ubuntu+Openmeetingsという方法の様でしたので、早速これでサーバーを立ててみることにしました。
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
OpenJava11のインストール
sudo apt install openjdk-11-jdk openjdk-11-jdk-headless
バージョンを確認する
sudo java -version
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
が表示されればOK
他のバージョンのOpenJavaが入っているなら11を選択する。
sudo update-alternatives –config javaLibreOfficeのインストール
sudo apt install libreoffice
ImageMagic・sox,ffmpegと関連ライブラリ等のインストー
sudo apt install -y imagemagick libjpeg62 zlib1g-dev sox ffmpeg vlc
設定ファイルの変更
ここで、次の設定ファイルの変更です。
/etc/ImageMagick-6/policy.xml
管理人は、【Vi】の使い方が苦手なので、Serverに【Xwindows】をインストールと【Gedit】をインストールしました。
sudo apt-get install xinit sudo apt-get install gedit sudo reboot
これで、サーバー側の【GUI】が使えるはずです。
【Gedit】で編集しましょう。
<!– 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
次のソースファイルを新規作成します。
/etc/apt/sources.list.d/kurento-dev.list
これもGUIの【GEDIT】を使うと簡単です。
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
次の設定ファイルを変更します。
/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をダウンロードします。
wget https://downloads.apache.org/openmeetings/5.0.0-M4/bin/apache-openmeetings-5.0.0-M4.tar.gz
展開して配置する。
tar xzvf apache-openmeetings-5.0.0-M4.tar.gz mv apache-openmeetings-5.0.0-M4 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
セキュリティ関連のエラーが表示されますが無視して先に進みます。
初期設定は、下図を参考に進めます。
メールを送信する機能がありますので、利用できるメールサーバーを設定しましょう。
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
まとめ
OpenMeetingsはチャット機能・ファイル共有・ホワイトボード機能・画面共有等便利機能が多い。
インストールは少し難しい
管理人が立てたサーバーのスペックの問題かログインするまでに時間が掛かる
コメント