オンプレミス版 MUN サーバ導入準備(Linux)

目次

  概要
  VMware Workstation Player のセットアップ
  CentOS のセットアップ
  WinSCP のセットアップ
  オンプレミス版 MUN サーバパッケージの導入
  パッケージのインストール


概要

Linux環境における、オンプレミス版 MUN サーバの環境構築方法について

  このページでは、Linux環境における、オンプレミス版 MUN サーバの環境構築について、その手順を説明します。
  Linux 環境を用いないのであれば、このページ内容はスキップして、状況に合わせて以下のページをご覧ください。

   ■ 既にサーバ導入準備が済んでいる場合
     → 「■ オンプレミス版MUNサーバのセットアップ」 > 「MUN サーバのビルド・実行・停止」

   ■ まだサーバ導入準備が済んでおらず、Linux環境以外で構築したい場合
     → Windows であれば
        「■ オンプレミス版MUNサーバのセットアップ」 > 「オンプレミス版 MUN サーバ導入準備(Windows)」
     → MacOSX であれば
        「■ オンプレミス版MUNサーバのセットアップ」 > 「オンプレミス版 MUN サーバ導入準備(Mac)」


VMware Workstation Player のセットアップ
(WindowsをホストOSとしつつ、Linuxサーバの環境を仮想マシンで動かす場合)

VMware Workstation Player とは

  VMware Workstation Player とは「コンピュータマシンの仮想化ソフトウェア」の1つで、
  現在使用中のコンピュータ上でLinuxサーバを動作させるための「仮想マシン」を構築します。

  既に物理マシンやクラウドなどの動作環境を用意されている場合には、この項目の手続きは不要です。
  そのまま次の CentOS のセットアップ に進んでください。

  また、無償で利用できる VMware WorkStation Player は MacOSX には対応していませんので、
  ここでは Windows をホストOSとした場合の Linux 環境構築に限定します。

  MacOSX については、スタンドアロンで動作させたサーバ環境をほぼそのまま Linux サーバにデプロイして運用可能ですので、
  オンプレミス版 MUN サーバを動かす点においては Linux サーバを仮想化させる必要はありません。
  MacOSX をご使用されている場合には、以下のページをもとに MacOSX 上で動作されることを推奨いたします。
     「■ オンプレミス版MUNサーバのセットアップ」 > 「オンプレミス版 MUN サーバ導入準備(MacOSX)」

  Windows 環境にて、VMware Player をセットアップする手順については、以下のパネルを順にクリックして指示通りに進めてください。


  まずは「VMware Workstation Player for Windows」をダウンロードします。
  以下のリンクをクリックしてください。

    http://www.vmware.com/jp.html

  リンク先のページにある左側のメニューから「ダウンロード」を選択します。

  サブメニュー画面が表示されますので、「無償製品のダウンロード」内の「Workstation Player」を選択してください。

  画面が切り替わりますので、最新版の「for Windows」のインストーラーをダウンロードしてください。



  ダウンロードしたインストーラーを実行すると、以下のウィンドウが表示されますので、「次へ」ボタンを押してください。

  次の画面で、「使用許諾契約書に同意する」のチェックボックスを入れ、「次へ」ボタンを押します。

  次の画面で、インストールフォルダを変更したい場合には「変更」で変更してください。
  「拡張キーボード機能」にチェックを入れ、「次へ」ボタンを押してください。

  次の画面で、「VMware カスタマ エクスペリエンス改善プログラムに参加します」のチェックを外した上で、
  「次へ」ボタンを押してください。

  次の画面はそのまま、「次へ」ボタンを押します。

  次の画面でインストール準備完了ですので、「インストール」ボタンを押します。

  インストール中は以下のような画面に切り替わります。処理が自動的に進むまで待ちましょう。

  インストールが完了したら「完了」ボタンを押しましょう。

  インストール完了後、再起動が促されたら、他の作業中のアプリケーションを終了させた上で
  「はい」ボタンを押し、コンピュータを再起動させてください。



  インストールおよび再起動が完了した後、デスクトップ上に表示される
  「VMware Workstatioon 14 Player」のアイコンをダブルクリックすると、VMware が起動します。

  起動すると以下の画面が表示されます。

  個人利用・非営利目的であれば「非営利目的で VMware Workstation 14 Player を無償で使用する」の
  ラジオボタンを選択し、「続行」ボタンを押してください。

  続行ボタンを押すと以下の画面に切り替わりますので、「完了」ボタンを押してください。

  以下の画面になればひとまず完了です。
  ※ 仮想マシンの構築はOSインストールの段階で行ないます。




