Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2015 0807 ConoHa I am the bone of the OpenStack API CLI tool

940 views

Published on

API of OpenStack is capable of expansion, you can add options while maintaining compatibility.

Published in: Engineering
  • Be the first to comment

2015 0807 ConoHa I am the bone of the OpenStack API CLI tool

  1. 1. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. OSC Kyoto/Kansai 2015/08/06 OSC Nagoya 2015/05/23 LT: 新しい「ConoHa」での OpenStack python client extension をつくってみた GMOインターネット株式会社 エンジニア 郷古 直仁
  2. 2. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. LT: 俺の新しい「ConoHa」リリース後に作った OpenStack python client extension の作り方が間違っている GMOインターネット株式会社 エンジニア 郷古 直仁 OSC Kyoto/Kansai 2015/08/06 OSC Nagoya 2015/05/23
  3. 3. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 自己紹介 • 郷古直仁(@naoto_gohko) • 所属:GMOインターネット システム本部 第二サービス開発部 オープンコンピューティングチー ム • ConoHaサービスの開発運用、 GMOアプリクラウドのサービスの開発運用、 お名前.com VPS KVMの運用など、 クラウド系サービスのお仕事、 OpenStack関係
  4. 4. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 4 はじめに ConoHa cloud 2015/05/18(Mon) OpenStack summit Vancouver開催 の日、リニューアルした新しいConoHaを リリースさせていただきました
  5. 5. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 5 ぱちぱち
  6. 6. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 6 ログイン画面
  7. 7. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 7 このはモードも健在 (若干大人っぽい?)
  8. 8. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 8 このは夏モードに更新 (座敷わらしっぽい?)
  9. 9. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 9 一番の肝は自分的には - OpenStack (Juno) API の公開 (+RESTful with keystone auth [ DB hosting API, Mail hosting API] ) になります
  10. 10. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 APIドキュメントは以下 https://www.conoha.jp/docs/ になります
  11. 11. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1
  12. 12. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 今回のテーマである OpenStack python client extensionですが、なぜ extension (機能拡張)が必要なのかということになります。 Nova boot (vm create)に焦点を当てて解説します。 OpenStack Compute(nova) API; http://developer.openstack.org/api-ref- compute-v2.html ConoHa Compute API; https://www.conoha.jp/docs/compute- create_vm.html
  13. 13. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 JSON request body; ConoHaのみ adminPass がある(拡張) >> ここがextensionな部分 { "server": { "imageRef": "1f7bcc63-4a18-4371-85b1-bcdd4301ff31", "flavorRef": "nc1g", "adminPass":"72LY2hf38Kf84vCy4sUr", # << ここを使う "key_name": "mikumo-conoha-key-01”, "security_groups": [ { "name": "default" }, { "name": "another-secgroup-name" } ] } }
  14. 14. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 JSON request bodyの拡張 >> 通常の python-novaclientは対応していない >> novaclientなどpython clientを拡張する機能により JSON attributeをrequest bodyに追加する
  15. 15. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 novaclient機能拡張について学習 >> pypi (python package index)にて検索 >> https://pypi.python.org/ >> >> novaclientだけ検索しても、結構出てくる
  16. 16. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 Nova boot JSON request bodyの拡張 >> 検索結果、以下を見つけた nova boot時にDiskConfigというattributeを設定可 能にするextだった (rackspace作成、disk partition を設定したりする) https://pypi.python.org/pypi/os_diskconfig_p ython_novaclient_ext/0.1.2 >> これを元にして、改造、作成する >> ここが、サブタイトルの所以であるww
  17. 17. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 以下、githubにupしたextensionを みていきましょう https://github.com/naototty/ conoha_boot_adminpass_python_novaclie nt_ext
  18. 18. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 https://github.com/naototty/ conoha_boot_adminpass_python_novaclient_ext
  19. 19. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 1 https://github.com/naototty/ conoha_boot_adminpass_python_novaclient_ext setup.py 以下、pipとかでセットアップ用: novaclient が 拡張機能なので、require
  20. 20. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 https://github.com/naototty/ conoha_boot_adminpass_python_novaclient_ext *-egg-info/requires.txt 以下、pipとかでセットアップ用: egg dir novaclient が 拡張機能なので、require Pythonのlibrary loaderが見ます
  21. 21. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 https://github.com/naototty/ conoha_boot_adminpass_python_novaclient_ext os_adminpass_python_novaclient_ext / 本体のプログラムは今回はこれだけ: __init__.py ライブラリdirに1ファイルだけ !!
  22. 22. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 https://github.com/naototty/ conoha_boot_adminpass_python_novaclient_ext os_adminpass_python_novaclient_ext / __init__.py githubを直接みます https://github.com/naototty/conoha_boot_adminpass_pyth on_novaclient_ext/blob/master/os_adminpass_python_nov aclient_ext/__init__.py
  23. 23. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 では、Demo - extなしの場合、nova bootではパスワードが指定でき ない >> ConoHaでは、auto generate passwordがclou d-initで設定される (response JSONでnova boot時に取得) - extインストール(github) - extありの場合、 --admin-password <pw> と指定 できる
  24. 24. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 インストール前はnovaclientのみ入ってます pip freezeコマンドで確認 (ここでは、Mac OS X環境) インストール前後のnova client CLIの動作の違いDEMO
  25. 25. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 ソースのdir確認: インストール前後のnova client CLIの動作の違いDEMO Pythonのライブラリパッケージ関係のファイルがほとんど
  26. 26. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 ライブラリのdir 中身確認: インストール前後のnova client CLIの動作の違いDEMO Pythonのライブラリの中に __init__.py ファイルが1個だけ
  27. 27. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 インストール: sudo python setup install インストール前後のnova client CLIの動作の違いDEMO
  28. 28. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 インストール (2): sudo python setup install インストール前後のnova client CLIの動作の違いDEMO os-adminpass-python-novaclient-ext という名前でインストールされました
  29. 29. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 2 インストール後にnovaclient-extも入っていることを確認 pip freezeコマンドで確認 (Mac OS X環境) インストール前後のnova client CLIの動作の違いDEMO
  30. 30. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 3 インストール後、コマンドオプションが増えています インストール前後のnova client CLIの動作の違いDEMO 1行目に機能拡張によって、オプションが増えました
  31. 31. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 解りづらい _ ; ですが、これでnovaclientでも、 web panelと同様に、 root passwordを指定できるよ うになります (cloudinitで自動設定されます)
  32. 32. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. このようにして、 Python の novaclient に 機能拡張して、 コマンドを追加したり、 オプションを 追加したりできます
  33. 33. Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved. 明日はConoHaブース 4Fにあります 弊社エバ、ひろのぶさんの講座が 1号館4F AV会議室 15:15 ‒ 16:00 「新しくなったクラウドプラットフォーム ConoHaを使ってみよう」 にあります。よろしくお願いします

×