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


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