# インストールマニュアル ## 配布物 MANUFACIAは、以下の配布物で構成されます。 - manufacia_xxx.tar.gz - mosquitto_1.6.2.tar.gz - postgres_10.5.tar.gz - redis_5.0.tar.gz ## 動作確認済み環境 MANUFACIAをインストールするサーバのスペックは[こちら](../faq_general/index.html#pc)を参照してください。 また、以下のドライバー/ライブラリ環境にて動作確認済みです。 | ドライバー/ライブラリ | バージョン | | :--- | ---: | | Docker | Docker version 19.03.1, build 74b1e89 | | docker-compose | docker-compose version 1.24.0, build 0aa59064 | | Nvidia driver | 460.39 | | CUDA | 11.0.3 | | nvidia-docker | 2.3.0 | セットアップするユーザがdockerコマンド、docker-composeコマンドを実行できる必要があります。もし実行できない場合にはシステム管理者に適切な権限を設定してもらってください。 ## 使用するホストマシンのポート MANUFACIAではホストマシンの下記のポートを使用します。 表:使用するホストマシンのポート | ポート番号    | 用途 | |:--- | ---: | |1883 | MQTT ブローカ | |32772 | MQTT ブローカ(for WebSocket) | |3100 - 3101 | 予約済み(デバッグ用) | |3122 | アプリケーションサーバコンテナへのsshポート(ライセンス確認にも使用可) | |3200 | アプリケーションWeb UIアクセス | |3180 | デバイスコントロール用のAPIポート | ## インストール ### 配布物の確認 ``` $ ls bin manufacia_xxx.tar.gz mosquitto_1.6.2.tar.gz postgres_10.5.tar.gz redis_5.0.tar.gz ``` ### 解凍とイメージのロード ``` $ gunzip manufacia_xxx.tar.gz && docker load -i manufacia_xxx.tar $ gunzip mosquitto_1.6.2.tar.gz && docker load -i mosquitto_1.6.2.tar $ gunzip postgres_10.5.tar.gz && docker load -i postgres_10.5.tar $ gunzip redis_5.0.tar.gz && docker load -i redis_5.0.tar ``` ### dockerイメージの登録確認 下記のイメージが出力されていることを確認します。 ``` $ docker images ... manufacia manufacia-gpu-xxx 73d8cc60a81a 24 hours ago 5.61GB redis 5.0-alpine 07103bda7d12 3 months ago 51.6MB postgres 10.5-alpine 294f651dec48 9 months ago 71.6MB eclipse-mosquitto 1.6.2 502279616d17 7 weeks ago 5.07MB ... ``` ### セットアップ 下記コマンドを実行します。 ``` $ docker run --rm manufacia: manufacia-gpu-xxx install-manufacia | bash ``` 正常終了すると、実行バイナリのパスを通すメッセージが出力されるので、出力されたメッセージに従って環境変数を設定します。 ``` $ PATH="$HOME/.manufacia/bin:$PATH" ``` この設定を行うと manufacia_ctrlコマンドが使えるようになります。 ``` $ manufacia-ctrl Usage: manufacia-ctrl [COMMAND] ... Available commands: current versions path start ``` 表:manufacia_ctrlコマンド一覧 | コマンド | 説明 | |:--- | ---:| | current | 現在有効となっているMANUFACIAのバージョンを表示します。 | | versions| インストール可能な状態になっているMANUFACIAを一覧表示します。 | | path | 現在有効となっているMANUFACIAのpathを表示します。 | | start | MANUFACIAを起動します。 | ### ホストマシンのIPアドレス確認 ``` $ hostname -I 192.168.xxx.xxx 172.17.0.1 172.18.0.1 10.1.0.1 ``` または ``` $ ifconfig ... ``` 環境により異なるので、不明な場合はシステム管理者に確認してください。ここでは、ホストマシンに割り当てられているIPアドレスは **192.168.xxx.xxx** と想定します。このIPアドレスを環境変数 **THIS_HOST** に設定します。 ``` $ export THIS_HOST=192.168.xxx.xxx ``` ### インストール MANUFACIAを初めてインストールする場合には、ここに書かれている手順を実行します。初めてかどうか不明な場合は下記のコマンドを実行した結果 manufacia_\* という名前を持つコンテナが存在していないことを確認します。 ``` $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ``` アプリケーションをインストールします。 ``` $ manufacia-ctrl start ... ``` 正常に終了すると、複数のコンテナが起動します。 ``` $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d06495da0e54 manufacia:manufacia-gpu-xxx "/usr/bin/supervisor..." 38 minutes ago Up 38 minutes 0.0.0.0:3100-3101-\>3100-3101/tcp, 0.0.0.0:3122-\>22/tcp manufacia_app_1 63df1772426c manufacia:manufacia-gpu-xxx "manufacia jarngreip..." 38 minutes ago Up 38 minutes 0.0.0.0:3280-\>8080/tcp manufacia_jarngreipr_1 a6c3cbdb3e60 eclipse-mosquitto:1.6.2 "/docker-entrypoint...." 38 minutes ago Up 38 minutes 0.0.0.0:1883-\>1883/tcp, 0.0.0.0:32780-\>9001/tcp manufacia_broker_1 13b6b0ae19dc postgres:10.5-alpine "docker-entrypoint.s..." 38 minutes ago Up 38 minutes 5432/tcp manufacia_db_1 cda3291bb252 manufacia:manufacia-gpu-xxx "sh -c 'bin/inject-e..." 38 minutes ago Up 38 minutes 0.0.0.0:3200-\>5000/tcp manufacia_frontend_1 68e03b9681db redis:5.0-alpine "docker-entrypoint.s..." 38 minutes ago Up 38 minutes 6379/tcp manufacia_redis_1 ... ``` 本アプリケーションで起動するコンテナは下記の6つです。 - manufacia_app_1 - manufacia_jarngreipr_1 - manufacia_broker_1 - manufacia_db_1 - manufacia_redis_1 - manufacia_frontend_1 ## アプリケーション起動確認 ブラウザを開いて下記のURLにアクセスします。アプリケーションのインストール時に調べたIPアドレスを下記の{IP_ADDRESS}を入れてアクセスします。 ``` http://{IP_ADDRESS}:3200/ ``` 次の画面が表示されていればインストールしたアプリケーションは動作しています。 ![](./media/image1.png) ## アンインストール 以下のコマンドでMANUFACIAに関係するDockerコンテナを削除します。 ``` $ manufacia-ctrl --maint down ``` Dockerコンテナが削除された事を確認します。 ``` $ docker ps ``` ```{admonition} ヒント :class: hint Dockerコンテナが削除されない場合はDockerコマンドで削除を行います。 ``` ## 参考資料(ドライバー/ライブラリ) ドライバーやライブラリは一部ハードウェア依存するものがあったり、それぞれのバージョンの組み合わせで動作しないことがありますので、必ずしも動作を保証するものではありません。 ### ドライバー/ライブラリのバージョン確認方法 ドライバーやライブラリが環境にインストール済であるか、且つそれぞれのバージョンが正しいかは[こちら](./index.html#id3)で確認してください。 - Docker ``` $ docker version ``` ->無応答の場合には >(1) dockerを起動してください。 ``` $ service docker start ``` >(2) バージョンが異なる場合には、動作確認済みのバージョンをインストールして下さい。 - docker-compose ``` $ docker-compose --version ``` >->無応答の場合には ``` $ systemctl enable docker ``` - Nvidia-driver ``` $ nvidia-smi ``` >->動作確認済みのCUDAバージョンが貴社のGPUサーバーのGPUカードをサポートしていない可能性もあります。 - CUDA ``` $ ls -l /usr/local | grep cuda ``` - nvidia-docker ``` $ nvidia-docker -v ``` 上記のドライバーやライブラリのバージョンが推奨されているものと異なる場合には、以下の手順でアンインストール、 そして指定のバージョンのインストールをお願いします。 ### ドライバー/ライブラリのアンインストール - CUDA ``` $ sudo apt purge cuda* $ sudo apt purge nvidia-cuda-* $ sudo apt purge libcuda* $ sudo apt autoremove $ reboot ``` - Docker ``` $ sudo yum remove docker-ce $ sudo apt-get remove docker docker-engine docker.io containerd runc $ sudo rm -rf /var/lib/docker $ sudo apt autoremove ``` - Docker Compose 削除 ``` $ sudo rm /usr/local/bin/docker-compose ``` - Nvidia-Driver ``` $ sudo apt-get purge nvidia-* $ sudo apt-get purge libnvidia* ``` ### ドライバー/ライブラリのインストール #### Docker関連 - Docker安定版 ``` $ sudo curl https://get.docker.com | sh ``` - Docker Compose 1.24.0 ``` $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose ``` - NVIDIA Docker 2.3.0-1 ``` $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list $ sudo apt update $ sudo apt install -y nvidia-docker2=2.3.0-1 ``` #### CUDA、及びNvidia-Driver GPUカード搭載のサーバにてMANUFACIA(通常版)を動作させる為には、CUDA並びにNvidia-Driverがインストールされている環境が必要となります。以下、インストールのコマンドを参考として記載します。 ##### 現在MANUFACIA v2.0/v2.1/v2.1.2をお使いの場合 既にCUDA10.x等がインストールされており、依存関係を解消する必要がある場合には、以下のコマンドをお使い下さい。 ```console # sudo apt-get purge nvidia-* # sudo apt-get purge cuda-* ``` ##### 当該サーバのGPUカードに対応したDriverの調査 以下のコマンドを使うことで、現時点で対応しているドライバーがリスト表示されます。 ```console # ubuntu-drivers devices ``` 上記のコマンドでエラーが出る場合には、以下のコマンドでインストールします。 ```console # apt install ubuntu-drivers-common ``` ubuntu-drivers devices での返値例 ``` vendor: NVIDIA Corporation driver: nvidia-driver-460-third-party free recommended driver: nvidia-driver-415-third-party free ``` ##### Nvidia-Driverのインストール 以下のコマンドを使うことで、現Nvidia-Driverがインストールされます。 ```console # sudo install nvidia-driver-460 ``` 既にインストール済のDriverの依存関係が解消できない場合には、以下のコマンドをご使用下さい。 ```console # sudo aptitude install nvidia-driver-460 ``` ##### CUDA11.xのインストール 以下のコマンドを使用してCUDA11.xをインストールします。 ```console # sudo apt install cuda-11-0 ``` または ```console # sudo apt-get install cuda-11-0 ``` エラーメッセージなどによっては、以下のコマンドも使用しCUDA11をインストール。 ```console # sudo apt --fix-broken install ``` または ```console # wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin # sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 # wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda-repo-ubuntu1804-11-2-local_11.2.1-460.32.03-1_amd64.deb # sudo dpkg -i cuda-repo-ubuntu1804-11-2-local_11.2.1-460.32.03-1_amd64.deb # sudo apt-key add /var/cuda-repo-ubuntu1804-11-2-local/7fa2af80.pub # sudo apt-get update # sudo apt-get -y install cuda ``` ホームディレクトリにある設定ファイル .bashrc を以下の要領で編集した後に、サーバを再起動(sudo reboot)します。ファイルの編集に用いるエディタ、ツールは種別を問いません。 設定ファイルに以下の行を追加します。 ```{code-block} bash # set PATH for cuda 11.0 installation if [ -d "/usr/local/cuda-11.0/bin/" ]; then export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} fi ``` CUDA、Nvidiaドライバのバージョンが所望の通りか、以下のコマンドを利用して確認できます。 ```console # docker exec -it manufacia_app_1 bash :~/rb#cat public/docker-build-conf.txt [表示結果例] BASE_IMAGE: nvidia/cuda:9.2-base-ubuntu18.04-sha256:e2caae08d28e7026f7ce5334a7375c306b2279fc5a47ef031be4262e0e4e394a COMPOSE_FILE: /nix/store/b35biq54rnby9aabnsz8rga84fpfbqrm-docker-compose.gpu.yaml CUDA_VERSION: 11.0.3 DOCKER_IMAGE: manufacia:2.1.3-gpu RAILS_ENV: production USE_GPU: true :~/rb# nvidia-smi [表示結果例] (このCUDAバージョンは参考値で、必ずしも上記の出力とは一致しない) +-------------------------------------------------------------------------+ | NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 | |-------------------------------+----------------------+------------------+ ``` --- ドライバー等のインストール後はシステムを再起動し、NVIDIA Dockerの動作確認を行ってください。 ``` $ sudo reboot ``` ``` $ service docker start  ```