microstackはOpenStackをsnapパッケージを使って、ラップトップやx86サーバーなどに展開することができるツールです。公式サイトが用意されています。公式サイトによると、All-in-One構成からマルチノード構成のOpenStack環境をセットアップできるようです。OpenStackもとうとう、ここまできてしまいました。
ちなみに一番利用されているのはUbuntuのようですが、他のディストリビューションでも利用できるようです(→snapcraftのページ)。
今回はAll-in-One構成のセットアップ方法について取り上げますが、マルチノードもいつか試してみようと思います。
試してみました。
まずは触ってみる
インストールに最低限必要な環境について
わたしが使った限り、最低限必要なハードウェアは次のとおりです。
- 8Core以上のCPU(16Core以上が望ましい)
- 16GB以上のメモリー(32GBメモリー以上が望ましい)
- できるだけ速い、容量の大きいディスク(SSDが望ましい)
- 1つ以上のNIC(Externalをきちんと設定する場合は2つ以上のNICで別VLANを用意)
- Linux(今回はUbuntu Server 18.04.3を標準インストールしたものを利用)
インストール方法について
次を実行することで、用意されているmicrostackのバージョンを確認できます。 この記事の更新日現在(2022年10月12日)、インストールできるのはOpenStack UssuriとRockyバージョンです。
ubuntu@bay15-gen9:~$ snap info microstack name: microstack summary: OpenStack on your laptop publisher: Canonical✓ store-url: https://snapcraft.io/microstack license: Apache-2.0 description: | MicroStack gives you an easy way to develop and test OpenStack workloads on your laptop or in a virtual machine. snap-id: qMvFl14Ge7zDRxjx4AGmBgsa4pNL9cYW channels: latest/stable: – latest/candidate: – latest/beta: ussuri 2022-01-26 (245) 438MB - latest/edge: ussuri 2022-01-21 (245) 438MB - rocky/stable: – rocky/candidate: – rocky/beta: – rocky/edge: rocky 2019-12-06 (195) 398MB classic
今後Stableリリースが提供される可能性はありますが、現状は beta
が一番安定版に近いバージョンです。今回はこれをインストールしてみます。
[2020/8/6追記]candidateがなくなっていたので修正しました。
[2022/10/12追記]現在のバージョンは--classic
オプションを使うとエラーになるので修正しました。
sudo snap install microstack --devmode --beta
セットアップ方法について
microstackはインストール後、イメージ、フレーバー、セキュリティグループなどのセットアップが必要です。これを行うためのコマンドとして microstack.init
が用意されています。コマンドを実行したあと指示に従って設定してください。とりあえず、すべてデフォルト設定で動かすことも可能です。
sudo microstack init --auto --control
次のコマンドを実行すると、testの言う名前のインスタンスが作られるはずです。SSHキーペアはコマンド実行時に、microstackと言う名前の鍵が作られてOpenStack keystoneに登録されます。
microstack launch cirros -n test ... Creating local "microstack" ssh key at /home/ubuntu/snap/microstack/common/.ssh/id_microstack Launching server ... Allocating floating ip ... Server test launched! (status is BUILD) Access it with `ssh -i /home/ubuntu/snap/microstack/common/.ssh/id_microstack cirros@10.20.20.101` You can also visit the OpenStack dashboard at http://10.20.20.1:80
【同日追記】
セットアップ後は microstack.openstack
コマンドを使ってAPIとやり取りしますが、次のコマンドを実行すると microstack.
を省略できます。
sudo snap alias microstack.openstack openstack
インスタンスを起動
CirrOSを起動してみましょう。次のコマンドを実行して、インスタンス起動に必要な情報を入手します。
microstack.openstack flavor list microstack.openstack network list microstack.openstack image list microstack.openstack keypair list
その上で、次のように実行してください。
microstack.openstack server create --flavor m1.tiny --nic net-id=test --image cirros --key-name microstack microstack-cirros
Flating IPアドレスの割当とアクセス
さて、このままだとインスタンスにアクセスできませんので、インスタンスにFlating IPアドレスを割り当てましょう。次のコマンドを実行してFlating IPアドレスの割り当てに必要な情報を入手します。
microstack.openstack network list (ネットワークを確認) microstack.openstack floating ip create external (グローバル側ネットワークはexternalなのでこのネットワークからFloating IPを発行) microstack.openstack floating ip list (発行したIPアドレスを確認) microstack.openstack server list (インスタンスを確認) microstack.openstack server add floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS (インスタンスにFlating IPアドレスを割り当て)
INSTANCE_NAME_OR_IDとFLOATING_IP_ADDRESSは実際のものに置き換えてください。INSTANCE_NAME_OR_IDはインスタンス名か長いインスタンスIDのいずれかを指定すればOKです。
あとは次のように、SSHプロトコルによるリモートアクセスをするだけです。
ssh -i ~/.ssh/id_microstack cirros@FLOATING_IP_ADDRESS
Ubuntuインスタンスを動かしてみる
Ubuntuイメージのダウンロード
最新のイメージをwgetで取得しましょう。
wget https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
Ubuntuイメージを追加
ダウンロードしたイメージを登録します。
microstack.openstack image create --disk-format qcow2 --container-format bare \ --public --file ./ubuntu-18.04-server-cloudimg-amd64.img ubuntu
Ubuntuイメージ実行用のフレーバーの定義
Ubuntuイメージを起動するためのフレーバーを定義してみます。実は microstack.init
の実行でいくつかフレーバーが作られており、これを使うこともできますが、一応コマンドの練習ということで。UbuntuをOpenStackで使う場合は、1CPU、1GBのメモリー、4GBのストレージが最低要件です。とりあえずこの構成で作ってみます。
microstack.openstack flavor create --ram 1024 --disk 4 --vcpus 1 --public m1.core
Ubuntuインスタンスにアクセス
あとはCirrOSと同様なので、コマンドの列挙だけにとどめます。
microstack.openstack server create --flavor m1.core --nic net-id=test --image ubuntu --key-name microstack microstack-ubuntu (インスタンスを起動) microstack.openstack floating ip create external (Flating IPアドレスを発行) microstack.openstack server list (インスタンス一覧を確認) microstack.openstack floating ip list (Flating IPアドレスを確認) microstack.openstack server add floating ip INSTANCE_NAME_OR_ID FLOATING_IP_ADDRESS (インスタンスにFlating IPアドレスを割り当て) ssh -i ~/.ssh/id_microstack ubuntu@FLOATING_IP_ADDRESS (UbuntuインスタンスにSSHアクセス)
以上、microstackを使えば簡単にOpenStackをセットアップして使うことができます。プライベートクラウドどころか、パーソナルクラウドがすぐ手に入れられます。大体1時間程度で触り始められます。すごいですね!
動かしたマシンのスペック
手元では、こんな環境で動かしてみました。
- 32ocre 64GBメモリー SAS SSD 200GB
- 16Core 64GBメモリー SAS HDD 600GB