CLI


Tunaclo AC で利用可能な Command Line Interface(CLI)について説明します。

CLI ツールのダウンロードと初期設定

以下の手順に従って、Tunaclo AC の CLI ツールのダウンロードと初期設定をおこないます。

  1. CLI ツールのダウンロード

Tunaclo portal の My profile ページの末尾にある Links のうち、

 Links
  ・Download Tunaclo CLI for Linux
  ・Download Tunaclo CLI for Windows

から必要な環境のものを選択し、クリックしてダウンロードしてください。

tunaclo-cli download


  1. ダウンロードした zip ファイルを任意の場所に展開し、展開したフォルダの"tunaclo"ファイル(Linux版)、または"tunaclo.exe"ファイル(Windows版)が実行可能な CLI ツールとなります。

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

    $ tunaclo config --project projectName
    $ tunaclo config --user userName
    
  3. CLI コマンドを使用する前にトークンを取得する必要があります。以下のコマンドを使いトークンを取得してください。その際、パスワードの入力を求められますので、先程登録したユーザー名に対応するパスワードを入力してください。

    $ tunaclo login
    

    MFAを有効にしているユーザーは、パスワードだけではログインできないため、登録しているデバイスでワンタイムコードを入手し、以下のコマンドを用いてログインしてください。

    $ tunaclo login --otp <ワンタイムコード>
    
Windows 版 CLI ツールをお使いの場合は、tunaclo コマンドを tunaclo.exe コマンドに置き換えて実行してください。
PROXY 環境の場合は、環境変数の http_proxy および https_proxy を適切に設定してください。

CLI コマンドリファレンス

各コマンド共通で使用可能な引数について

-h または --help を引数に指定することで、コマンドのヘルプが表示されます。

$./tunaclo -h
tunaclo CLI controls Tunaclo API connect’s resources.
Copyright 2022 FUJITSU LIMITED

Usage:
  tunaclo [flags]
  tunaclo [command]

Available Commands:
  completion  generate the autocompletion script for the specified shell
  config      Configure tunaclo CLI parameters.
  create      Create a new resource.
  delete      Delete a resource.
  help        Help about any command
  list        List details of resources.
  login       Login to Tunaclo API Connect.
  logout      Logout to remove access information.
  update      Update a resource.
  version     Print the version number of tunaclo CLI.

Flags:
      --debug   Show debug logs.
  -h, --help    help for tunaclo

Use "tunaclo [command] --help" for more information about a command.

$

tunaclo commands

コマンド名 説明
version CLI ツールのバージョンを表示します。
config CLI ツールの設定内容を表示・更新します。
login Tunaclo AC サービスにログインします。
logout Tunaclo AC サービスからログアウトします。
create リソース(サービス、クライアント、ルート)を作成します。
update リソース(サービス、クライアント)を更新します。
delete リソース(サービス、クライアント、ルート)を削除します。
list リソース(サービス、クライアント、ルート)を参照します。

version

構文
tunaclo version
説明
CLI ツールのバージョンを表示します。

$ tunaclo version
version: v1.5.2
Copyright 2022 FUJITSU LIMITED

config

構文
tunaclo config [ –project projectName ] [ –user userName ]
説明
CLI ツールの設定を表示もしくは更新します。引数なしで実行した場合は、設定されている情報を表示します。設定内容を更新する場合は、projectName にプロジェクト名を、userName にユーザー名を指定してください。
設定は ~/.tunaclo/config ファイルに保存されます。

$ tunaclo config
{"project":"tunaclo-test","user":"admin","environment":"Tunaclo",
 "KeycloakServerAddr":"https://identity.kuroshio.tunaclo.net",
 "ControllerAddr":"https://tunaclo-test.kuroshio.tunaclo.net"}

login

構文
tunaclo login [–otp ワンタイムコード]

説明
CLI コマンドを利用する前に、tunaclo login でログインする必要があります。パスワードの入力を求められますので、先に登録しておいたユーザー名に対応するパスワードを入力してください。
取得したトークンは ~/.tunaclo/token に保存されます。

トークンの有効期限の7日間を超過した場合、または明示的に logout をおこなった場合は、コマンド実行前に再度ログインしてください。

$ tunaclo login
Password :

MFAを有効にしている場合は、--otpオプションでワンタイムコードを引数に指定してください。

$ tunaclo login --otp ワンタイムコード
Password :

logout

構文
tunaclo logout
説明
Tunaclo AC サービスからログアウト(tunaclo login で取得した認証トークンを破棄)します。

$ tunaclo logout

create

