コンテナ版 Agent


Linux 向けにはコンテナ形式の Agent を提供しています。

事前準備(Docker のインストール)

コンテナ版 Agent では Docker を事前にインストールする必要があります。Front Agent、Back Agent を動作させる Linux にログインし、以下リンクの Docker 公式ドキュメントのガイドに従い、Docker をインストールしてください。
https://docs.docker.com/install/

ダウンロード

Docker Hub へのログイン

エージェントをインストールする Linux マシン上で、 契約時にお伝えした、 Docker Hub のユーザー ID とパスワードを用いてログインします。

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: ユーザー ID
Password: パスワード
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
$
プロキシ環境の場合は、以下の Docker のマニュアルもあわせてご確認ください。 https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

Front Agent のダウンロード

先にインストールした、docker コマンドを用いて Front Agent をダウンロードします。

$ docker pull tunacloac/frontagent:latest
latest: Pulling from tunacloac/frontagent
4bbfd2c87b75: Pull complete
d2e110be24e1: Pull complete
889a7173dcfe: Pull complete
40b8897a7644: Pull complete
86fc4730cf5f: Pull complete
d4549b98b0cc: Pull complete
fa530dc3bfb6: Pull complete
585353512d01: Pull complete
ad9f35222017: Pull complete
Digest: sha256:2ed579aaa07d54880fe6d52e4f262e9d33157dcb9548620cd4b7647605e5f06f
Status: Downloaded newer image for tunacloac/frontagent:latest
docker.io/tunacloac/frontagent:latest
$

上のように、16進数文字列の後ろが全て Pull complete となればダウンロード成功です。

Back Agent のダウンロード

Front Agent と同様に、Back Agent も docker コマンドを用いてダウンロードします。

$ docker pull tunacloac/backagent:latest
latest: Pulling from tunacloac/backagent
4bbfd2c87b75: Pull complete
d2e110be24e1: Pull complete
889a7173dcfe: Pull complete
40b8897a7644: Pull complete
61a4cefbc36a: Pull complete
30aad56f2542: Pull complete
f6bb41222ed4: Pull complete
Digest: sha256:fd6b9ef6342df918607bf33a656920ef9b369f6ef499e05a680fd50b03b6d311
Status: Downloaded newer image for tunacloac/backagent:latest
docker.io/tunacloac/backagent:latest
$

こちらも、Front Agent と同じく、16進数文字列の後ろが全て Pull complete となればダウンロード成功です。

ダウンロード結果の確認

docker コマンドでローカルホストに存在するイメージの一覧を取得し、先程ダウンロードした tunacloac/frontagent もしくは tunacloac/backagent が存在することを確認してください。以下は、各 Agent をインストールした各 Linux ホストで確認を行った場合の出力例です。

$ docker images
REPOSITORY             TAG       IMAGE ID       CREATED       SIZE
tunacloac/backagent    latest    e8e38950fa14   2 weeks ago   124MB
tunacloac/frontagent   latest    ba914cb98215   2 weeks ago   124MB
$

Agent の起動

以下の手順に従って、Agent を起動します。

  1. Tunaclo AC ポータルのルート一覧画面からルートを選択します。

    route all

  2. ルート詳細画面が表示されます。

    route detail

    Client 側に表示される [Command to launch Tunaclo agent] は Front Agent の起動コマンドを表示しています。
    Service 側に表示される [Command to launch Tunaclo agent] は Back Agent の起動コマンドを表示しています。
    Agent 起動コマンドは、それぞれ[Copy to clipboard]ボタンをクリックするとコマンドはコピーできます。

  3. Agent 実行環境で、手順 2.でコピーしたコマンドを使い Agent を起動してください。

Agent を PROXY 環境下で起動する場合は、以下のページもご参考ください。

PROXY 環境下で Agent を起動する(コンテナ版)

  1. Tunaclo AC ポータルのルート一覧画面で、Agent が正常に起動していることを確認します。
    check connection

    Agent が正常に起動すると、Tunaclo AC ルーターとの間でセキュアーコネクションが確立されます。この状態は Tunaclo AC ポータル上で図のように緑色で表示されます。
    Agent が正常に起動できていない場合は Tunaclo AC ポータル上で灰色として表示されます。 Agent 起動後しばらく経っても表示が変わらない場合は、インターネット接続環境、および Agent 起動引数(ID や Key、プロキシ設定など)に間違いがないかご確認ください。

Agent の更新

以下の手順に従って、Agent を更新します。

  1. 以下のコマンドを使い Agent を停止してください(例. コンテナ名が myagent の場合)。

    $ docker stop myagent
    $ docker rm myagent
    
  2. 起動コマンドを使って Agent を再起動してください。

    $ docker run -d --restart=unless-stopped --log-opt max-size=20m --log-opt max-file=5 \ 
        --name myagent -p 30000:30000 tunacloac/frontagent:latest front_agent \ 
        -controller https://api.kuroshio.tunaclo.net \ 
        -projectID 111149c8-4808-481c-99d3-605028b77 \ 
        -agentID fEGAPoJCHLdS6KHKC5111 -agentKey UchyaTkR9ophRAMnX111W
    

Agent の停止

以下のコマンドを使い Agent を停止してください(例. コンテナ名が myagent の場合)。

