コンテナ版 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
$
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 を起動します。
-
Tunaclo AC ポータルのルート一覧画面からルートを選択します。
-
ルート詳細画面が表示されます。
Client 側に表示される [Command to launch Tunaclo agent] は Front Agent の起動コマンドを表示しています。
Service 側に表示される [Command to launch Tunaclo agent] は Back Agent の起動コマンドを表示しています。
Agent 起動コマンドは、それぞれ[Copy to clipboard]ボタンをクリックするとコマンドはコピーできます。 -
Agent 実行環境で、手順 2.でコピーしたコマンドを使い Agent を起動してください。
Agent を PROXY 環境下で起動する場合は、以下のページもご参考ください。
- Tunaclo AC ポータルのルート一覧画面で、Agent が正常に起動していることを確認します。
Agent が正常に起動すると、Tunaclo AC ルーターとの間でセキュアーコネクションが確立されます。この状態は Tunaclo AC ポータル上で図のように緑色で表示されます。
Agent が正常に起動できていない場合は Tunaclo AC ポータル上で灰色として表示されます。 Agent 起動後しばらく経っても表示が変わらない場合は、インターネット接続環境、および Agent 起動引数(ID や Key、プロキシ設定など)に間違いがないかご確認ください。
Agent の更新
以下の手順に従って、Agent を更新します。
-
以下のコマンドを使い Agent を停止してください(例. コンテナ名が myagent の場合)。
$ docker stop myagent $ docker rm myagent
-
起動コマンドを使って 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
Service URL の名前解決の設定について
Tunaclo AC の Agent からアプリケーション(Web API) までのドメイン名(FQDN)の解決は Docker の機能を利用しています。ドメイン名を利用して Back Agent からアプリケーションを呼び出す際には、下記の手順でホスト設定をおこなってください。
-
Back Agent のアクセスする URL を決める。
-
Service URL が DNS を用いて解決できる場合、Back Agent の起動時に
--dns
オプションを追加する。 -
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 暗号化を有効化します。
-
以下のコマンドを使い環境変数を設定します。
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
-
以下のように 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
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 アドレスを指定してください。 |