Skip to content

Devstack 2016

Hirofumi Ichihara edited this page Feb 4, 2017 · 2 revisions

Devstackについて

Devstack入門を読んで下さい。

Devstack 変化

2016年であったdevstackの大きな変更点は、ようやくneutronがデフォルトサービスとして認められたことでしょう。この変更で local.conf でneutronをサービスとして指定する必要がなくなったため、 local.conf がとてもスッキリ書けるようになりました。

最小 local.conf

最低限必要な local.conf の中身は下記になります。

[[local|localrc]]
HOST_IP=127.0.0.1
MYSQL_PASSWORD=mysql
RABBIT_PASSWORD=rabbitmq
ADMIN_PASSWORD=secret
SERVICE_PASSWORD=secret

これだけの設定でdevstackの基本的なデプロイは可能です。実際には *_PASSWORD 系のオプションも省略可能ですが、devstackでのデプロイ中にパスワードを聞かれるようになるので設定しておくのが良いでしょう。ちなみに、この設定でdevstackが設定するOpenStackサービスは Keystone, Nova, Glance, Cinder, Neutron, Horizon, Tempest です。これに加えて、OpenStack以外のサービス( RabbitMQ, MySQL, Dstat)も提供されます。

最小限サービス起動を目指す

前章で書いたようにデフォルト設定では、実際に必要なサービス以外のOpenStackサービスの設定も走ってしまい、devstackのデプロイ時間が長くなってしまいます。そこで、必要に応じて最小限のサービスのみを設定するようにしましょう。

Neutron のみ

例えば、Neutron単体の機能だけ確認したいというケースでは下記のような local.conf を使いましょう。

[[local|localrc]]
HOST_IP=127.0.0.1
MYSQL_PASSWORD=mysql
RABBIT_PASSWORD=rabbitmq
ADMIN_PASSWORD=secret
SERVICE_PASSWORD=secret
ENABLED_SERVICES=key,rabbit,q-svc,q-agt,q-l3,q-dhcp,q-meta,q-metering,mysql

これだけの設定でNeutronのAPIを叩いて正常に動かすことができます。

最低限 VM を起動する

VMを起動して簡単に通信の確認をしたいというケースでは下記のような local.conf を使いましょう。

[[local|localrc]]
HOST_IP=127.0.0.1
MYSQL_PASSWORD=mysql
RABBIT_PASSWORD=rabbitmq
ADMIN_PASSWORD=secret
SERVICE_PASSWORD=secret
ENABLED_SERVICES=key,n-api,n-cpu,n-cond,n-sch,n-novnc,n-cauth,placement-api,placement-client,g-api,g-reg,q-svc,q-agt,q-dhcp,q-l3,q-meta,rabbit,mysql

これだけで仮想ネットワーク付きのVMを起動して、VNCもしくはSSHでVMに接続して簡単な動作チェックが可能です。

このように、ユースケースに応じて起動するサービスを工夫することでdevstackのデプロイ時間を短くすると開発が捗ります。

おまけ

これは2016年のトピックというわけではないですが、昔に比べてネットワーク設定周りが楽になりました。devstackを利用する開発者は自分の手元の端末(ラップトップなど)においてVagrantなどで(VirtualBoxの)VMを立ててdevstackを動かしてテストすることが多いですが、その際にNova instanceから外部NW(インターネット)へ出ていくところの設定が少しテクニカルな要素があり、またVMにNICを複数つけて色々考えないといけないのは煩わしい作業でした。しかし、今のdevstackはNICが1つしかないVM上に作ったNova instanceにシンプルに外部NW接続を提供できます。例えば、インターネットに接続しているNIC1つしかないVM上で前章の設定でdevstackを動かしNova instanceを起動した際には、特になんの設定もなくNova Instanceからインターネットへアクセスすることができるようになりました。

追記(2/5)

NovaのPlacement APIが必須となったのでlocal.confにその設定(placement-api,placement-client)を追記