CentOS のセットアップ
(Linux をインストールする場合)

CentOS とは

  Linux の代表的なディストリビューション(パッケージ)の1つで、最も著名なLinuxディストリビューションである
  「RedHat Enterprise」を無償で利用することのできるクローンOSです。
  MUNでは、サーバOSとしてCentOSを推奨しています。

  既に CentOS 6.x / 7.x のサーバ環境があれば、この項目の手続きは不要です。
  そのまま次の WinSCP のセットアップ に進んでいただいて結構です。

  また他のLinuxディストリビューションを導入の場合も同様ですが、
  できれば CentOS 等の RedHat 系ディストリビューションのものを導入されることをお勧めいたします。
  (Debian系などであれば、パッケージインストール等、ディストリビューションごとにコマンドを置き換えて読んでください)
  いずれにしても、そのまま次の WinSCP のセットアップ に進んでいただいて結構です。

  CentOS をセットアップする手順については、以下のパネルを順にクリックして指示通りに進めてください。

物理サーバ(外部サーバ)に設置する場合には、「仮想マシンの作成」の部分を読み替えてください。

  物理サーバ(外部サーバ)として設置する場合には、このページにある「仮想マシンの作成」を読み替えてください。

  具体的には、仮想マシンを作成せず、ISOを物理サーバ(外部サーバ)にマウントしてインストールします。
  (一般的に物理サーバであれば、DVDを作成しますが、その方法についてはここでは割愛します。)


  まずは「CentOS 7」をダウンロードします。
  以下のリンクをクリックしてください。

    https://www.centos.org/download/

  リンク先のページから「DVD ISO」をクリックします。

  画面が切り替わりますので、「Actual Country」に記載されたリンクのうちのいずれか1つを選びダウンロードしてください。
  (どのリンクからダウンロードしても、同じ CentOS7 の iso ファイルがダウンロードされます)



※ スタンドアロンで用意している物理マシンにインストールする場合には、ダウンロードした ISO ファイルを DVD にリッピングしてください。
  あとはこの部分を読み飛ばし、次の CentOS のインストール に進んでください。

※ クラウドなどの外部マシンにインストールする場合には、ダウンロードした ISO ファイルをサーバにマウントしてください。
  あとはこの部分を読み飛ばし、次の CentOS のインストール に進んでください。
  ダウンロードした ISO ファイルを使って、VMware Workstation Player の仮想マシンのイメージを作成します。

  VMware Workstation Player を起動し、メニューから「新規仮想マシンの作成」をクリックしてください。

  「新しい仮想マシンウィザード」のポップアップ画面が表示されたら、「インストーラディスクイメージファイル」を選択してください。
  更に「参照」ボタンから、上記でダウンロード済みの CentOS の ISO ファイルを指定し、「次へ」ボタンを押してください。

  次の画面で、「場所」の入力欄に、保存場所に適切なディレクトリを設定し、「次へ」ボタンを押してください。

  次の画面はそのままの設定で「次へ」ボタンを押してください。

  最後に「完了」ボタンを押します。



