背景
我が家では OpenStack を利用した プライベートクラウド を運用しています
OpenStack を構成する
物理サーバの OSデプロイには MAAS を利用しています
MAASの活用 については、下記をご参照ください
我が家の OpenStack について
我が家の OpenStack 環境は kolla-ansible を使ってデプロイしています
JuJu や OpenStack-Ansible でのデプロイも試しましたが
kolla-ansible が個人的に運用しやすいと感じたため、
デプロイしたときの手順 を書き残しました
- /OpenStack/01_version-selection
- /OpenStack/02_setup-machines
- /OpenStack/11_prepare-deployment-host
- /OpenStack/12_external-ceph
- /OpenStack/13_manage-openstack
過去のプライベートクラウド
今まで、これらを利用してきました
- 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 で管理できるので、
色々カスタマイズする場合、こちらの方が自由度が高いと思います