Ncloud CLI

Prev Next

Classic/VPC環境で利用できます。

Ncloud CLIの初期設定方法から、簡単な使用方法などを確認します。

参考

CLIに関連した詳細コマンドや例を確認するには、CLI helpコマンドを実行してください。

初期設定

Ncloud CLIを使用するためのインストール方法と API認証キーの設定方法を説明します。

インストール

OS(Windows、Linux)に対応する CLIの最新ファイルをダウンロードしてください。

参考

CLIの最新ファイルのダウンロードとファイルの構成に関する情報は、CLIのダウンロードで確認してください。

ダウンロードしたフォルダのパス(cli_window/cli_linux)でncloudコマンドを実行します。正常に実行すると、次のメッセージが表示されます。

  • Windows
    C:\Users\Naver\cli_window>ncloud
    ncloud <command> [subcommand] help
    
    ncloud: error: The command does not exist. For help, input 'help' command.
    
  • Linux
    Naver@AL01221192:/mnt/c/Users/NAVER/Desktop/cli_linux$ ./ncloud
    ncloud <command> [subcommand] help
    
    ncloud: error: The command does not exist. For help, input 'help' command.
    
  1. 8以降のバージョンの JREまたは JDKがローカル環境にインストールされていれば、次のファイルも使用できます。
C:\Users\Naver>javac -version
javac 1.8.0_80

既存の JRE、JDKを使用

含まれている JREファイルではなく、既存のローカル環境に既にインストールされている JREや JDKを利用する場合、ncloudのスクリプトファイルで次のように./jre8/bin/javajavaに変更します。これは、既存のローカル環境にインストールされたJREやJDKを使用する場合にのみ該当します。

  • 変更前
    #!/bin/bash
    HOME='./lib'
    /jre8/bin/java -jar ${HOME}/ncloud-api-cli-1.0.2-SNAPSHOT-jar-with-dependencies.jar $@
    
  • 変更後
    #!/bin/bash
    HOME='./lib'
    java -jar ${HOME}/ncloud-api-cli-1.0.2-SNAPSHOT-jar-with-dependencies.jar $@
    

API認証キーの設定

CLIを使用するには、まず API認証キーを設定する必要があります。

参考

API認証キーの詳細は、APIガイドをご参照ください。

ncloud configureコマンドを入力すると、Access KeySecret Keyを入力できるようになります。

