OpenStack とコンテナ
OpenStack も随分と枯れた雰囲気が出てきました。1年に2回開かれている OpenStack Summit でももはや安定性については語り尽くされ、次に何がフィーチャーされるのかが注目になってます。そんなラストフロンティアの一つにコンテナ利用があり、コンテナ環境を実現する Magnum、OpenStack 環境の提供を実現する Kolla やネットワーク機能を提供する Kuryr あたりは前回(2016年10月)のBarcelona でのセッションも多く盛り上がっていました。最新の Ocata リリースでもそのあたりはきっちり触れられています。
そんなわけで今回はKollaについて調べていきたいと思います。まずはインストールしてみましょう。
What is Kolla?
公式ドキュメントはこのあたり。
Kolla には現在2つのサブプロジェクトがあります。kolla-kubernetes は kolla-ansible に依存して開発されているようなので、本記事ではまず kolla-ansible をインストールしてみようと思います。
なお、Kolla 上で提供される OpenStackプロジェクトは現在以下の通り。これだけあれば、大抵のことはできそうですね。
-
Aodh <http://docs.openstack.org/developer/aodh/>
__ -
Barbican <http://docs.openstack.org/developer/barbican/>
__ -
Bifrost <http://docs.openstack.org/developer/bifrost/>
__ -
Ceilometer <http://docs.openstack.org/developer/ceilometer/>
__ -
Cinder <http://docs.openstack.org/developer/cinder/>
__ -
CloudKitty <http://docs.openstack.org/developer/cloudkitty/>
__ -
Congress <http://docs.openstack.org/developer/congress/>
__ -
Designate <http://docs.openstack.org/developer/designate/>
__ -
Freezer <https://wiki.openstack.org/wiki/Freezer-docs>
__ -
Glance <http://docs.openstack.org/developer/glance/>
__ -
Gnocchi <http://docs.openstack.org/developer/gnocchi/>
__ -
Heat <http://docs.openstack.org/developer/heat/>
__ -
Horizon <http://docs.openstack.org/developer/horizon/>
__ -
Ironic <http://docs.openstack.org/developer/ironic/>
__ -
Karbor <http://docs.openstack.org/developer/karbor/>
__ -
Keystone <http://docs.openstack.org/developer/keystone/>
__ -
Kuryr <http://docs.openstack.org/developer/kuryr/>
__ -
Magnum <http://docs.openstack.org/developer/magnum/>
__ -
Manila <http://docs.openstack.org/developer/manila/>
__ -
Mistral <http://docs.openstack.org/developer/mistral/>
__ -
Monasca <http://wiki.openstack.org/wiki/monasca>
__ -
Murano <http://docs.openstack.org/developer/murano/>
__ -
Neutron <http://docs.openstack.org/developer/neutron/>
__ -
Nova <http://docs.openstack.org/developer/nova/>
__ -
Octavia <http://docs.openstack.org/developer/octavia/>
__ -
Panko <http://docs.openstack.org/developer/panko/>
__ -
Rally <http://docs.openstack.org/developer/rally/>
__ -
Sahara <http://docs.openstack.org/developer/sahara/>
__ -
Searchlight <http://docs.openstack.org/developer/searchlight/>
__ -
Senlin <http://docs.openstack.org/developer/senlin/>
__ -
Solum <http://docs.openstack.org/developer/solum/>
__ -
Swift <http://docs.openstack.org/developer/swift/>
__ -
Tacker <http://docs.openstack.org/developer/tacker/>
__ -
Tempest <http://docs.openstack.org/developer/tempest/>
__ -
Trove <http://docs.openstack.org/developer/trove/>
__ -
Vmtp <http://vmtp.readthedocs.io/en/latest/>
__ -
Watcher <http://docs.openstack.org/developer/watcher/>
__ -
Zaqar <http://docs.openstack.org/developer/zaqar/>
__ -
Zun <http://wiki.openstack.org/wiki/zun>
__
また、Kolla はインフラ用のコンポーネントも提供しています。この辺りがないと、インストールも儘ならないので、当然っちゃ当然ですかね。
- Ceph implementation for Cinder, Glance and Nova
- collectd, InfluxDB, and Grafana for performance monitoring.
- Elasticsearch and Kibana to search, analyze, and visualize log messages.
- HAProxy and Keepalived for high availability of services and their endpoints.
- Heka A distributed and scalable logging system for OpenStack services.
- Kafka A distributed streaming platform.
- MariaDB and Galera Cluster for highly available MySQL databases
- MongoDB as a database back end for Ceilometer and Gnocchi
- Open vSwitch and Linuxbridge back ends for Neutron
- RabbitMQ as a messaging back end for communication between services.
インストール
さて、インストールを進めることにしましょう。Quick Start を見ていくと、ハードウェア要件が書かれています。
- 2 network interfaces
- 8GB main memory
- 40GB disk space
準備できているインストール環境は MacBook Air Early 2015 (macOS Sierra 10.12.3) です。メモリが 4GB しかないんですが、インフラエンジニアの根性で出来るところまで動かしたいと思います。なお、推奨されている環境はベアメタルか仮想マシンということなので、Vagrant+Virtualbox を使って All-in-one 構成を試してみます。
参考までに、開発環境用の [Vagrantfile] (https://github.com/openstack/kolla/blob/master/contrib/dev/vagrant/Vagrantfile) に書かれている仮想マシンの設定は以下の通りです。
Machine Type | CPU | Memory |
---|---|---|
All-in-One | 4 | 4096 |
Operator | 1 | 1024 |
Control | 1 | 2048 |
Compute | 1 | 1024 |
Storage | 1 | 1024 |
Network | 1 | 1024 |
仮想マシン環境の準備
Vagrant + VirtualBox を使い、仮想マシン環境を作ります。
$ vagrant init centos/7;
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
利用した Vagrantfile はこんな感じです。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.hostname = "KollaEvSV"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end
CentOS7 内に環境を整える
CentOS7 上で環境を整えていきます。
$ yum update
次にインターフェイスがアップしている事を確認します。
$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:1f:db:b7 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
valid_lft 84834sec preferred_lft 84834sec
inet6 fe80::5054:ff:fe1f:dbb7/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:fc:26:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fefc:265f/64 scope link
valid_lft forever preferred_lft forever
環境の準備
Kolla のデプロイメントに必要となるソフトウェアのインストールを進めます。Ocata 用の Minimum requirement は見つからなかったので、Newtonのものを参考にします。
- Ansible (>2.0.0)
- Docker (>1.10.0)
- Docker Python (>1.6.0)
- Python Jinja2 (>2.8.0)
まずは EPEL と PIP のインストール。
# yum install epel-release
# yum install python-pip
# pip install -U pip
続いて PIP パッケージマネージャ用のライブラリをインストールします。
# yum install python-devel libffi-devel gcc openssl-devel
続いて ansible のインストール。
# yum install ansible
このままでは ansible 1,9.6 が入り requirment を満たさないので、パッケージのアップグレードをかけます。
# pip install -U ansible
# ansible --version
ansible 2.2.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
続いて Docker のインストール。
# curl -sSL https://get.docker.io | bash
# docker --version
Docker version 17.03.0-ce, build 60ccb22
バージョン表記がなんかおかしいー、と思ったら2017年3月のリリースから変わったみたいですね。
docker-engine を systemd に登録します。
# mkdir -p /etc/systemd/system/docker.service.d
# tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
# systemctl daemon-reload
# systemctl restart docker
続いて Docker Python のインストール。こちらも同様にアップグレードをかけます。
# yum install python-docker-py
# pip install -U docker-py
NTP のインストールもします。
# yum install ntp
# systemctl enable ntpd.service
# systemctl start ntpd.service
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
x.ns.gin.ntt.ne 249.224.99.213 2 u 1 64 1 48.796 -15.726 0.902
r031229.203112. 203.112.1.4 4 u - 64 1 28.593 6.632 11.210
153-128-30-125. 133.243.238.243 2 u 1 64 1 18.442 -3.141 0.000
sv01.azsx.net 10.84.87.146 2 u - 64 1 12.920 -2.351 0.000
Libvirtd が動いているときは、停止させる必要があります。
# systemctl stop libvirtd.service
# systemctl disable libvirtd.service
hosts への追加もお忘れなく。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.2.15 koollaEvSV KollaEvSV
Kolla デプロイメント
さあ、ようやく Kolla に手がつけられます。
# pip install kolla-ansible
globals.yml と passwords.yml を /etc/kolla/ にコピーします。
# cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
インベントリファイルをカレントディレクトリにコピー。
cp /usr/share/kolla-ansible/ansible/inventory/* .
インターフェイスの設定を行うために、/etc/kolla/globals.yml を編集します。
network_interface: "eth0"
neutron_external_interface: "eth1"
パスワードの生成を kolla-genpwd を使って行います。結果は/etc/kolla/passwords.yml に保存されます。
kolla-genpwd
さてここまででホストの準備は終了です。割とめんどくさいですね。そんなあなたに、kolla-ansible -i <<inventory file>> bootstrap-servers
というコマンドで Quick setup をしてくれるみたいです。これ使えばよかった〜!
コンテナイメージのビルド
etc/systemd/system/docker.service.d/kolla.confを編集して、以下のようにします。
[Service]
MountFlags=shared
ExecStart=
ExecStart=/usr/bin/docker daemon --mtu 1400
# systemctl daemon-reload
# systemctl restart docker
Docker image をプルします。
# kolla-ansible pull
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kolla/centos-binary-neutron-server 4.0.0 8dedaf87d819 31 hours ago 727 MB
kolla/centos-binary-nova-compute 4.0.0 35da27fc5586 31 hours ago 1.23 GB
kolla/centos-binary-neutron-openvswitch-agent 4.0.0 d276dcdfcbb6 31 hours ago 727 MB
kolla/centos-binary-neutron-metadata-agent 4.0.0 e1c0bf5f7745 31 hours ago 703 MB
kolla/centos-binary-heat-api 4.0.0 66332a0e6ad4 31 hours ago 644 MB
kolla/centos-binary-neutron-dhcp-agent 4.0.0 445442cd0f01 31 hours ago 703 MB
kolla/centos-binary-neutron-l3-agent 4.0.0 445442cd0f01 31 hours ago 703 MB
kolla/centos-binary-heat-api-cfn 4.0.0 ce92766d3ff1 31 hours ago 644 MB
kolla/centos-binary-nova-ssh 4.0.0 3b0f5591ecc8 31 hours ago 723 MB
kolla/centos-binary-nova-placement-api 4.0.0 8a16c227e835 31 hours ago 755 MB
kolla/centos-binary-nova-conductor 4.0.0 65a844b9889e 31 hours ago 703 MB
kolla/centos-binary-nova-api 4.0.0 d90b06229654 31 hours ago 755 MB
kolla/centos-binary-nova-consoleauth 4.0.0 487d0b6926d3 31 hours ago 704 MB
kolla/centos-binary-nova-scheduler 4.0.0 92bdcfc854ac 31 hours ago 703 MB
kolla/centos-binary-nova-novncproxy 4.0.0 7f246ab0d8f5 31 hours ago 704 MB
kolla/centos-binary-kolla-toolbox 4.0.0 d771b993a59b 31 hours ago 730 MB
kolla/centos-binary-keystone 4.0.0 9b0c48681973 31 hours ago 677 MB
kolla/centos-binary-glance-registry 4.0.0 68da81d330c4 31 hours ago 757 MB
kolla/centos-binary-horizon 4.0.0 dc5a666631eb 31 hours ago 863 MB
kolla/centos-binary-haproxy 4.0.0 420fb3e8ce55 31 hours ago 439 MB
kolla/centos-binary-cron 4.0.0 74a89fe112f0 31 hours ago 418 MB
kolla/centos-binary-openvswitch-db-server 4.0.0 37f21379cad8 31 hours ago 440 MB
kolla/centos-binary-heat-engine 4.0.0 ab9138c4719c 31 hours ago 644 MB
kolla/centos-binary-glance-api 4.0.0 bc61de7fba03 31 hours ago 816 MB
kolla/centos-binary-fluentd 4.0.0 5b98e39f1285 31 hours ago 720 MB
kolla/centos-binary-nova-libvirt 4.0.0 b21c5bacfbcf 31 hours ago 966 MB
kolla/centos-binary-openvswitch-vswitchd 4.0.0 b047dd6e83cd 31 hours ago 440 MB
kolla/centos-binary-memcached 4.0.0 927246be7bd2 31 hours ago 418 MB
kolla/centos-binary-rabbitmq 4.0.0 c9e9af5a39b9 31 hours ago 477 MB
kolla/centos-binary-mariadb 4.0.0 7c9305397257 31 hours ago 808 MB
kolla/centos-binary-keepalived 4.0.0 b8fb9f966ac4 31 hours ago 423 MB
用意されたイメージは31ほどありました。これらが docker run するだけで動くとは胸熱ですね。
設定を続けます。もう一度/etc/kolla/globals.yml
の編集に戻りkolla_internal_vip_address
の値を設定します。同一サブネットに所属する未使用アドレスを指定します。
kolla_internal_vip_address: "10.0.2.16"
続いて仮想化のハードウェア・アクセラレーションがサポート有無を確認。今回はzeroが返ってきているので、Nova は QEMU を使うようにします。
# egrep -c '(vmx|svm)' /proc/cpuinfo
0
# mkdir -p /etc/kolla/config/nova
# cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type = qemu
cpu_mode = none
EOF
ようやくデプロイ…なのだが
これで一通りの準備は整いました。が、忘れていけないのは今回の環境の貧弱さ。このままデプロイしてはきっと不幸なことが起こります。デプロイされるコンポーネントの制御はどのスクリプトでしているのかを見てみると、どうもインベントリファイルが臭い /etc/kolla/globals.yml
で設定するようです。ここの記述を僕の独断と偏見で最低限のものにしてみましょう。
編集したglobals.ymlをここにおいてみました。参考にしてみてください。
kolla-ansible の prechecks でこれまでの設定や環境の確認をしていきます。ここでいっぱいエラーが出るかもしれませんが一つ一つ解決していきましょう。あと少しですよ!
kolla-ansible prechecks -i all-in-one
(...)
PLAY RECAP *********************************************************************
localhost : ok=126 changed=0 unreachable=0 failed=0
ヤッター、通ったー!早速デプロイです。
OpenStack Kolla のデプロイ
では早速やってみましょう。
kolla-ansible deploy -i all-in-one
(...)
PLAY RECAP *********************************************************************
localhost : ok=265 changed=116 unreachable=0 failed=0
意外と早いですね。体感ですが数分といったところです。これならデプロイ時に問題が起きたときの切り戻しでも実用になるかもしれません。
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
660109e1c5a1 kolla/centos-binary-horizon:4.0.0 "kolla_start" 2 minutes ago Up 2 minutes horizon
065a055bb5f1 kolla/centos-binary-heat-engine:4.0.0 "kolla_start" 3 minutes ago Up 3 minutes heat_engine
83c25517a69f kolla/centos-binary-heat-api-cfn:4.0.0 "kolla_start" 3 minutes ago Up 3 minutes heat_api_cfn
6455729f0915 kolla/centos-binary-heat-api:4.0.0 "kolla_start" 3 minutes ago Up 3 minutes heat_api
2c39a5fb949a kolla/centos-binary-neutron-metadata-agent:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes neutron_metadata_agent
6fc7abebd4f4 kolla/centos-binary-neutron-l3-agent:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes neutron_l3_agent
8d82d1231d27 kolla/centos-binary-neutron-dhcp-agent:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes neutron_dhcp_agent
1a19cb1b3711 kolla/centos-binary-neutron-openvswitch-agent:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes neutron_openvswitch_agent
2b9cad419219 kolla/centos-binary-neutron-server:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes neutron_server
9bce73422ce5 kolla/centos-binary-openvswitch-vswitchd:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes openvswitch_vswitchd
89964bb13a96 kolla/centos-binary-openvswitch-db-server:4.0.0 "kolla_start" 5 minutes ago Up 5 minutes openvswitch_db
80ec59644b0e kolla/centos-binary-nova-compute:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_compute
51be30d1fe3b kolla/centos-binary-nova-novncproxy:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_novncproxy
e1c15eb9ff6d kolla/centos-binary-nova-consoleauth:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_consoleauth
a1a8b9c91efa kolla/centos-binary-nova-conductor:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_conductor
9a9c023fd765 kolla/centos-binary-nova-scheduler:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_scheduler
0415d5f8088e kolla/centos-binary-nova-api:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_api
eca65fa6a8e9 kolla/centos-binary-nova-placement-api:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes placement_api
23819b965280 kolla/centos-binary-nova-libvirt:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_libvirt
138bf2fe6cd7 kolla/centos-binary-nova-ssh:4.0.0 "kolla_start" 8 minutes ago Up 8 minutes nova_ssh
f6836459471d kolla/centos-binary-glance-registry:4.0.0 "kolla_start" 10 minutes ago Up 10 minutes glance_registry
cd24476d69bb kolla/centos-binary-glance-api:4.0.0 "kolla_start" 10 minutes ago Up 10 minutes glance_api
68e4de29feb1 kolla/centos-binary-keystone:4.0.0 "kolla_start" 11 minutes ago Up 11 minutes keystone
2934bf820687 kolla/centos-binary-rabbitmq:4.0.0 "kolla_start" 11 minutes ago Up 11 minutes rabbitmq
1f1645be9e37 kolla/centos-binary-mariadb:4.0.0 "kolla_start" 12 minutes ago Up 12 minutes mariadb
9a7fd746ba07 kolla/centos-binary-memcached:4.0.0 "kolla_start" 12 minutes ago Up 12 minutes memcached
a5e0fb64ebc7 kolla/centos-binary-keepalived:4.0.0 "kolla_start" 13 minutes ago Up 13 minutes keepalived
9c818d0b52fb kolla/centos-binary-haproxy:4.0.0 "kolla_start" 13 minutes ago Up 13 minutes haproxy
5a126c7b600c kolla/centos-binary-cron:4.0.0 "kolla_start" 30 minutes ago Up 30 minutes cron
3677d3d6420a kolla/centos-binary-kolla-toolbox:4.0.0 "kolla_start" 30 minutes ago Up 30 minutes kolla_toolbox
425bf226015c kolla/centos-binary-fluentd:4.0.0 "kolla_start" 30 minutes ago Up 30 minutes fluentd
デプロイした環境を使ってみる
新しく構築した環境を使うため、変数設定などを行うシェルを生成します。
$ kolla-ansible post-deploy
$ . /etc/kolla/admin-openrc.sh
$ env | grep OS_
OS_USER_DOMAIN_NAME=default
OS_PROJECT_NAME=admin
OS_IDENTITY_API_VERSION=3
OS_PASSWORD=UwK9kID4v7AQe4ISvILhkSZ1MvRk83fXexJ7RzCf
OS_AUTH_URL=http://10.0.2.16:35357/v3
OS_USERNAME=admin
OS_TENANT_NAME=admin
OS_INTERFACE=internal
OS_PROJECT_DOMAIN_NAME=default
OpenStack クライアントを入れていない場合は、インストールします。
pip install python-openstackclient
flavor も image も何もない環境なので、適当に作って……。
$ nova boot --flavor m1.extra_tiny --image cirros test
+--------------------------------------+------------------------------------------------------+
| Property | Value |
+--------------------------------------+------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | - |
| OS-EXT-SRV-ATTR:hostname | test |
| OS-EXT-SRV-ATTR:hypervisor_hostname | - |
| OS-EXT-SRV-ATTR:instance_name | |
| OS-EXT-SRV-ATTR:kernel_id | |
| OS-EXT-SRV-ATTR:launch_index | 0 |
| OS-EXT-SRV-ATTR:ramdisk_id | |
| OS-EXT-SRV-ATTR:reservation_id | r-o71a4xpx |
| OS-EXT-SRV-ATTR:root_device_name | - |
| OS-EXT-SRV-ATTR:user_data | - |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | 79ZaWp3SUyps |
| config_drive | |
| created | 2017-03-20T03:26:56Z |
| description | - |
| flavor | m1.extra_tiny (db60905a-05b6-404d-959a-f8c2a047ddfd) |
| hostId | |
| host_status | |
| id | b956fb98-2295-45da-937c-96275924371e |
| image | cirros (76898c08-10b7-4e49-812c-fa518cc60c51) |
| key_name | - |
| locked | False |
| metadata | {} |
| name | test |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tags | [] |
| tenant_id | 4faa7e528627446781136e9db40ed168 |
| updated | 2017-03-20T03:26:57Z |
| user_id | 90bf61329d924ca485a68bc18fd4db4a |
+--------------------------------------+------------------------------------------------------+
出来ました!
終わりに
Kolla を使ったOpenStack デプロイを思いついてから動かすまで、10時間ぐらいかかったでしょうか。Ansible と OpenStack に慣れた方なら、もっと早く動かせると思います。さて今回のお題だった、貧弱な Macbook Air の環境で無事に Kolla でデプロイした OpenStack を動かすことが出来ました。DevStack でもリソース的に結構苦しいと思うんですが、今回のように最低限に絞れば動くんでしょうか?
ともあれ Kolla にはこれから期待です。
ハマりどころは globals.yml でコンポーネントの有効無効を制御するところでしょうか。QuickStart でもAll variables for the environment can be specified in the files: /etc/kolla/globals.yml and /etc/kolla/passwords.yml. ぐらいの触れ方なので、私のように分からずに突き進んでしまうかもしれません。でも、分かってしまえば設定は簡単です。