構文
tunaclo create { service | client | route } -j json
説明
リソース(サービス、クライアント、ルート)を作成します。json にはリソースタイプに応じた JSON 形式のファイルを指定してください。

  • サービス作成について JSON sample (service.json)

    {
      "serviceName" : "MyService",
      "description": "This is my first service.",
      "replicaNum": 1,
      "endpoints" : [
        {
          "virtualURL" : "http://127.0.0.1:30000",
          "serviceURL" : "http://10.0.1.4:8000",
          "grantSubdirAccess": true
        }
      ]
    }
    
    $ tunaclo create service -j service.json
    { "serviceID": "mymZwvC777YCXscXhRrRRan", "serviceKey": "Cijk7rtnjpg4D6DKCPJaZ56" }
    

    サービス作成コマンドを実行すると、ServiceID と ServiceKey が出力されます。

  • クライアント作成について
    JSON sample (client.json)

    {
      "clientName" : "MyClient",
      "description": "This is my first client."
    }
    
    $ tunaclo create client -j client.json
    { "clientID": "RABfTTLVNuxTJRV4NfkMN", "clientKey": "WNNmCimD76mTD73NNG9zDDe" }
    

    クライアント作成コマンドを実行すると、ClientID と ClientKey が出力されます。

  • ルート作成について
    JSON sample (route.json)

    {
      "serviceID" : "mymZwvC777YCXscXhRrRRan",
      "clientID" : "RABfTTLVNuxTJRV4NfkMN"
    }
    
    $ tunaclo create route -j route.json
    Succeeded
    

    また、簡易的に tunaclo create route -s serviceName -c clientName でルート作成することも可能です。

update

構文
tunaclo update { service | client } -n target -j json
説明
リソース(サービス、クライアント)を更新します。json にはリソースタイプに応じた JSON 形式のファイルを指定してください。
JSON ファイル記法はサービス作成やクライアント作成で使用するものと同じです。target には、更新したいリソースの名前を指定してください。

  • サービス更新について
    JSON sample (service-update.json)

    {
      "serviceName": "MyService",
      "endpoints": [
        {
          "virtualURL": "http://www.test.local:30000",
          "serviceURL": "http://10.0.1.4:8000",
          "grantSubdirAccess": true
        }
      ]
    }
    
    $ tunaclo update service -n MyService -j service-update.json
    Succeeded
    
  • クライアント更新について
    JSON sample (client-update.json)

    {
      "clientName" : "MyClient",
      "locked": true
    }
    
    $ tunaclo update client -n MyClient -j client-update.json 
    Succeeded
    

delete

構文

  • ルートを削除する場合
    tunaclo delete route -s serviceName -c clientName
  • サービス、またはクライアントを削除する場合
    tunaclo delete { service | client } -n target

説明
リソース(サービス、クライアント、ルート)を削除します。ルートの場合は、serviceName, clientName の組み合わせを指定することで削除できます。サービス、またはクライアントの場合は、target にリソースの名前を指定することで削除できます。

$ tunaclo delete route -s MyService -c MyClient
Succeeded
$ tunaclo delete client -n MyClient
Succeeded

list

構文
tunaclo list { services | clients | routes } [ -f { text | json | pretty } ] 説明
リソース(サービス、クライアント、ルート)を参照します。サービス、クライアント、ルートの中から参照したいリソースを指定してください。
出力形式は -f オプションで指定できます。デフォルトでは pretty 形式で表示されます。

  • pretty 形式

    $ tunaclo list services -f pretty
    serviceName : MyService
    serviceID   : XYTmPNzhZpXTkVrKi5HGC
    projectID   : c2bf7598-ffff-4d88-543-4afe67ed3cc0
    replicaNum  : 1
    endpoints   :
      virtualURL, serviceURL, grantSubdirAccess
      http://127.0.0.1:30000, http://10.0.1.4:8000, true
    description : This is my first service.
    
    
  • text 形式

    $ tunaclo list services -f text
    serviceID XYTmPNzhZpXTkVrKi5HGC serviceName MyService projectID c2bf7598-ffff-4d88-543-4afe67ed3cc0 replicaNum 1 endpoints [ {virtualURL: http://127.0.0.1:30000, serviceURL: http://10.0.1.4:8000, grantSubdirAccess: true} ] description This is my first service.
    
  • json 形式

    $ tunaclo list services -f json | jq .
    {
      "services": [
        {
          "serviceID": "XYTmPNzhZpXTkVrKi5HGC",
          "serviceName": "MyService",
          "serviceKey": "Cijk7rtnjpg4D6DKCPJaZ56",
          "endpoints": [
            {
              "virtualURL": "http://127.0.0.1:30000",
              "serviceURL": "http://10.0.1.4:8000",
              "grantSubdirAccess": true
            }
          ],
          "projectID": "c2bf7598-ffff-4d88-543-4afe67ed3cc0",
          "creator": "admin",
          "replicaNum": 1,
          "description": "This is my first service."
        }
      ]
    }
    

動作環境

CLI ツールは以下の推奨環境で動作を確認しています。

推奨環境 詳細 備考
OS CentOS 7.7.1908 以上、
Ubuntu Server 18.04.3 LTS 以上、
Windows 10または8.1
対応機種 CPU:2 GHz 64 ビット プロセッサー
(推奨:インテル Core2 Duo 2GHz 以上)
または同等の互換プロセッサー
メモリー:推奨:4.0GB 以上
HDD:空き容量 10GB 以上
必要メモリー容量、ハードディスク容量は、システム環境によって異なる場合があります。