背景

我が家では OpenStack を利用した プライベートクラウド を運用しています

OpenStack を構成する
物理サーバの OSデプロイには MAAS を利用しています

MAASの活用 については、下記をご参照ください

我が家の OpenStack について

我が家の OpenStack 環境は kolla-ansible を使ってデプロイしています

JuJu や OpenStack-Ansible でのデプロイも試しましたが
kolla-ansible が個人的に運用しやすいと感じたため、
デプロイしたときの手順 を書き残しました

過去のプライベートクラウド

今まで、これらを利用してきました

  • OpenNebula
  • MAAS + Juju + OpenStack
  • MAAS + Kolla Ansible + OpenStack <= イマココ

利用していく中で、時間的にも、金銭的にも、
アップデートして、使い続けるのは無理だと思ってました

運用中にトラブルが起きた場合、
情報が少ない中で、自力で解決しなきゃいけません
なんとか解決できたとしても、結構な時間を要します

トラブルが解消せず、構築しなおす場合、
構築手順や、設定ファイルをきちんと管理できてないと
なかなか大変な作業になります

商用利用だと、再構築という手段は取れないですが、
個人使用だと、結局、構築しなおすのが一番早いというわけです

これが maas-deployer を作る モチベ となりました

OpenNebula

構築したあと、引っ越ししたタイミングで使わなくなりました

構築手順は、コマンドのメモという感じで
コマンド, パラメータ, 設定ファイル を管理できていませんでした

MAAS + Juju + OpenStack

Juju は 便利でした

Juju には Charm という仕組みがあり、
OpenStack の各コンポーネントがバンドルされていて、
意外と簡単にOpenStack環境が構築できました

しかし Juju の開発はあまり盛んではなく、
OpenStack のリリースに追いついていませんでした

また、個人的には
Juju はブラックボックスすぎるというか、便利な反面

  • なんで動いてるのかよくわからん
  • ドキュメントが少ない

といった使いにくさも感じていました

MAAS + Kolla Ansible + OpenStack

現在、この組み合わせに落ち着いています

OpenStack のデプロイ方法としては、

  • OpenStack-Ansible
  • Kolla Ansible

の2拓になりますが

Kolla Ansible

OpenStack の各コンポーネントは Dockerコンテナ でデプロイされます

物理NICが2つ必要 external_link とあり、採用を見送っていましたが、
VLAN サブインターフェースを複数作成することで、単一NICでも利用できました

管理者は 各コンポーネントの設定ファイルだけ管理すればいい ので、
楽に運用できて、使いやすいと感じられるものでした

OpenStack-Ansible

OpenStack の各コンポーネントは LXCコンテナでデプロイされます

ネットの情報を色々漁りましたが bridge の設定例などが少なく、
OVSの設定が上手くいってないためか、安定しませんでした

しかし、各コンポーネントを Ansible で管理できるので、
色々カスタマイズする場合、こちらの方が自由度が高いと思います