Ubuntu 18.04 LTS に VM サーバをインストールする


VM サーバのインストール前提条件

  • HTTP Proxy の設定が必要な場合、HTTP Proxy の設定(環境変数)が予め行われていること。
  • HTTP Proxy の設定は以下を例として説明しています。
    • HTTP_PROXY=http://proxy.example.com:3128/
    • HTTPS_PROXY=http://proxy.example.com:3128/
  • ネットワーク設定が予め行われていること。
  • VMサーバから外部ネットワークに疎通ができること。

Proxy に関する環境変数の設定を確認する

Proxy 設定の必要が無い環境では、環境変数が無くとも問題ありません。また、NO_PROXY(no_proxy) も設定されていれば利用されます。

$ env | grep -i proxy
HTTP_PROXY=http://proxy.example.com:3128/
https_proxy=http://proxy.example.com:3128/
http_proxy=http://proxy.example.com:3128/
HTTPS_PROXY=http://proxy.example.com:3128/

Docker をインストールする

上記以外の環境につきましては、Docker の公式サイト https://www.docker.com/ をご参照ください。

データベース(PostgreSQL)をインストール、及び、セットアップする

※ 以降は、データベース関連は以下のように設定されたことを前提に記載します。

  • データベース名称: dbname
  • データベースホスト名: dbhost
  • データベースサービスポート: dbport (デフォルトは 5432)
  • データベースユーザ名: dbuser
  • データベースユーザパスワード: dbpass

Docker コンテナの DNS 設定を変更する

  1. [Docker の公式リポジトリから Docker をインストールした場合]
  2. 1. ここでは DNS サーバの IP アドレスを xxx.xxx.xxx.xxx としています。実際に設定する際には適切な値を設定してください。DNSサーバのIPアドレスが不明な場合は、利用しているネットワークの管理者にお尋ねください。

    $ sudo vi /etc/docker/daemon.json
    {
       "dns":           [ "xxx.xxx.xxx.xxx" ],
       "log-level":	"error",
       "storage-driver": "aufs"
    }
  3. 2. 設定後に docker の再起動を行います。

    $ sudo systemctl restart docker.service
  1. [snap から Docker をインストールした場合]
  2. 1. ここでは DNS サーバの IP アドレスを xxx.xxx.xxx.xxx としています。実際に設定する際には適切な値を設定してください。

    $ sudo vi /var/snap/docker/current/config/daemon.json
    [設定前]
    {
       "log-level":	"error",
       "storage-driver": "aufs"
    }
    [設定後]
    {
       "dns":           [ "xxx.xxx.xxx.xxx" ],
       "log-level":	"error",
       "storage-driver": "aufs"
    }
  3. 2. 設定後に docker の再起動を行います。

    $ sudo systemctl restart snap.docker.dockerd.service

Dockerコンテナのネットワークを変更する

172.18.0.0/16のネットワークに変更を行う手順を示します。 172.18.0.0/16以外に設定する場合は読み替えて実行してください。
  1. dockerを停止します。

    $ sudo systemctl stop docker
  2. dockerのブリッジ(docker0)を削除します。

    $ sudo ip link set dev docker0 down
    $ sudo ip link del docker0
  3. ネットワークアドレスの設定を行います。

    $ sudo vi /etc/docker/daemon.json
    {
       "bip":	"172.18.0.1/16", <-追加します
       "dns": [ "xxx.xxx.xxx.xxx"]
    }
  4. dockerを起動します。

    $ sudo systemctl start docker

VMサーバの Docker イメージを生成

  1. root権限のシェルを起動します。以下の手順におけるコマンドは、sudo を使って実施しないでください。sudo がそのままでは環境変数を引き継がないため、「Proxy に関する環境変数の設定を確認する」で確認したProxy関連の環境変数が無視されてしまうためです。

    $ sudo -i /bin/bash
    #
  2. インストール用のディレクトリを用意します。

    ここでは /var/lib/sidfm に作成します。もし他のディレクトリにインストールした場合は、以降の説明はインストールしたディレクトリで読み替えて下さい。

    # mkdir /var/lib/sidfm
    # cd /var/lib/sidfm
  3. ダウンロードページをブラウザで開きます。
  4. 「SIDfm VM サブスクリプション契約約款」および「ソフトウェア使用許諾契約」に同意し、チェックを入れたあと「ダウンロードページ」をクリックします。

  5. VM サーバのアーカイブファイルと sha256sum ファイルをダウンロードし、インストール用のディレクトリに保存します。

    # wget https://www.softek.co.jp/SID/support/sidfmvm/download/server/sidfmvm-1.0.1.tar.gz
    # sudo wget https://www.softek.co.jp/SID/support/sidfmvm/download/server/sha256sum
  6. 以下のコマンドを実行し、ダウンロードしたファイルをチェックサムします。

    # sha256sum -c sha256sum
    sidfmvm-1.0.1.tar.gz: OK
  7. アーカイブを展開します。

    # tar xzf sidfmvm-1.0.1.tar.gz
  8. イメージを生成します。

    ※ 回線速度やサーバのスペックにもよりますが、おおよそ15~20分程度かかります。

    # cd sidfmvm
    # ./vm-build_1.0.sh
  9. root権限のシェルから抜けます。

    # exit
    $

