14
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenStack の All-in-One 環境が爆速で作れてしまいます.. microstack があればね!

Last updated at Posted at 2019-05-30

#概要
OpenStack の開発やテスト環境を構築する際には devstack が一般的に用いられますが、devstack は様々な構成に対応している反面、実際に稼働させるまでには次のように手間や時間が掛かっておりました。

  • 使いたい OpenStack バージョンや基本構成を local.conf に設定する
  • stack.sh を実行する (デプロイ完了までに、10 - 30分程度を要します)
  • openrc を読み込む
  • instance を起動する

上記の作業が、microstack を使うことで劇的に早くなります。
本ドキュメントでは、microstack を使ってインスタンス作成等を試した結果について、まとめます。

#microstack で何ができるの?
microstack を使うと、コマンドを数発打ち込むだけで安定稼働版の OpenStack All-in-One 環境が構築できます。また、microstack は snap 形式のパッケージとなっているため、OSで稼働している他のソフトウェアと競合することがありません。既存の環境を一切壊さずにアンインストールをすることも出来ます。

2020年4月現在では公式の Quickstart ドキュメント等が整備されております。基本的には、 Quickstart の内容に従ってコマンドを実行するだけで OpenStack 環境が構築できます。

ただし、microstack 自体は Laptop マシンにインストールされた Ubuntu で使うことを前提としているため、例えば Mac + vagrant のような環境で使う場合は設定を一部変更する必要がありますのでご注意ください。

#microstack 使い方
次に、microstack の使い方について解説します。

microstack のインストール

次のコマンドを実行すると、microstack がインストールされます。OpenStack を構成するために
必要な依存パッケージも全て microstack パッケージの中に含まれているため、前準備は一切不要です。

sudo snap install microstack --classic --beta

コマンドエイリアスの作成 (Optional)

microstack では、OpenStack の CLI は、デフォルトでは プレフィックスとして 'microstack.' が付くため、'microstack.openstack' と入力する必要があります。
コマンドを余分に打ち込むのが面倒な場合は、次のコマンドにて短縮させることも出来ます。

sudo snap alias microstack.openstack openstack

virt_type 設定変更(Mac や VM にインストールする場合)

Mac + vagrant や Public Cloud など、いわゆる VM 環境に microstack を
インストールした場合は、次のように nova-compute の設定ファイル (virt_type, cpu_mode)
を変更した上で、service を再起動します。

sudo vi /var/snap/microstack/common/etc/nova/nova.conf.d/hypervisor.conf
hypervisor.conf
[libvirt]
#virt_type = kvm
virt_type = qemu
#cpu_mode = host-passthrough
sudo systemctl restart snap.microstack.nova-compute.service

OpenStack の初期設定

次のコマンドを実行することで、OpenStack 各コンポーネントの初期化やサービス起動等が自動的に実施されます。

sudo microstack.init --auto

なお、上記コマンドでは neutron network の初期設定や glance image の追加等も自動的に実施されるので、コマンド実行後はすぐに instance を作成できる状態になります。

インスタンスの起動 (microstack.launch コマンドを使用)

microstack.init コマンドで自動作成された network や ssh credential 等を使って instance を起動したい場合は、次のように "microstack.launch" コマンドを実行すると (openstack cli のように沢山のオプションを付けなくても)簡単に instance を作成できます。

# "test" がインスタンス名となります
microstack.launch cirros --name test

上記コマンドを実行すると、instance 作成後に ssh login を実行するためのコマンドが表示されます。そのままコピー・ペーストするだけで、当該instance にログインできるのでとても便利です。

launching server ...
Allocating floating ip ...
Server test launched! (status is BUILD)

Access it with `ssh -i $HOME/.ssh/id_microstack cirros@10.20.20.67`
You can also visit the OpenStack dashboard at http://10.20.20.1:80

インスタンスの起動 (openstack コマンドを使用)

インスタンスの起動方法は、通常の OpenStack CLI と同一手順となります。

microstack.openstack server create --flavor m1.small --nic net-id=test --image cirros my-microstack-server

# SSHログイン方法
ssh -i ~/.ssh/id_microstack cirros@(floating-ip アドレス)

dashboard へのアクセス方法

vagrant + VirtualBox で private_network を作成している場合は、手元の hypervisor host から web browser を用いて直接 dashboard にアクセスできます。

http://{private_network ip of the VirtualBox VM}
  -> ssh port forward を用いて接続する場合は、次のように port-forward します
     ssh -L10080:10.20.20.1:80 target-host
username: admin
password: keystone

microstack の停止・再開方法

microstack の利用を一時的に停止したい場合は、次のコマンドを実行します。

sudo snap disable microstack

再開する場合は、次のコマンドを実行します。

sudo snap enable microstack

microstack のアンインストール方法

microstack をアンインストールしたい場合は、次のコマンドを実行します。

sudo snap remove microstack

#まとめ
本ドキュメントでは、OpenStack の All-in-One 環境を爆速でインストール する方法として、
microstack を紹介させていただきました。
microstack を使えば、少々 OpenStack の API 動作を調べたいけれど devstack を
デプロイするのは面倒だな..というような場面や、CI/CD で OpenStack API を使いたい場面にとても便利だと思うので、ご興味のある人は、一度試してみると良いと思います。

14
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?