- 印刷する
- 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.
- 8以降のバージョンの JREまたは JDKがローカル環境にインストールされていれば、次のファイルも使用できます。
C:\Users\Naver>javac -version
javac 1.8.0_80
既存の JRE、JDKを使用
含まれている JREファイルではなく、既存のローカル環境に既にインストールされている JREや JDKを利用する場合、ncloudのスクリプトファイルで次のように./jre8/bin/java
をjava
に変更します。これは、既存のローカル環境にインストールされた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 KeyとSecret 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環境でのシナリオは次の通りです。
- VPCを作成
- Network ACLを照会
- Subnetを作成
- initスクリプトを作成(Apacheをインストール、起動し、touchコマンドを利用して index.htmlファイルを作成)
- サーバイメージを照会
- ACGを照会
- サーバを作成(initスクリプトを設定)
- グローバル IPアドレスの作成と割り当て
- ACG 80番ポートを許可
- 結果確認
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"'
ブラウザで結果確認
Classic
Classic環境でのシナリオは次の通りです。
- サーバイメージを照会
- サーバを作成(initスクリプトを設定して Apacheをインストール、起動し、touchコマンドを利用して index.htmlファイルを作成)
- グローバル IPアドレスの作成と割り当て
- サーバ作成を確認
サーバイメージ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)
ブラウザで結果確認