以下の環境に応じて適宜条件を満たすと、CentOS のインストール画面が起動します。

 ・ 仮想マシン環境の場合、仮想マシンの作成 の実行直後

     ※ 仮想マシン実行後、仮想マシンの画面内をクリックすることで、各種入力デバイスを仮想マシンに反映させることができます。
        仮想マシンの入力デバイスをホストOS側に戻す場合には、キーボードの[Ctrl]キーと[Alt]キーを同時押ししてください。

 ・ スタンドアロンで用意している物理マシンの場合、DVD にリッピングした CentOS インストーラを認識させる

 ・ クラウドなどの外部マシンの場合、マウントされた ISO イメージに含まれる CentOS インストーラを起動する
  CentOSのインストーラが起動すると、以下の画面に変わります。
  カーソルキーで「Install CentOS 7」を選択し、Enterキーを押してください。

  選択後しばらく待つと、以下の画面に移行します。
  この段階でマウスカーソルが使えますので、「日本語(左右どちらも)」を選択し、「続行」ボタンを押します。

  続けて以下の画面に切り替わりますので、「インストール先」と書かれた箇所をクリックします。

  「インストール先」の画面では何も設定せず、左上の「完了」ボタンを押します。

  元の画面に戻りますので、引き続き「ネットワークとホスト名」と書かれた箇所をクリックします。

  「ネットワークとホスト名」の画面で、イーサネットがオフの状態になっていた場合、その左隣の□部分をクリックし、「オン」に切り替えます。
    ※ 既にオンに切り替わっていれば、そのままで問題ありません。

  設定を変えたら、左上の「完了」ボタンを押します。

  ここまでの設定を終えたら「インストールの開始」ボタンを押します。

  [インストールの開始] ボタンを押すと以下の画面に切り替わり、インストールが開始されます。
  インストールと同時に、OS で管理されるユーザーアカウントの設定を行なうことができます。

  まずは ROOT (プロセス実行権限やアクセス権限などにおいて最上位に位置するユーザー)のパスワードを設定しましょう。
  「ROOTパスワード」と書かれた箇所をクリックしてください。

  「rootパスワード」の欄にrootパスワードを入力し、「確認」の欄にも同じ内容を打ち込んで、rootユーザーのパスワードを入力してください。
  入力したパスワードは絶対に忘れないでください。

  入力し終えたら、画面左上の「完了」ボタンを押します。
   ※ 入力されたパスワード強度が弱い場合には、「完了」ボタンを2回押してください。

  元の画面に戻りますので、引き続き「ユーザーの作成」と書かれた箇所をクリックします。

  「ユーザー名」の欄に任意のユーザー名を入力し、「パスワード」および「確認」の欄にパスワードを入力してください。
  入力したパスワードは絶対に忘れないでください。

  入力し終えたら、画面左上の「完了」ボタンを押します。
   ※ 入力されたパスワード強度が弱い場合には、「完了」ボタンを2回押してください。

  元の画面に戻りますので、インストール中であれば引き続きインストール完了まで待ちます。
  インストール完了した段階で以下の画面に遷移しますので、右下の「設定完了」ボタンを押してください。

  インストール後の初期設定が完了するまでしばらく待ちます。

  初期設定が完了したら「再起動」ボタンが現れますので、ボタンを押して再起動します。



  インストール完了時の再起動後、しばらく待つと、以下のコンソール画面に切り替わります。

  localhost login: の後に表示されるアンダースコア( _ ) がLinuxコンソールにおけるカーソルです。
  この箇所に、そのまま「root」と入力し、Enterキーを押しましょう。

  「root」と入力し Enter キーを押すと、続けてパスワードの入力を求められますので、インストール時に設定した「ROOT のパスワード」を入力し Enter キーを押してください。
  (パスワード入力中何も表示されませんが、正常です。)

  正しいパスワードを入力して Enter を押した場合、以下のように表示されます。
[root@localhost ~]#
  これでログインが完了し、Linuxが扱えるようになりました。
  ひとまず、この状態で起動したままにしてください。




