- 印刷する
- 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認証キーを設定する必要があります。
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 (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環境でのシナリオは、以下のとおりです。
- 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)
ブラウザで結果確認