$ docker stop myagent
コンテナ名は Agent 起動時に –name オプションで指定した値です。Tunaclo AC ポータルから起動コマンドをコピーした場合は < Service name or Client name >-agent となります。

Service URL の名前解決の設定について

Tunaclo AC の Agent からアプリケーション(Web API) までのドメイン名(FQDN)の解決は Docker の機能を利用しています。ドメイン名を利用して Back Agent からアプリケーションを呼び出す際には、下記の手順でホスト設定をおこなってください。

  1. Back Agent のアクセスする URL を決める。

  2. Service URL が DNS を用いて解決できる場合、Back Agent の起動時に --dns オプションを追加する。

  3. Service URL が DNS を用いて解決できない場合、かつ、IP アドレスではなく FQDN を使う場合は Docker に hosts エントリを渡すために --add-host オプション等で Back Agent の hosts エントリを追加する。
    例:--add-host myservice.local:192.168.0.2
    (参照) https://docs.docker.com/engine/reference/commandline/run/

詳細については、「Documents:ご利用に際して」- 「Tips」の「 Virtual URL, Service URL の名前解決(コンテナ版) 」も参照ください。

End to End 暗号化の有効化

Tunaclo AC では Front Agent – Back Agent 間で通信を End to End(E2E)暗号化するオプション機能を提供しています。以下の設定例に従って、E2E 暗号化を有効化します。

  1. 以下のコマンドを使い環境変数を設定します。

    export CERT_DIR=/opt/certs
    export E2E_ROOTCA_FILE=$CERT_DIR/ca.pem
    export E2E_SERVER_CERT_FILE=$CERT_DIR/server.pem
    export E2E_SERVER_KEY_FILE=$CERT_DIR/server-key.pem  
    
  2. 以下のように Agent を起動します。

  • Front Agent の例

    $ docker run -d --restart=unless-stopped \ 
        --log-opt max-size=20m --log-opt max-file=5\ 
        --name myagent -p $HTTP_PORT:30000 -p $HTTPS_PORT:30001 \ 
        -v $CERT_DIR:$CERT_DIR \ 
        tunacloac/frontagent:latest front_agent \ 
        -controller https://api.kuroshio.tunaclo.net \ 
        -projectID 7e348d5c-d894-40fd-9eb6-3dd7bef45025 \ 
        -agentID 59LvixqK55wdw2eztm94qX -agentKey $CLIENTKEY \ 
        -e2e-rootca-file $E2E_ROOTCA_FILE
    
  • Back Agent の例

    $ docker run -d --restart=unless-stopped \ 
        --log-opt max-size=20m --log-opt max-file=5\ 
        --name myagent \ 
        -v $CERT_DIR:$CERT_DIR \ 
        tunacloac/backagent:latest back_agent \ 
        -controller https://api.kuroshio.tunaclo.net \ 
        -projectID 7e348d5c-d894-40fd-9eb6-3dd7bef45025 \ 
        -agentID CfcJ29G9G7EDupttwwJJq7 -agentKey $SERVICEKE \ 
        -e2e-server-cert-file $E2E_SERVER_CERT_FILE \ 
        -e2e-server-key-file $E2E_SERVER_KEY_FILE
    
利用時は Front Agent と Back Agent 双方の E2E 暗号化機能を有効化する必要があります。利用する証明書および鍵ファイルはお客様自身でご用意ください( こちらのページに自己サイン証明書と鍵ファイルの作成手順の一例が記載されていますので必要に応じてご参照ください)。
利用可能な証明書および鍵ファイルの形式は pem 形式 のみとなります。サーバー証明書(公開鍵)に指定する Subject Alternative Name (SAN) と Common Name (CN) には、サービスの作成で登録した Service name を指定してください。

Agent 起動時の Docker オプション

Agent 起動で利用する、Docker が提供している主なオプションを以下の表で説明します。

項目名 説明
-d Agent コンテナを Daemon としてバックグラウンド起動します。
--restart=unlessstopped 明示的に docker stop で停止されるまで、Agent コンテナは自動で再起動します。
--log-opt max-size= Agent コンテナのログローテーションするサイズを指定します。(例:--log-opt max-size=20m)
--log-opt max-file= Agent コンテナのログローテーションする世代数を指定します。(例:--log-opt max-file=5)
--name Agent コンテナの名前を指定します。
-p コンテナへのポートフォワーディングを指定します。"外部からアクセスされるポート番号:コンテナ側のポート番号" の形式で指定してください。
--dns Agent コンテナが参照する DNS のアドレスを指定します。
--add-host Agent コンテナの /etc/hosts ファイルにエントリーを追加します。"ホスト名:IP アドレス" の形式で指定してください。
-e http_proxy= Agent コンテナが参照する HTTP プロキシを設定します。プロキシ環境下で Agent を起動する場合に指定してください。
-e https_proxy= Agent コンテナが参照する HTTPS プロキシを設定します。プロキシ環境下で Agent を起動する場合に指定してください。
-e no_proxy= Agent コンテナがプロキシ設定を使用しない接続先を指定します。プロキシ環境下で Agent を起動する場合は、Service URL の FQDN や IP アドレスを指定してください。
Docker は本製品には含まれていないため、最新のコマンドや詳細については Docker のマニュアル等をご確認ください。
前へ