WinSCP のセットアップ

WinSCP とは

  WinSCP は SFTP プロトコルを用いて Windows から Linux サーバにデータを転送するための簡易ツールです。

  既に類似するツール類を持っている場合、WinSCPは不要です。
  そのまま オンプレミス版 MUN サーバパッケージの導入 に進んでください。

  WinSCP をセットアップする手順については、以下のパネルを順にクリックして指示通りに進めてください。


  まずは「WinSCP」のインストーラをダウンロードしましょう。
  以下のリンクをクリックしてください。

    http://winscp.net/eng/download.php#download2

  リンク先のページから「Installation package」をクリックしてダウンロードします。

  現行の Firefox 最新版ですとリンク先の画面が異なりますが、「DOWNLOAD WINSCP」を選択すればダウンロード可能です。



  ダウンロードしたインストーラを使って、WinSCP をインストールします。
  インストーラを起動し、最初の画面で「許諾」ボタンをクリックし、使用許諾契約に同意します。

  次の画面で、そのまま「次へ」ボタンを押してください。

  次の画面も、そのまま「次へ」ボタンを押してください。

  次の画面でインストール準備完了ですので、「インストール」ボタンを押します。

  インストールが完了するまでの間、しばらく待ちます。

  インストールが完了したら、「スタートページを開く」のチェックボックスを外し、「完了」ボタンを押しましょう。

  インストールが完了すると、そのまま WinSCP が起動します。
  ひとまず、この状態で起動したままにしてください。



  起動している Linux サーバ側に目を移し、WinSCP を通じて接続するための「サーバ側のIPアドレス」を調べます。

  CentOS のコマンドラインから、以下のコマンドを入力してみてください。
# ip a

  なお、利用されている Linux ディストリビューションによってIPアドレスを引き出すコマンドは異なります。
  上記コマンドで「Command not found」などと表示される場合、コマンドラインから、以下のコマンドを入力してみてください。
# ifconfig

  実行すると以下のような情報がコンソールに出力されます。
  出力された情報のうち、「lo」の表記がない方のカテゴリー (下図例では ens33のカテゴリー)内にある
inet XXX.XXX.XXX.XXX / YY brd ...
  と表示される「XXX.XXX.XXX.XXX」の部分が、サーバのIPアドレスです(下図例では 192.168.164.130)。
  これをメモなどで記録してください。



  もう一度 WinSCP に目を向けます。
  起動している WinSCP 内の「ログイン」のポップアップウィンドウについて、左側のメニューが「新しいサイト」を選択している状態にします。

  この状態で右側の「セッション」の項目群に、以下の項目を入力してください。
・ホスト名 - Linux サーバの IP アドレス
・ユーザー名 - Linux サーバで使用している、root権限のログインユーザー名(基本的には root)
・パスワード - root権限のログインユーザー名のパスワード

  入力が完了したところで、保存ボタンを押します。

  「保存」ボタンを押すと、以下のダイアログが表示されますので、
  「パスワードを保存」のチェックボックスを入れて、「OK」ボタンを押します。

  続けて、Linux サーバに接続します。
  先ほど作成したセッションがログインウィンドウ左側に表示されますので、それを選択した後で、「ログイン」ボタンを押してください。

  ログインしている最中に以下のような警告ウィンドウが表示されますが、構わず[はい]をクリックします。

  サーバ接続後、以下のような画面に切り替われば問題ありません。
  ここではエクスプローラ風のフォルダ一覧が表示され、右側がサーバ側、左側がクライアント側のストレージ内情報を表します。
  WinSCP でサーバに情報を転送する場合、右側のウィンドウに対し、随時データをドラッグ&ドロップする形式で運用します。




オンプレミス版 MUN サーバパッケージの導入

