Aviator でモダンに OpenStack を操作する
こんにちは。@jedipunkz です。 自分は Ruby を普段使うのでいつも Fog というライブラリを使って OpenStack, AWS を操作していました。Fog を使うとクラウドの操作が Ruby のネイティブコードで行え るのでシステムコマンド打つよりミス無く済みます。 Fog より後発で Aviator というライブラリが登場してきたので少し使ってみたのです がまだ未完成なところがあるものの便利な点もあって今後に期待だったので紹介します。 認証情報を yaml ファイルに記す 接続に必要な認証情報を yaml ファイルで記述します。名前を ‘aviator.yml’ として 保存。この時に下記のように環境毎に認証情報を別けて書くことができます。こうする ことでコードの中で開発用・サービス用等と使い分けられます。 production: provider: openstack auth_service: name: identity host_uri: <Auth URL> request: create_token validator: list_tenants auth_credentials: username: <User Name> password: <Password> tenant_name: <Tenant Name> development: provider: openstack auth_service: name: identity host_uri: <Auth URL> request: create_token validator: list_tenants auth_credentials: username: <User Name> password: <Password> tenant_name: <Tenant Name> シンタックス確認 +++ 次に aviator のシンタックスを確認します。Fog に無い機能で、コマンドラインでシ ンタックスを確認できてしかも指定可能はパラメータと必須なパラメータと共にサンプ ルコードまで提供してくれます。公式サイトに’サーバ作成’のメソッドが掲載されてい るので、ここでは仮想ディスクを作るシンタックスを確認してみます。 % gem install aviator % aviator describe openstack volume # <-- 利用可能な機能を確認 Available requests for openstack volume_service: v1 public list_volume_types v1 public list_volumes v1 public delete_volume v1 public create_volume v1 public get_volume v1 public update_volume v1 public root % aviator describe openstack volume v1 public create_volume # <-- シンタックスを確認 :Request => create_volume Parameters: +---------------------+-----------+ | NAME | REQUIRED? | +---------------------+-----------+ | availability_zone | N | | display_description | Y | | display_name | Y | | metadata | N | | size | Y | | snapshot_id | N | | volume_type | N | +---------------------+-----------+ Sample Code: session.volume_service.request(:create_volume) do |params| params.volume_type = value params.availability_zone = value params.snapshot_id = value params.metadata = value params.display_name = value params.display_description = value params.size = value end このように create_volume というメソッドが用意されていて、指定出来るパラメータ・ 必須なパラメータが確認できます。必須なモノには “Y” が REQUIRED に付いています。 またサンプルコードが出力されるので、めちゃ便利です。 ...