CLI


前提条件

  • 事前に Tunaclo AC サービスにお申込みください。
  • ご契約時に案内しているガイドに従い、CLI ツールの初期設定を完了してください。
  • Linux の仮想マシン(VM)をご用意ください。
  • VM には予め Docker をインストールください。( Docker公式

システムの構成

Quick start system structure

本クイックスタートでは以下の流れとなります。

Step 1. Web サーバーの準備
Step 2. Tunaclo AC へログイン
Step 3. クライアントの作成
Step 4. サービスの作成
Step 5. ルートの作成
Step 6. Agent の起動
Step 7. 接続テスト
Step 8. クリーンアップ

Step 1. Web サーバーの準備

まずは、VM 上に Web サーバーを立てましょう。ここでは NGINX のコンテナを用いて Port 80番で起動します。

$ docker run -d --name nginx -p 8000:80 nginx

以下のように localhost:8000 にアクセスします。

$ curl http://localhost:8000

正常に起動できていれば、以下の様な NGINX の応答が返されます。

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Step 2. Tunaclo AC へログイン

契約時にご案内する手順に従い CLI ツールをダウンロードしてください。

以下のコマンドを使い、アカウント情報をもとに CLI ツールの設定を更新します。
projectName には契約しているプロジェクト名を、userName にはユーザー名を指定してください。

$ tunaclo config --project projectName
$ tunaclo config --user userName

以下のコマンドを使って Tunaclo AC にログインしてください。Password には初期設定で入力したユーザーのパスワードを入力してください。

$ tunaclo login
Password :
$ 
CLIツール を PROXY 環境下で利用する場合は、環境変数の http_proxy および https_proxy を適切に設定してください。

Step 3. クライアントの作成

作成するクライアントのパラメーターを JSON 形式(client.json)で指定します。

{
  "clientName" : "MyClient",
  "description": ""
}

clientName には Project 内で一意なクライアント名を付けます、ここでは MyClient を設定します。
description には任意の情報を入力できます。ここでは特に指定をしません。

client.json の用意ができたら、以下のコマンドを使ってサービスを作成しましょう。

$ tunaclo create client -j client.json
{ "clientID": "6Y2TaUepsrV8qZpNpKvEc", "clientKey": "JxFeVTstVsZGvL7Z5XAgb" }

クライアントの作成に成功すると、clientIDclientKey が発行されます。これらの情報は Step 6. で使用するため無くさないようメモしておいてください。

Step 4. サービスの作成

クライアントの作成が完了したら、次はサービスを作成しましょう。

クライアントの作成と同様に、作成するサービスのパラメーターを JSON 形式(service.json)で指定します。

{
    "serviceName": "MyService",
    "description": "",
    "replicaNum": 1,
    "endpoints": [
        {
            "virtualURL": "http://127.0.0.1:30000",
            "serviceURL": "http://{NGINXが起動するマシンのIPアドレス}:8000",
            "grantSubdirAccess": true
        }
    ]
}

serviceName には Project 内で一意なサービス名を付けます、ここでは MyService を設定します。
description には任意の情報を入力できます。ここでは特に指定をしません。
replicaNum は Agent のレプリカ数を指定します。ここでは 1(同じ Agent ID での接続を許容しない)を指定します。
virtualURL はクライアントから serviceURL で指定するサービスにアクセスするためのURLです。ここでは “http://127.0.0.1:30000” とします。
serviceURL には公開したい NGINX サービスの “http://{NGINXが起動するマシンのIPアドレス}:8000” を指定します。
grantSubdirAccess は指定した Service URL を含むサブディレクトリーへのアクセスを許容します。ここでは true を指定します。

今回のシステム構成では、Back Agent と NGINX は Docker コンテナとして起動しています。
この場合、Service URL に localhost127.0.0.1 を指定すると Back Agent からアクセスできません。そのため、{NGINXが起動するマシンのIPアドレス} にはご用意した VM の IP アドレスを指定ください。

service.json の用意ができたら、以下のコマンドを使ってサービスを作成しましょう。

$ tunaclo create service -j service.json
{ "serviceID": "kssq6kz3BJZxWT8VecU8c", "serviceKey": "Kp892BB539rWDZAx2Fnb" }

サービスの作成に成功すると、serviceIDserviceKey が発行されます。これらの情報は Step 6. で使用するため無くさないようメモしておいてください。

Step 5. ルートの作成

作成したサービス MyService とクライアント MyClient をつなぐ許可を設定します(Tunaclo AC ではこれをルートと呼びます)。

以下のコマンドを使ってルートを作成しましょう。

$ tunaclo create route -s "MyService" -c "MyClient"
Succeeded

ルートの作成に成功すると、Succeeded と表示されます。

Step 6. Agent の起動

Agent の起動にあたり、ご契約時に提供されているガイドに従い最新のコンテナ版 Agent をダウンロードください。

次に、Agent 起動の前にご契約 Project の ID を以下のコマンドで確認しておきます。

$ tunaclo list services | grep projectID
projectID   : c2bf7598-ffc4-4d88-aaaa-4afe67ed3cc

クライアント側(Front Agent)、サービス側(Back Agent)の順で以下のように起動してみましょう。

  • クライアント側

    $ docker run -d --restart=unless-stopped --log-opt max-size=20m --log-opt max-file=5 --name MyClient-agent -p 30000:30000 tunacloac/frontagent:latest front_agent -controller https://api.kuroshio.tunaclo.net -projectID {projectID} -agentID {agentID} -agentKey {agentKey}
    

    {projectID} には確認した Project の ID、{agentID} {agentKey} には Step 3. でメモしておいた情報をそれぞれ指定します。

  • サービス側

    $ docker run -d --restart=unless-stopped --log-opt max-size=20m --log-opt max-file=5 --name MyService-agent tunacloac/backagent:latest back_agent -controller https://api.kuroshio.tunaclo.net -projectID {projectID} -agentID {agentID} -agentKey {agentKey}
    

    {projectID} には確認した Project の ID、{agentID} {agentKey} には Step 4. でメモしておいた情報をそれぞれ指定します。

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

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

以下のコマンドを使い Agent が正常に起動できているか確認します。

$ docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                    PORTS                                      NAMES
cd6a243c0a13        tunacloac/backagent:v1.1.0                          "back_agent -control…"   6 seconds ago       Up 4 seconds                                                         MyService-agent
82bba6ced67c        tunacloac/frontagent:v1.1.0                         "front_agent -contro…"   34 seconds ago      Up 31 seconds             0.0.0.0:30000->30000/tcp, 30001/tcp        MyClient-agent

起動に成功すると Back Agent、および Front Agent の STATUSUp として表示されます。

Step 7. 接続テスト

クライアント側で curl などを用いて http://127.0.0.1:30000 にアクセスすると Tunaclo AC 経由で Web サーバに接続できます。

$ curl http://127.0.0.1:30000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

接続に失敗する(NGINX の応答が返ってこない)場合は、以下のトラブルシューティングガイドもご参考ください。

トラブルシューティング

PROXY 環境下で curl コマンドを実行する場合は、以下のページもご参考ください。

PROXY 環境下でcurlコマンドを実行する

Step 8. クリーンアップ

以下の手順に従い、クイックスタートで作成したリソースを削除します。

  • Agent および Web サーバの停止と削除
  • ルートの削除
  • サービスの削除
  • クライアントの削除
Agent および Web サーバの停止と削除

Docker コンテナで作成した Agent と Web サーバを削除します。
それぞれ以下の手順を実施してください。

  • クライアント側

    $ docker stop MyClient-agent
    $ docker rm MyClient-agent
    
  • サービス側

    $ docker stop MyService-agent
    $ docker rm MyService-agent
    
  • Webサーバ

    $ docker stop nginx
    $ docker rm nginx
    
ルートの削除

以下のコマンドを使いルートを削除します。

$ tunaclo delete route -s MyService -c MyClient
Succeeded
サービスの削除

以下のコマンドを使いサービスを削除します。

$ tunaclo delete service -n MyService
Succeeded
クライアントの削除

以下のコマンドを使いクライアントを削除します。

$ tunaclo delete client -n MyClient
Succeeded

以上で、クリーンアップは終了です、お疲れ様でした。

前へ