閉域ネットワークでのWEB会議システム構築!【Ubuntu18.04 Server】で【ApacheOpenMeetings5.0】を立てて動かしてみる方法!

スポンサーリンク
037-PCスマホ等

さて、コロ助(新型コロナウイルス)の影響のせいで、地方の田舎の役所でも・・・

テレワーク・・・やら・・・

WEB会議・・・やら・・・・

感染経路となりうるお金のやり取りを無くすために、電子決済(PayPay等)の導入を検討しろ・・・やら・・・

結構面倒な仕事が上から降ってきております。

さて、その中でも今回は、管理人的に一番やっかいなWEB会議をどうにかしようと悪戦苦闘しましたので、その内容を掲載します。

役所は自治体セキュリティクラウドで【ZOOM】等のWEB系の会議システムは使えない

まず、役所は自治体セキュリティクラウドのせいで、基本的に役所内からインターネットに接続できる環境はありません。

WEB系のシステムは、無害化が必須となっておりますので、インターネットで検索を掛けるにも、インターネット側に立てた仮想環境から画面転送を行うという面倒くさい手法が取られています。

ということで、最近はやりませんが、庁舎内にサーバーを立ててなんとか、オンプレミスで庁内のみでTV会議がでいる環境を整える必要があります。

しかも予算がないのでとにかく低予算で立てる必要があります。

Ubuntu+OpenMeetingsという方法があるらしい

ネットでいろいろ調べてみると、数少ないですが、オープンソフトウエアでTV会議システムを構築できる方法がある様でした。

代表的なものが

Ubuntu+Openmeetingsという方法の様でしたので、早速これでサーバーを立ててみることにしました。

Ubuntu18.04 Serverを立てる

まずは、Ubuntuサーバーを立てる必要がありあす。

これは、ISOイメージがダウンロードできますので、インストールしましょう。

サーバーマシンがベストですが、無ければ、ある程度高性能な(ゲーミングマシン程度)デスクトップPCでもOKだと思います。

管理人の役所には、それすらも余っていませんでしたので、ノートPCで立てました。

スペックは、つぎのとおりです。

  • CPU:Corei7
  • メモリ:8G
  • ストレージ:512GBSSD

最新のUbuntu Serverのダウンロードはこちらから

Ubuntu18.04Serverのダウンロードはこちらから

ダウンロードしたISOイメージをDVDに焼くかブータブルUSBを使ってインストールします。

ブータブルUSBを作るには

ブータルブUSBを作るには【rufus】が便利だと思います。

【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 java

LibreOfficeのインストール

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はチャット機能・ファイル共有・ホワイトボード機能・画面共有等便利機能が多い。

インストールは少し難しい

管理人が立てたサーバーのスペックの問題かログインするまでに時間が掛かる

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました