SlideShare a Scribd company logo
>< 1
Ansible2とOpenStackの関係
~ v2モジュールを使おう! ~
ANSIBLE MEETUP TOKYO
><
Name: さいとう ひでき
Email: saito@fgrep.org
Twitter ID: @saito_hideki
IRC: saitou
Launchpad ID: saitou
日本OpenStackユーザ会ボードメンバー
株式会社インターネットイニシアティブ
2
Who am I
ANSIBLE MEETUP TOKYO
>< 3
ITに必要な資源管理機能をソフトウェア制御し、必要なと
きに必要なだけ利用者に提供するCloudOSです。
➡ 計算機
➡ ネットワーク
➡ ストレージ
➡ 管理用API
あなたが思い描くインフラを
自在に構成することができる
仕組みを提供(コンセプト)
ANSIBLE MEETUP TOKYO
OpenStackの紹介
><ANSIBLE MEETUP TOKYO 4
v1モジュールが提供する機能(おさらい)
Ansible v1.xが提供しているOpenStackモジュールでは、
以下の機能をAPI経由で操作することができました。
1. 仮想マシンの作成・削除
2. 仮想ネットワークの作成・削除
3. 仮想ネットワーク中のサブネットを作成・削除
4. 仮想マシン用のフローティングIPを作成・削除・割り当て管理
5. 仮想ルータの作成・削除・設定変更
6. OSイメージの登録・削除
7. ユーザの登録・削除
8. 公開鍵登録・削除
><ANSIBLE MEETUP TOKYO 5
Ansible v2で全面刷新!
v2では機能の追加がしやすいように、OpenStackモジュール
が全面刷新されています
•全面刷新されたコードベース
➡ Shadeライブラリを利用するよう全面刷新
➡ 機能の拡張が容易に可能
➡ os-client-configを利用した認証処理の簡略化
➡ Dynamic Inventoryのサンプルコードも刷新
•より多くの機能を提供
➡ v1.xの11モジュールに対してv2.xは36のモジュールを提供
➡ 全面刷新による問題…v1.xではできていたのに…も一部あり
➡ 実はv1.x系のモジュールも利用可能
><ANSIBLE MEETUP TOKYO 6
OpenStackモジュールv1,v2の構造の違い
Shadeの恩恵でモジュールへ機能実装が容易になりました
OpenStackモジュール OpenStackモジュール
python-keystoneclient
python-novaclient
python-neutronclient
python-glanceclient
OpenStack API
Shade
OpenStack API
python-keystoneclient
python-novaclient
python-neutronclient
python-glanceclient
python-swiftclient
python-cinderclient
python-ironicclient
v1.x v2.x
><ANSIBLE MEETUP TOKYO 7
Shadeの長所と短所
長所
• 認証情報をYAMLファイルに外出して実行時にロードすることが可能
• python-*clientよりも使いやすい抽象化された機能群
• Shadeが持っている機能ならモジュールの拡張は容易
• Shadeにはプロジェクト間のしがらみがない
• Dynamic Inventory用のクラスも持っている
短所
• Shade自体に不足している機能の拡張が面倒
1. OpenStack-InfraにShadeのバグ報告(https://goo.gl/nox0AQ)
2. Ansibleプロジェクトにissue登録
3. Shadeのバグ修正(OpenStack CLA必須:https://goo.gl/trt7Vt)
4. AnsibleプロジェクトPullRequest
※python-*clientは、ほぼ全てのAPI機能を利用できるのでv1時代は2,4だけでOK
><ANSIBLE MEETUP TOKYO 8
v2モジュールはおすすめ!
v1に対して、多数の機能が追加となっており、パラメータ
も整理されて非常に使いやすくなっています。
[新たな機能]
1. ベアメタルサーバサービス(Ironic)の管理機能を提供
2. オブジェクトストレージ(Swift)管理機能を提供
3. ブロックストレージ(Cinder)管理機能を提供
[強化された機能]
1. 仮想マシン管理機能の強化(セキュリティグループの操作など)
2. 仮想ネットワーク管理機能の強化(Portの操作など)
3. アカウント管理機能の強化(グループ、プロジェクトの操作など)
>< 9
ご静聴ありがとうございました
ANSIBLE MEETUP TOKYO

More Related Content

Ansible2とOpenStackの関係

  • 2. >< Name: さいとう ひでき Email: saito@fgrep.org Twitter ID: @saito_hideki IRC: saitou Launchpad ID: saitou 日本OpenStackユーザ会ボードメンバー 株式会社インターネットイニシアティブ 2 Who am I ANSIBLE MEETUP TOKYO
  • 3. >< 3 ITに必要な資源管理機能をソフトウェア制御し、必要なと きに必要なだけ利用者に提供するCloudOSです。 ➡ 計算機 ➡ ネットワーク ➡ ストレージ ➡ 管理用API あなたが思い描くインフラを 自在に構成することができる 仕組みを提供(コンセプト) ANSIBLE MEETUP TOKYO OpenStackの紹介
  • 4. ><ANSIBLE MEETUP TOKYO 4 v1モジュールが提供する機能(おさらい) Ansible v1.xが提供しているOpenStackモジュールでは、 以下の機能をAPI経由で操作することができました。 1. 仮想マシンの作成・削除 2. 仮想ネットワークの作成・削除 3. 仮想ネットワーク中のサブネットを作成・削除 4. 仮想マシン用のフローティングIPを作成・削除・割り当て管理 5. 仮想ルータの作成・削除・設定変更 6. OSイメージの登録・削除 7. ユーザの登録・削除 8. 公開鍵登録・削除
  • 5. ><ANSIBLE MEETUP TOKYO 5 Ansible v2で全面刷新! v2では機能の追加がしやすいように、OpenStackモジュール が全面刷新されています •全面刷新されたコードベース ➡ Shadeライブラリを利用するよう全面刷新 ➡ 機能の拡張が容易に可能 ➡ os-client-configを利用した認証処理の簡略化 ➡ Dynamic Inventoryのサンプルコードも刷新 •より多くの機能を提供 ➡ v1.xの11モジュールに対してv2.xは36のモジュールを提供 ➡ 全面刷新による問題…v1.xではできていたのに…も一部あり ➡ 実はv1.x系のモジュールも利用可能
  • 6. ><ANSIBLE MEETUP TOKYO 6 OpenStackモジュールv1,v2の構造の違い Shadeの恩恵でモジュールへ機能実装が容易になりました OpenStackモジュール OpenStackモジュール python-keystoneclient python-novaclient python-neutronclient python-glanceclient OpenStack API Shade OpenStack API python-keystoneclient python-novaclient python-neutronclient python-glanceclient python-swiftclient python-cinderclient python-ironicclient v1.x v2.x
  • 7. ><ANSIBLE MEETUP TOKYO 7 Shadeの長所と短所 長所 • 認証情報をYAMLファイルに外出して実行時にロードすることが可能 • python-*clientよりも使いやすい抽象化された機能群 • Shadeが持っている機能ならモジュールの拡張は容易 • Shadeにはプロジェクト間のしがらみがない • Dynamic Inventory用のクラスも持っている 短所 • Shade自体に不足している機能の拡張が面倒 1. OpenStack-InfraにShadeのバグ報告(https://goo.gl/nox0AQ) 2. Ansibleプロジェクトにissue登録 3. Shadeのバグ修正(OpenStack CLA必須:https://goo.gl/trt7Vt) 4. AnsibleプロジェクトPullRequest ※python-*clientは、ほぼ全てのAPI機能を利用できるのでv1時代は2,4だけでOK
  • 8. ><ANSIBLE MEETUP TOKYO 8 v2モジュールはおすすめ! v1に対して、多数の機能が追加となっており、パラメータ も整理されて非常に使いやすくなっています。 [新たな機能] 1. ベアメタルサーバサービス(Ironic)の管理機能を提供 2. オブジェクトストレージ(Swift)管理機能を提供 3. ブロックストレージ(Cinder)管理機能を提供 [強化された機能] 1. 仮想マシン管理機能の強化(セキュリティグループの操作など) 2. 仮想ネットワーク管理機能の強化(Portの操作など) 3. アカウント管理機能の強化(グループ、プロジェクトの操作など)