Ncloud CLI
    • PDF

    Ncloud CLI

    • PDF

    記事の要約

    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


    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.