VM サーバを起動する

  1. VM サーバのコンテナを起動します。

    $ sudo sh /var/lib/sidfm/sidfmvm/sidfmd-start.sh
  2. VM サーバの Proxy 設定を行います。

    ※ ここでは Proxy サーバのホスト名とポート番号を proxy.example.com:3128 としています。実際に設定する際には適切な値を設定してください。

    $ sudo docker exec sidfmd /proxy_manage set_http_proxy proxy.example.com 3128
    $ sudo docker exec sidfmd /proxy_manage same_http_https enable
    $ sudo docker exec sidfmd /proxy_manage proxy enable
  3. VM サーバ DB 設定及び初期化を行います。

    ※ ここではデータベース関連は以下のように設定されたことを前提に記載します。

    • データベース名称: dbname
    • データベースホスト名: dbhost (同一のホスト上にデータベースをセットアップしている場合は、docker0インターフェイスのIPアドレス)
    • データベースサービスポート: dbport (デフォルトは 5432)
    • データベースユーザ名: dbuser
    • データベースユーザパスワード: dbpass
    $ sudo docker exec sidfmd /db_manage config dbname dbhost dbport dbuser dbpass
    success
    $ sudo docker exec sidfmd /db_manage init
    (省略)
    $ sudo docker exec sidfmd /db_manage test
    success
  4. メールサーバの設定を行います。

    [ログイン認証の無い通常のSMTPサーバを設定する場合]

    ログイン認証の無いSMTPサーバを設定する場合、VM Serverをインストールしたサーバ上で以下のコマンドを実行します。

    $ sudo docker exec sidfmd /mail_manage noauth smtp.example.com 25 example.com
    success
    $ sudo docker exec sidfmd /vm_manage server disable
    $ sudo sleep 5
    $ sudo docker exec sidfmd /vm_manage server enable
    引数の説明
     noauth: ログイン認証の無いSMTPサーバを設定することを示すキーワード
     smtp.example.com: SMTPサーバのホスト名
     25: SMTPサーバのポート番号
     example.com: メールを送信する際のドメイン名
    [ログイン認証のあるSMTPサーバを設定する場合]

    ログイン認証のあるSMTPサーバを設定する場合、VM Serverをインストールしたサーバ上で以下のコマンドを実行します。

    $ sudo docker exec sidfmd /mail_manage auth smtp.example.com 25 example.com account password
    success
    $ sudo docker exec sidfmd /vm_manage server disable
    $ sudo sleep 5
    $ sudo docker exec sidfmd /vm_manage server enable
    引数の説明
     auth: ログイン認証のあるSMTPサーバを設定することを示すキーワード
     smtp.example.com: SMTPサーバのホスト名
     25: SMTPサーバのポート番号
     example.com: メールを送信する際のドメイン名
     account: ログイン認証のアカウント名
     password: ログイン認証のパスワード
    [上記以外のSMTPサーバを設定する場合]

    前述の設定に適合しないSMTPサーバを設定する場合は、直接設定ファイルの編集をお願いします。
    編集の際には、「メール通知のためのconfiguration.ymlの設定」や、設定フ ァイルと同じディレクトリに存在する設定サンプル configuration.yml.example ファイルをご参照下さい。

    設定ファイルは以下の手順で編集してください。

    1. VM Serverのコンテナにログインします
      $ sudo docker exec -it sidfmd /bin/bash
    2. 設定ファイルのあるディレクトリに移動します
      # cd /var/lib/redmine/config
    3. 設定サンプルをコピーします
      # cp configuration.yml.example configuration.yml
    4. 設定ファイルを編集します
      # vi configuration.yml
    5. 設定を反映します
      # cd ..
      # passenger-config restart-app /var/lib/redmine
    6. VM Serverのコンテナからログアウトします
      # exit
  5. VM サーバを起動します。

    $ sudo docker exec sidfmd /vm_manage server enable
    $ sudo docker exec sidfmd /vm_manage issue_update enable
  6. VM サーバへ加えた変更を反映します。

    $ sudo docker commit sidfmd sidfmd

VM サーバのインストール後に行う作業

VM サーバのインストール作業が終わりましたら、VM にログインし、ライセンスキーの登録を行います。

VMサーバのインストール後に行う作業

VMサーバのインストール作業が終わりましたら、VM にログイ ンし、ライセンスキーの登録を行います。