自分で保存したイメージを使用して、API経由で仮想サーバーを作成してみよう(ローカルディスクプラン編)


mex_icon

みなさんこんにちは。メックスです。ゲームセンターに置いてあるパンチングマシンで高いスコアを出すコツは、打ち方を工夫するより全身を使って思いっきり体重を乗せる事です。助走つけたりすると破壊力抜群になりますね。助走しちゃダメなお店の場合は、ストレートよりもフックの方が高い数値が出ます。お試し下さい。

さて、今回もAPIに関する情報です。掲題の通りですが、API経由でイメージ保存したデータを使用して、仮想サーバーを作成してみましょう。自動化への取り組みを前提として記述させて頂きます。

GMOアプリクラウドのAPIを叩いてみた
GMOアプリクラウドのAPIを使ってみよう(認証編)
GMOアプリクラウドのAPIで仮想サーバー(ローカルディスクプラン)を作ってみる
GMOアプリクラウドのAPIで仮想サーバー(外部ディスクプラン)を作ってみる
API操作用のトークンIDを変数に入れてみよう

GMOアプリクラウドでは、カズさんが紹介している手順でAPI経由で仮想サーバーを作成する事が出来ます。ですが、オートスケールや定期実行等自動的に仮想サーバーを作成する際は、殆どのケースでデフォルトのOSイメージではなく自らデータを保存したイメージを使用する事になると思います。そこで今回はAPI経由でのイメージ保存の方法と、保存したイメージを使ったVMの構築方法をご紹介させて頂きたいと思います。

以下、今回記述する環境です。尚、本記事は検証の上で記述致しておりますが、無保証となりますのでご理解をお願い致します。今回はローカルディスクプランのイメージ保存を行う際の手順のご案内となります。


API実行仮想サーバータイプ LS-0102

OS CentOS 6.7

新たに作成する仮想サーバータイプ L-0102 時間課金

ローカルIPアドレス指定 行う


以下、手順となります。


①イメージ保存
-イメージ保存の注意点
-仮想サーバーのID確認
-仮想サーバーのイメージ保存

②仮想サーバーの作成

①イメージ保存

-イメージ保存の注意点

GMOアプリクラウドでは、作成した仮想サーバーのブートディスク領域をイメージとして保存する事が出来ます。イメージを保存する際の注意点と致しましては、以下の通りです。

1.ブートディスク領域外に展開したいアプリケーションやデータを設置しない

アプリクラウドのイメージ保存は、ブートディスク領域のみ保存します。Lプラン、LSプラン、Nプラン全て30Gとなります。Nプランはディスク領域の殆どがブートディスク領域なのであまり気にする必要はないのですが、Lプラン、LSプランのイメージを取る際は、事前にdf -h 等でパーティションを確認し、ブートディスク領域外に展開したいデータを置かないように気をつけましょう。

2.他の仮想サーバーと接続する場合は、ネットワーク設定ファイルの記述を動的なものにする

これは実行したい内容に拠るので一概には言えないのですが、他の仮想サーバーと接続して使用する事を想定している場合、ネットワーク情報が静的なものですと問題が発生します。変数を使用する等、動的な記述を行うようにして下さい。

-仮想サーバーのID確認

#イメージ保存を行うサーバーのID確認
curl -X GET -H "Accept: application/json" -H "X-Auth-Token:トークンID" サーバー操作エンドポイントURL/servers

上記通りに操作しますと、現在の環境下で作成されている仮想サーバーの一覧が出力されます。
Json形式整形サービス等を利用し、仮想サーバーのローカルIPアドレスを頼りに目当てのサーバーIDを探して下さい。データ内の並びは、”name”:”ローカルIPアドレス”, “id”:”サーバーのID”となります。「トークンID」は、お馴染みの認証方法で発行します。「サーバー操作エンドポイントURL」は、コントロールパネルのAPI情報で確認出来ます。

-仮想サーバーのイメージ保存

#イメージ保存の実行
curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token:トークンID" -d '{"createImage": {"name": "イメージ名"}}' サーバー操作エンドポイントURL/servers/サーバーID/action

上記通りに操作する事で、イメージ保存を実行する事が出来ます。「イメージ名」は任意ですので、分かりやすい名前をつけて下さい。「サーバー操作エンドポイントURL」は、コントロールパネルのAPI情報で確認出来ます。「サーバーID」には先程確認した情報を入力して下さい。

HTTP/1.1 202 Accepted
Server: openresty/1.7.10.1
Date: Tue, 28 Jun 2016 13:19:56 GMT
Content-Type: application/json
Content-Length: 0
Connection: keep-alive
Location: サーバー操作エンドポイントURL/images/イメージID

上記通りに返り値が来れば、イメージ保存成功です。Location末尾の値が、仮想サーバーを作成する時に必要となるイメージIDとなりますので、忘れないようにしましょう。

②仮想サーバーの作成

ここまで来たら、後はカズさんの記事とほぼ同じです。

# curl -X POST -H "X-Auth-Token: Userトークン" -H Content-Type:application/json -d '{"server":{"name":"任意のサーバー名","flavorRef":"101021","imageRef":"イメージID","networks":[{"fixed_ip":"外部用プライベートIP"},{"fixed_ip":"内部用プライベートIP"}]}}' サーバー操作エンドポイントURL/servers

上記通りの操作で、保存したイメージIDを使用して、仮想サーバーの作成を行う事が出来ます。「イメージID」の項目に、先程確認した値を入れて下さい。flavorRefはサーバーのスペックです。各種flavorの確認方法に関しては、こちらの記事をご参照下さい。今回はL-0102の時間課金なので、”101021″となります。

以上となります。保存イメージからの仮想サーバー作成は基本中の基本となりますので、前回に続き少し地味かも知れませんが、ご紹介させて頂きました。

GMOアプリクラウドのAPIを使った自動化への取り組みを行ってまいりますので、今しばらくお付き合い下さいね。

 

 

 

 

カテゴリー: GMOアプリクラウド サービス・機能   タグ:   この投稿のパーマリンク

コメントは受け付けていません。