CloudFoundfy with Bosh on Openstackをインストールする KVM編

気付いたら一ヶ月経過していました。最近の時の流れが速すぎて困る。

さて、前回の話の続きですが、VirtualBoxだとにっちもさっちもいかなくなってきたので、KVMにOpenStackをインストールしてみることにします。興味もあったことだし。

私の環境はGentooですので、
http://en.gentoo-wiki.com/wiki/KVM
に従って、KVMを利用できるようにしておきます。

しかし、現時点ではqemu-kvm周りが大分変更になっているようで、実際には

qemu
libvirt
virt-manater
bridge-util

を自前でemergeしました。また、libvirtについては、USEフラグにqemuとvirt-networkを忘れずに追加しておきます。

一番困るのがネットワークなのですが、これもvirt-managerでさっくりと作成できます。いずれvirt-managerを使わないで、こういう設定を作成する手法をやってみたいですが、今はとりあえず動かすのが先決なので、いいことにします。

さて、ここまでが違うだけで、後は基本的にVirtualBoxでのインストールと一緒です。忘れずにkvm_intelのnestedを有効にしておきましょう。novaの設定で、qemuとしていた部分が、kvmのままで通るようになり、パフォーマンスが目に見えて違います。

Micro BOSHのインストールまでは、VirtualBoxの時と一緒です。

CloudFoundryのインストール

Micro Boshがインストールできたら、やっとこさCloudFoundryのインストールを試せます。この部分のドキュメントが無い(2013/4/19日現在)ため、はっきり言って手探り状態です。vSphereとかについてはすでに記述されているため、そっちを参考にします。
CloudFoundryのリリース元として、今回はcf-releaseを利用します。

$ git clone git://github.com/cloudfoundry/cf-release.git
$ cd cf-release
$ bosh upload release releases/appcloud-131.yml

kvmだと、ディスクの状態にもよりますが、結構時間がかかります。

完了したら、cloudfoundryのmanifestを書きます・・・が、これがまたサンプルが無い状態です。幸い、gistで https://gist.github.com/BrianMMcClain/3148465 公開されている方がいましたので、これを盛大に流用させてもらいます。

また、vSphereでのsampleもあります。
https://github.com/cloudfoundry/cf-docs/blob/master/source/docs/running/deploying-cf/vsphere/cloud-foundry-example-manifest.md
・・・が、これを見てほとんどの方は「は?」って感じになると思います。長すぎですな・・・。でもこれを書かないといけないので、なんとか流用しながらやってみます。

さて、ここで注意することですが、このサンプル、いずれもかなり巨大な(個人としては)仮想環境を想定しています。少なくとも100GBのメモリとか、普通は積んでいませんし、72VCPUとか何を言わんや、という感じです。なので、今回は確認するための環境作りなので、必要最小限で作成します。実際には、こいつらはあくまで仮想的に用意される分であって、実際に利用されるわけではありません。あればあるだけいいのは確かですけども。

ここまでできたら、後は

$ bosh deployment ~/cloud-foundry.yml
$ bosh deploy

とすることで、結構時間はかかりますが、デプロイが行われます。後はCFをインストールして色々できると思います。

まとめ

OpenStack + CloudFoundryは、公式ドキュメントでも、インストール部分だけ記述が無いため、他のvSphereとかを参考にしてやってみました。なんというか、CloudFoundryに詳しくなるというか、OpenStackに詳しくなってしまったような感があります。
悪いことではないんですが、vcap_devをやる方法に比較すると、簡単に試す、ということができなくなってしまっているなぁ、と感じます。もうちょっと手軽にやる手段が公式に提供されているといじりやすいんですがねー。

とりあえずこの記事が、同じようなことで悩んでいる人の一助になれば幸いです。