Linux サーバに、オンプレミス版 MUN サーバパッケージ一式を配置します

  ダウンロードした MUN パッケージ一式に含まれる、オンプレミス版 MUN サーバパッケージについて、Linux サーバにデプロイ(配置)します。

  サーバパッケージを配置する手順については、以下のパネルを順にクリックして指示通りに進めてください。


  WinSCP などのツールを使い、Linux サーバに MUN サーバプロセスのプログラムコード一式をコピーします。

  配置先は、Linux のストレージ内の /opt/ に置きます。
  ちょうど下記のようなディレクトリ構成になるようにコピーしましょう。
    /
   └─ opt
         └─ server
             ├─ cpp
             └─ csharp

  まず、サーバ側(WinSCPの画面右側)の表示ディレクトリをルートディレクトリに変更します。
  下記赤枠の「root」と書かれた部分をクリックし、プルダウンリストを表示させて「/<ルート>」を選択してください。

  すると画面右側のフォルダ表示が、「/<ルート>」下のディレクトリ表示に切り替わります。
  この中から「opt」をダブルクリックで選択します。

  WinSCP の「opt」ディレクトリ内に、MUNパッケージの公開サイトからダウンロードした mun_server_X.X.X.zip を展開した「server」ディレクトリごと、
  サーバ側のエクスプローラ枠内にドラッグ&ドロップしてコピーします。

  このとき、以下のようなダイアログが表示されるような場合、そのまま「OK」を選択してください。

  その後、以下のようなダイアログが表示されるような場合、サーバへのコピー中ですので、完了するまでしばらく待ちます。

  ドラッグ&ドロップでコピーすると、サーバへの配置が完了します。



  WinSCP で配置し終えたら、そのファイル内に含まれている「MUN サーバ側のクライアント待ち受けIPアドレス」の設定を行ないます。

  使用するサーバ環境に応じて、以下の2種類からいずれか、あるいは両方を選んで実行してください。

  C++ 版 MUN サーバの設定は、ドラッグ&ドロップでコピーしたフォルダ内の server/cpp/server.sh 内にありますので、
  WinSCP 経由でそのファイルを開きましょう。

  WinSCP のカレントディレクトリを opt に合わせます。

  opt ディレクトリ内に存在する、server ディレクトリをダブルクリックします。

  更にその中にある cpp ディレクトリをダブルクリックします。

  更にその中にある server.sh ディレクトリをダブルクリックします。

  テキストエディタが開きますので、42~44行目付近にある
・PROXY_PUBLIC_ADDR
・RESOLVER_PUBLIC_ADDR
・ROOM_PUBLIC_ADDR
  の3項目について、事前に記録していた Linux サーバのIPアドレスに書き換えてください。

  書き換え終わったところで、テキストエディタ上で上書き保存してください。
  自動的にWinSCPを通じて、Linuxサーバに配置されたファイルも遠隔操作で書き換えてくれます。



  C# 版 MUN サーバの設定は、ドラッグ&ドロップでコピーしたフォルダ内の server/csharp/appsettings.json 内にありますので、
  WinSCP 経由でそのファイルを開きましょう。

  WinSCP のカレントディレクトリを opt に合わせます。

  opt ディレクトリ内に存在する、server ディレクトリをダブルクリックします。

  更にその中にある csharp ディレクトリをダブルクリックします。

  更にその中にある appsettings.json ディレクトリをダブルクリックします。

  テキストエディタが開きますので、28~30行目付近にある
・PROXY_PUBLIC_ADDR
・RESOLVER_PUBLIC_ADDR
・ROOM_PUBLIC_ADDR
  の3項目について、事前に記録していた Linux サーバのIPアドレスに書き換えてください。

  書き換え終わったところで、テキストエディタ上で上書き保存してください。
  自動的にWinSCPを通じて、Linuxサーバに配置されたファイルも遠隔操作で書き換えてくれます。





  デフォルトの MUN サーバの設定上では、以下のポート番号をクライアント向けに開放する必要がありますので、
  お使いのLinuxディストリビューションに合わせて、ポートの開放を行なってください。
