個人利用から大規模開発までConoHaで始めるクラウド開発入門

最終回 ConoHa API(OpenStack API)を使ってみよう

この記事を読むのに必要な時間:およそ 4 分

今回のテーマは「ConoHa API」「OpenStack」です。ConoHaにはAPIが用意されており,各機能を操作できることはすでにお話ししてきました。一方,ConoHaはOpenStackを基盤として採用しており,APIの仕様もほぼOpenStackがそのまま使われています(一部独自の拡張がありますが,互換性を損なわないように考慮されています)⁠今回は「OpenStackとして」APIを使うことにフォーカスし,OpenStack公式のCLIツールを使ってみたり,VagrantからOpenStack APIを通じてConoHaにvagrant upしてみたいと思います。

OpenStack

ところで,みなさんはOpenStackをご存じでしょうか? OpenStackはオープンソースで開発されている,クラウドを構築するためのソフトウェア群です。サーバ,ネットワーク,ストレージなどを仮想化して扱い,統合されたダッシュボードから操作し,一方でAPIを通じて管理することもできます。OpenStackはプライベートクラウドやパブリッククラウドの基盤として急速に普及が進んでおり,ConoHaも2013年のサービスリリース時からOpenStackをベースに構築されています。

OpenStackは各機能がコンポーネントとして分かれています。コンピュート(仮想サーバ)を扱う「Nova」⁠ネットワークを扱う「Neutron」⁠ブロックストレージを扱う「Cinder」⁠仮想マシンイメージを扱う「Glance」⁠認証を扱う「Keystone」などです。これらがREST APIやAMQP(Advanced Message Queuing Protocol)を通じて通信することでクラウドシステムを構成します図1)⁠

公式CLIツールを使ってみる

OpenStackにはPython実装のCLIツールが公式に用意されていてコマンドラインからOpenStackの各コンポーネントを操作できます。CLIツールはコンポーネントごとに用意されていて,たとえばNovaの場合は「python-nova-client」という名前になります。これをpipでインストールします。

また最近は「python-openstackclient」という,いくつかのコンポーネントをまとめて操作できるツールも出てきました。これらのツールは,もちろんConoHaでも使えます。今回は一番新しい「python-openstackclient」を使ってみましょう。CLIツールを利用するには,Pythonがインストールされていてpipが利用できる必要があります。2系,3系どちらでも動作が保証されています。まずは次のようにインストールしてみましょう。

$ pip install python-openstackclient

インストールが完了したら,起動する前にAPIの認証情報をセットします。これはConoHaのコントロールパネルに情報があるので,⁠APIユーザ名」⁠APIパスワード」⁠テナント名」⁠Identity Serviceのエンドポイント」を見つけてください。そして認証情報を環境変数で指定します注1リスト1)⁠

リスト1 環境変数の設定

export OS_USERNAME=APIユーザ名
export OS_TENANT_NAME=APIテナント名
export OS_PASSWORD=APIパスワード
export OS_AUTH_URL=Identity Serviceのエンドポイント

CLIツールを起動するには,その名のとおり「openstack」と実行します。すると対話的なシェルが起動します。まずはhelpと実行してみましょう。コマンドリストが表示されます。helpのあとにコマンド名を指定すると,コマンドの説明が表示されます。図2ではserver listコマンドのヘルプを表示しています。

図2 server listコマンドのヘルプ

$ openstack
(openstack) help
(略)
(openstack) help server list
help server list
usage: server list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                   [--max-width <integer>] [--noindent]
                   [--quote {all,minimal,none,nonnumeric}]
                   [--reservation-id <reservation-id>]
                   [--ip <ip-address-regex>] [--ip6 <ip-address-regex>]
                   [--name <name-regex>] [--instance-name <server-name>]
                   [--status <status>] [--flavor <flavor>] [--image <image>]
                   [--host <hostname>] [--all-projects] [--project <project>]
                   [--project-domain <project-domain>] [--user <user>]
                   [--user-domain <user-domain>] [--long]
(以下略)

server listは仮想サーバ(ConoHaではVPSと呼んでいます)の一覧を表示します。実行すると,図3のようになります。

図3 server listコマンド

(openstack) server list
+--------------------------------------+---------------+--------+--------------------------------------------------------------------------+
| ID                                   | Name          | Status | Networks                                                                 |
+--------------------------------------+---------------+--------+--------------------------------------------------------------------------+
| 1e5b583b-e10c-4bd0-be67-************ | 157-7-***-*** | ACTIVE | ext-cnode-157-7-***-0-**=2400:8500:1301:704:157:7:***:***, 157.7.***.*** |
+--------------------------------------+---------------+--------+--------------------------------------------------------------------------+

では,サーバを作成するにはどうすればよいのでしょうか? これにはserver createコマンドを使います。このコマンドはオプションが多いので複雑そうに見えますが,ConoHaで作成する場合は次のようにすればOKです。

(openstack) server create
--flavor g-1gb
--image vmi-ubuntu-14.04-amd64
--security-group default
--security-group gncs-ipv4-all
--keyname hironobu-key
test-server-1

ConoHaではflavorはプラン名,imageはVPSのテンプレートです。指定できる値はそれぞれflavor listとimage listコマンドで取得できます。security-groupオプションはコントロールパネルの「接続許可ポート」に相当し,security group listコマンドで取得できます。ConoHaではdefaultとgncs-ipv4-allを指定すれば,すべてのTCPポートで通信ができます。key-nameはSSHの公開鍵名を指定するパラメータで,あらかじめコントロールパネルかAPI経由で公開鍵を登録しておく必要があります。key-nameは任意指定ですが,指定しないとVPSにSSHなどでログインできません。最後のtest-server-1は任意の文字列で,サーバ名を指定します。

server createが成功すると,作成したサーバの詳細情報が返されます。ConoHaのコントロールパネルを見ると,サーバが増えていることが確認できます。

このように公式のCLIツールを使うと,簡単なコマンドでConoHaを操作できます。これは,ConoHaがOpenStackのAPIを使えるから可能なのです。CLIツールにはほかにもさまざまな機能がありますので,ヘルプを参照しながら試してみてください。

注1)
コマンドラインオプションでも指定できます。ヘルプを参照してください。

著者プロフィール

斉藤弘信(さいとうひろのぶ)

GMOインターネット株式会社 テクニカルエバンジェリスト

2000年に同社に入社。ユーザーサポートやデータセンターでのオペレーション業務等を担当し,その後社長室などのゼネラル部門を経て,2014年9月よりホスティング事業のテクニカルエバンジェリストを担当。

得意分野はWebアプリケーションの設計/開発,Linuxサーバー構築/運用。

Twitter:@hironobu_s

コメント

コメントの記入