概要

概要

OpenStack では、 Python を使って OpenStack API と通信する方法として 4 つの異なる方法が提供されています。それぞれ対象とするユーザーが少しずつ異なります。

  • OpenStack SDK
  • shade
  • プロジェクト毎のクライアントライブラリー
  • keystoneauth を使った REST の直接呼び出し

また、以下に精通している必要があります。

  • RESTful Web サービス
  • HTTP/1.1
  • JSON などのデータのシリアライゼーション形式

OpenStack SDK

OpenStack Python ソフトウェア開発キット (SDK) を使って、 OpenStack クラウドのリソースの作成や管理を行う Python の自動化スクリプトを作成できます。 SDK は OpenStack API の Python バインディングを実装しています。これを使うことで、 Python による自動化タスクの実行を、 REST を直接呼び出しではなく、 Python オブジェクトに対する呼び出しで実現できます。

初めてのユーザーは、まずは OpenStack SDK を使ってコーディングを行うとよいでしょう。

shade

shade は、OpenStack クラウド間の実装上の差分を隠蔽することを主眼にした抽象化ライブラリーです。 OpenStack SDK は裏で呼び出される REST API に対するそのままのオブジェクトインターフェースを提供するのに対して、 shade は REST API の詳細を隠蔽した方がメリットがある場合には積極的に隠蔽します。たくさんの OpenStack クラウドに対し同じ Python プログラムを実行しようと思っている場合、 share を使おうと思うかもしれません。ただし、クラウドの本質である抽象化マッピングを持たない、あるクラウドの特定の機能を使う必要がある場合には、 shade を使ってそのようなことはできません。

プロジェクト毎のクライアントライブラリー

各 OpenStack プロジェクトは、自身のプロジェクトの REST API を呼び出すクライアントライブラリーを持っています。何らかの理由で他に選択肢がない場合を除き、プロジェクト毎のライブラリーを使うのは避けるべきです。

keystoneauth を使った REST の直接呼び出し

すべての OpenStack の API はその実体は REST API です。 keystoneauth ライブラリーは、 Python の requests ライブラリーの Session オブジェクトによく似たオブジェクトを提供し、このオブジェクトは認証をすべて処理してくれます。 REST を直接扱う方がよい場合や、お使いのクラウドで他のライブラリーではまだサポートされていない機能が実装されている場合は、このオプションを使います。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.