TCP:6005, 6015, 6025, 9005, 9015, 9025, 3005, 3015, 3025
UDP:6005, 9005, 3005

  お使いのLinuxディストリビューションが CentOS7 であれば、以下のコマンドを実行することで開放することができます。
# firewall-cmd --add-port=6005/tcp --zone=public --permanent
# firewall-cmd --add-port=6015/tcp --zone=public --permanent
# firewall-cmd --add-port=6025/tcp --zone=public --permanent
# firewall-cmd --add-port=9005/tcp --zone=public --permanent
# firewall-cmd --add-port=9015/tcp --zone=public --permanent
# firewall-cmd --add-port=9025/tcp --zone=public --permanent
# firewall-cmd --add-port=3005/tcp --zone=public --permanent
# firewall-cmd --add-port=3015/tcp --zone=public --permanent
# firewall-cmd --add-port=3025/tcp --zone=public --permanent
# firewall-cmd --add-port=8005/udp --zone=public --permanent
# firewall-cmd --add-port=9005/udp --zone=public --permanent
# firewall-cmd --add-port=3005/udp --zone=public --permanent
  最後に
# firewall-cmd --reload
  を実行し、設定した値を反映させてください。




パッケージのインストール

オンプレミス版 MUN サーバを動作させるために必要な各種パッケージのインストール

  オンプレミス版 MUN サーバのビルドおよび実行環境を整えるために、コマンドを使ってインストールします。

  パッケージのインストール手順については、以下のパネルを順にクリックして指示通りに進めてください。


  C++ 版 MUN サーバのビルドおよび実行のためには、最低限として、以下に示すパッケージのインストールが必要となります。
  ・gcc … Cコンパイラ
  ・gcc-c++ … C++コンパイラ
  ・make … C/C++ リンカ
  ・cmake … マルチプラットフォーム対応自動ビルドツール
  ・psmisc … killall コマンド実行用パッケージ

  C++ 版 MUN サーバパッケージには、これらをインストールするための CentOS 向けのシェルスクリプトを用意しています。
  コマンドラインから、以下のコマンドを入力してください。

  ※ 利用されている Linux ディストリビューションが Debian 系であれば、/opt/server/cpp/inst.sh に記述された内容について
    yum を apt-get などに置き換えてからお使いください。
# bash /opt/server/cpp/inst.sh

  上記シェルスクリプトを実行した後で、
Complete!
  の表示が現れたらインストール完了です。



  C# 版 MUN サーバのビルドおよび実行のためには、上記に加え、以下に示すパッケージのインストールが必要となります。
  ・libunwind … コールチェイン(バックトレース)のためのライブラリ
  ・libicu … Unicode ロケール対応のためのライブラリ
  ・dotnet-sdk-2.1.3 … Linux 版 .NET Core 開発のための SDK

  C# 版 MUN サーバパッケージには、これらをインストールするための CentOS 向けのシェルスクリプトを用意しています。
  コマンドラインから、以下のコマンドを入力してください。

  ※ 利用されている Linux ディストリビューションが Debian 系であれば、/opt/server/csharp/inst.sh に記述された内容について
    以下のように修正してからお使いください。
     ・ libunwind, libicu のパッケージインストール部分については、yum を apt-get などに置き換え
     ・ dotnet-sdk のパッケージインストール部分については、Linux における .NET Core の前提条件 の資料を参考に置き換え
# bash /opt/server/csharp/inst.sh

  上記シェルスクリプトを実行した後で、
Complete!
  の表示が現れたらインストール完了です。

  なお、ご利用される Linux のディストリビューションによっては以下のパッケージが含まれていない可能性があります
  ・glibc-devel … C#版MUNサーバ側でネイティブに使用しているC/C++コード用のデバッグライブラリ
  実行に至るまでに不具合があると困りますので、別途インストールしておきましょう。
# yum install -y glibc-devel