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 (default: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 (default: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とConnection 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.