Naver@AL01221192:/mnt/c/Users/Naver/Desktop/cli_linux$ ./ncloud configure
set [DEFAULT]'s configuration.
Ncloud Access Key Id [] :***js9sk$K)DA!#***
Ncloud Secret Access Key [] :***kdofFIik9D$Kdk2***
Ncloud API URL (デフォルト:https://ncloud.apigw.ntruss.com) []: 

各 API認証キーは、ユーザー環境ホームディレクトリの.ncloudフォルダに Configureファイルの形式で保存されます。API認証キーを問題なく入力すると、コマンドが正常に実行されます。入力した API認証キーが有効でない場合、次のようなメッセージが表示されます。

Naver@Al01221192:/mnt/c/Users/Naver/Desktop/cli_linux$ ./ncloud server getRegionList
Invalid consumer

認証キーが有効な場合、Zoneリスト表示を実行すると次のような結果が表示されます。

Naver@Al01221192:/mnt/c/Users/Naver/Desktop/cli_linux$ ./ncloud server getZoneList --regionNo 1
{
  "getZoneListResponse" : {
    "requestId" : "5604cb78-67c9-4d91-ae74-085152f23df3",
    "returnCode" : 0,
    "returnMessage" : "success",
    "zoneList" : [
      {
        "zone" : {
          "zoneNo" : 2,
          "zoneName" : "KR-1",
          "zoneDescription" : "加山 NANG zone"
        }
      }
    ]
  }
}

Profileオプションを通じて、設定した Profileの認証情報でコマンドを実行できます。

Naver@AL01221192:/mnt/c/Users/Naver/Desktop/cli_linux$ ./ncloud configure --profile example_profile
set [example_profile]'s configuration.
Ncloud Access Key Id [] :***js9sk$K)DA!#***
Ncloud Secret Access Key [] :***kdofFIik9D$Kdk2***
Ncloud API URL (デフォルト:https://ncloud.apigw.ntruss.com) []: 

呼び出しのサンプルコードは次の通りです。

Naver@Al01221192:/mnt/c/Users/Naver/Desktop/cli_linux$ ./ncloud server getZoneList --regionNo 1 --profile example_profile

コマンドヘルプ

Ncloud CLIを円滑に使用するためにヘルプを確認するには、コマンドの末尾にhelpを追加して実行してください。次のコマンドは、Ncloud CLIに対するオプションとヘルプ、そして使用できる最上位コマンドを並べます。

$ ./ncloud help

次のコマンドは、Ncloudの上位コマンドで使用できるサブコマンドを並べます。

$ ./ncloud server help
$ ./ncloud loadbalancer help

コマンドの構造

Ncloud CLIはコマンドラインでマルチパート構造を使用します。この構造は Ncloudに対する基本呼び出しで始まり、コマンドごとに実行する作業に対するサブコマンドがあります。CLIでオプションを追加する際に、特定のパラメータをどんな順番で指定しても構いません。

$ ./ncloud <command> <subcommand> [options and parameters]

CLIのパラメータとオプション指定

ほとんどのパラメータは簡単な文字列か数字です。その他にもMapやList形式のパラメータを使用することもできます。Listは次のようなコマンドで使用します。Listパラメータは、スペース( )またはコンマ(,)、追加パラメータ宣言などを利用して使用できます。

$ ./ncloud server getPublicIpInstanceList --publicIpInstanceNoList 573361 571968
$ ./ncloud server getPublicIpInstanceList --publicIpInstanceNoList 573361,571968
$ ./ncloud server getPublicIpInstanceList --publicIpInstanceNoList 573361 --publicIpInstanceNoList 571968

スペースがない文字列は、引用符で囲んでも囲まなくても構いません。ただし、Map形式の文字列は引用符で囲む必要があります。次の例のように、Linux、Mac OS、Unixおよび Windows PowerShellでは単一引用符「'」または二重引用符「"」が使用可能で、Windowsコマンドプロンプトでは二重引用符「''」を使用します。

  • Windows PowerShell, Linux, MacOS, Unix

    $ ./ncloud loadbalancer createLoadBalancerInstance --loadBalancerName penguin --loadBalancerRuleList 'protocolTypeCode="HTTP",loadBalancerPort="80",serverPort="80",l7HealthCheckPath="/l7check.html",proxyProtocolUseYn="N"'
    
  • Windowsコマンドプロンプト

    > ncloud loadbalancer createLoadBalancerInstance --loadBalancerName penguin --loadBalancerRuleList "protocolTypeCode='HTTP',loadBalancerPort='80',serverPort='80',l7HealthCheckPath='/l7check.html',proxyProtocolUseYn='N'"
    

コマンド出力制御

Ncloud CLIは二つの出力形式をサポートします。--outputオプションがなければ、基本JSON形式で表示されます。

  • JSON(json): 基本
  • XML(xml)

XMLで表示するには、次のように実行してください。

$ ncloud server getZoneList --output xml

Timeoutの設定

Read Timeoutと Connect Timeoutの時間を設定できます。秒単位で設定でき、デフォルト値は300秒です。

$ ncloud server getZoneList --read-timeout 10
$ ncloud server getZoneList --connect-timeout 5

CLIの実行シナリオ

CLIを利用して、簡単なテストシナリオを作成してみます。

VPC

VPC環境でのシナリオは次の通りです。

  1. VPCを作成
  2. Network ACLを照会
  3. Subnetを作成
  4. initスクリプトを作成(Apacheをインストール、起動し、touchコマンドを利用して index.htmlファイルを作成)
  5. サーバイメージを照会
  6. ACGを照会
  7. サーバを作成(initスクリプトを設定)
  8. グローバル IPアドレスの作成と割り当て
  9. ACG 80番ポートを許可
  10. 結果確認
  • VPCの作成(VPC番号*****224**)

    $ ./ncloud vpc createVpc --ipv4CidrBlock 192.168.0.0/16
    
  • 作成した VPCの Default Network ACLを照会(Network ACL番号 ***960)

    $ ./ncloud vpc getNetworkAclList --vpcNo ***224
    
  • Subnetの作成 (Subnet番号 ***928)

    $ ./ncloud vpc createSubnet --zoneCode KR-1 --vpcNo ***224 --subnet 192.168.1.0/24 --networkAclNo ***960 --subnetTypeCode PUBLIC
    
  • サーバ作成時に実行するinitスクリプトを作成(Initスクリプト番号 ***751)

    $ ./ncloud vserver createInitScript
    --initScriptContent '#!/bin/sh'$'\n''yum install -y httpd'$'\n''service httpd start'$'\n''echo '\''Hello World'\'' > /var/www/html/index.html'$'\n''chkconfig --level 2345 httpd on'
    
  • サーバイメージ CentOS 6.6(64bit) (商品コード(productCode) SW.VSVR.OS.LNX64.CNTOS.0606.B050)

    $ ./ncloud vserver getServerImageProductList  | grep `CentOS 6.6(64bit)' -C 8
    
     {
        "productCode": "SW.VSVR.OS.LNX64.CNTOS.0606.B050",
        "productName": "centos-6.6-64",
        "productType": {
          "code": "LINUX",
          "codeName": "Linux"
        },
        "productDescription": "CentOS 6.6(64bit)",
        "infraResourceType": {
          "code": "SW",
          "codeName": "Software"
        },
        "cpuCount": 0,
        "memorySize": 0,
        "baseBlockStorageSize": 53687091200,
        "platformType": {
          "code": "LNX64",
          "codeName": "Linux 64 Bit"
        },
        "osInformation": "CentOS 6.6 (64-bit)",
        "dbKindCode": "",
        "addBlockStorageSize": 0,
        "generationCode": ""
    }
    
  • 作成した VPCの Default ACGを照会 (ACG番号 ***009)

$ ./ncloud vserver getAccessControlGroupList --vpcNo ***224
  • サーバイメージ CentOS 6.6(64bit)で最低スペックのサーバインスタンスを作成(サーバインスタンス番号 ***182)

    $ ./ncloud vserver createServerInstances --vpcNo ***224 --subnetNo ***928 --serverImageProductCode 'SW.VSVR.OS.LNX64.CNTOS.0606.B050'
    --networkInterfaceList 'networkInterfaceOrder="0", accessControlGroupNoList=["***009"]' --initScriptNo ***751
    
  • サーバにグローバル IPアドレスを作成して割り当てる(***.***.145.185)

    $ ./ncloud vserver createPublicIpInstance --serverInstanceNo ***182
    
  • サーバの Network Interfaceに適用された ACGに80番ポート許可ルールを設定

    $ ./ncloud vserver addAccessControlGroupInboundRule --vpcNo ***224 --accessControlGroupNo ***009
    --accessControlGroupRuleList 'protocolTypeCode="TCP", ipBlock="0.0.0.0/0", portRange="80"'
    
  • ブラウザで結果確認
    image.png

Classic

Classic環境でのシナリオは次の通りです。

  1. サーバイメージを照会
  2. サーバを作成(initスクリプトを設定して Apacheをインストール、起動し、touchコマンドを利用して index.htmlファイルを作成)
  3. グローバル IPアドレスの作成と割り当て
  4. サーバ作成を確認
  • サーバイメージCentOS 6.6(64bit)の商品コード(productCode): SPSW0LINUX000044

    $ ./ncloud server getServerImageProductList  | grep `CentOS 6.6(64bit)' -C 8
    
     {
            "productCode": "SPSW0LINUX000044",
            "productName": "centos-6.6-64",
            "productType": {
              "code": "LINUX",
              "codeName": "Linux"
            },
            "productDescription": "CentOS 6.6(64bit)",
            "infraResourceType": {
              "code": "SW",
              "codeName": "Software"
            },
            "cpuCount": 0,
            "memorySize": 0,
            "baseBlockStorageSize": 53687091200,
            "platformType": {
              "code": "LNX64",
              "codeName": "Linux 64 Bit"
            },
            "osInformation": "CentOS 6.6 (64-bit)",
            "dbKindCode": "",
            "addBlockStorageSize": 0
          }
    
  • サーバイメージCentOS 6.6(64bit)で最小仕様のサーバインスタンスを作成(サーバインスタンス番号 ***385)

    $ ./ncloud server createServerInstances --serverImageProductCode 'SPSW0LINUX000044'
    --userData 'file:///mnt/c/Users/NAVER/Desktop/cli_linux/userData.sh'
    
  • サーバ作成時に実行するユーザーファイル(userData.sh)

    #!/bin/sh
    yum install -y httpd
    service httpd start
    echo 'Hello World' > /var/www/html/index.html
    chkconfig --level 2345 httpd on
    
          {
              "createServerInstancesResponse" : {
                  "requestId" : "df5aebe7-6875-49fb-91fb-2df11f67ffa5",
                  "returnCode" : 0,
                  "returnMessage" : "success",
                  "totalRows" : 1,
                  "serverInstanceList" : [
                    {
                      "serverInstanceNo" : ***385,
                      ...
                    } 
                  ]
               }
           }
    
  • サーバにグローバル IPアドレスを作成して割り当てる(..145.185)

    $ ./ncloud server createPublicIpInstance --serverInstanceNo '***385'
    
     {
        "createPublicIpInstanceResponse" : {
            "requestId" : "ec5feb0b-9d9c-4539-bef1-81e94fc81dc6",
            "returnCode" : 0,
            "returnMessage" : "success",
            "totalRows" : 1,
            "publicIpInstanceList" : [
              {
                "publicIpInstanceNo" : ***389, 
                "publicIp" : "***.***.145.185"
              }
            ]
         }
     }
    
  • NAVERクラウドプラットフォームのコンソールで、***.***.145.185グローバル IPアドレスに対する80番ポートのACG許可を設定(Server > ACG)
    image.png

  • ブラウザで結果確認
    image.png