自前cf環境を整えよう 2013年11月版
DESCRIPTION
第15回 Cloud Foundry輪読会で発表した資料です。 複雑になってしまったCloud Foundry V2のAll in Oneをセットアップする3つの方法について説明します。TRANSCRIPT
自前CF環境を整えよう 2013年11月版UDCP Kazuto Kusama @jacopen
#cfcrjp
自己紹介
•草間 一人(くさま かずと)
• UDCPメンバー
!• Twitter: @jacopen • Facebook: jacopen
UDCP
• Blog (U1TB) !!!!!
• 自転車イベント参加 !!
• おいしいものを食べる
自己紹介
•提督業はお休み中 • E-4とかE-5とか、つらぽよ
今日のお題
‣ 自前CF環境を整えよう!
‣ いわゆるAll in One環境を組んでみようという話
‣ CF入門したい人向け
‣ v1は分かるんだけどv2に追いつけてない人向け
All in One環境とは
‣ たくさんあるコンポーネントを1台のVMに集約した環境
‣ Cloud Controller ‣ DEA ‣ UAA ‣ Health Manager ‣ NATS ‣ Service Gateway ‣ Service Node ‣ Gorouter, etc…
簡単だったv1 All in One
‣ Cloud Foundry v1では、chef-soloをベースにした「dev_setup」という仕組みが用意されており、それを実行するだけでCF環境の構築ができた。
$ bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)
・@IT オリジナルのCloud Foundryサイトを構築する
http://www.atmarkit.co.jp/ait/articles/1206/22/news141.html ・Software Design 2013年3月号
など、資料多数
複雑になったv2セットアップ
‣ CFのセットアップがBOSH前提になってしまった
‣ 詳しくは@i_yudaiのセッションで
!
‣ BOSHの要求リソースが多い
‣ Micro BOSHでも、んGBのメモリが必要
‣ CPIが必要となり、対応したIaaS上でしか利用できない
‣ AWS, OpenStack, CloudStack
_人人人人人人人_ > CloudStack < ‾Y^Y^Y^Y^Y^Y‾
つまり
‣ Cloud Foundry v2を構築したい場合、AWS、OpenStack、CloudStackなどのIaaSと、大量のメモリが必要。
でもまだ方法はある
‣ 実はBOSHに限らず、Cloud Foundry v2を構築する方法はあります
今回の主題
‣ Cloud Foundry v2 All in Oneを構築する3つの方法を試します
‣ それぞれの情報をまとめます
‣ 必要リソース量
‣ 情報収集やセットアップにかかる時間
‣ セットアップの難易度
All in Oneを構築する3つの方法
✓ CF Nise Installer ✓ CF Vagrant Installer ✓ bosh-lite
条件
‣ 自前CF環境を”簡単に”整えたい
‣ Vagrant&VirtualBox利用
‣ Vagrant&VirtualBoxはセットアップ済という前提
‣ CFを叩くためのツールはセットアップ済前提
‣ cfコマンド、もしくはgcfコマンドセットアップ済
‣ 実験環境はMacbook Pro(Mid 2012 16GBmem)
‣ メモリ足りなくて実験出来なかったという事態をふせぐため。
‣ セットアップは各リポジトリにあるREADMEを読みながらやります
① CF Nise Installerを使ってAll in Oneセットアップ
https://github.com/yudai/cf_nise_installer
① CF Nise Installerを使ってAll in Oneセットアップ
手順
1.Ruby 1.9.3-p448を手元にセットアップ
‣ rbenvを使うことをお勧め
2.コマンドを実行
‣ bash < <(curl -s -k -B https://raw.github.com/yudai/cf_nise_installer/${INSTALLER_BRANCH:-master}/vagrant/bootstrap.sh)
3.待つ
‣ 1時間10分くらい
_人人人人人_ > できた < ‾Y^Y^Y^Y‾
先にcreate-orgしないと死ぬトラップに注意
_人人人人人_ > 動いた < ‾Y^Y^Y^Y‾
② CF Vagrant Installerを使ってAll in Oneセットアップ
https://github.com/Altoros/cf-vagrant-installer
② CF Vagrant Installerを使ってAll in Oneセットアップ
手順 1.git clone https://github.com/Altoros/cf-vagrant-installer.git ‣ cd cf-vagrant-installer ‣ rake host:bootstrap ‣ vagrant up
動い・・・た??
$ vagrant ssh !vagrant@cf:~$ cd /vagrant vagrant@cf:/vagrant$ ./status.sh cf-‐dir_server start/running, process 2968 cf-‐warden start/running, process 2933 cf-‐health_manager start/running, process 2935 cf-‐nats-‐server start/running, process 2936 cf-‐router start/running, process 2939 cf-‐uaa start/running, process 2947 cf-‐file_server start/running, process 2970 cf-‐cloud_controller stop/waiting # CCが動いていない・・・
cf-‐dea start/running, process 2958 vagrant@cf:/vagrant$ ./start.sh initctl: Job is already running: cf vagrant@cf:/vagrant$ ./stop.sh # 全部止める
cf stop/waiting vagrant@cf:/vagrant$ ./start.sh # 全部起動
cf start/running vagrant@cf:/vagrant$ ./status.sh cf-‐dir_server start/running, process 5290 cf-‐warden start/running, process 5276 cf-‐health_manager start/running, process 5278 cf-‐nats-‐server start/running, process 5280 cf-‐router start/running, process 5282 cf-‐uaa start/running, process 5284 cf-‐file_server start/running, process 5299 cf-‐cloud_controller stop/waiting # やっぱりCCが動いていない・・・
cf-‐dea start/running, process 5288
原因を調査する時間が取れないのでまた今度!
③ bosh-liteを使ってAll in Oneのセットアップ
https://github.com/cloudfoundry/bosh-lite
③ bosh-liteを使ってAll in Oneのセットアップ
手順 1. Ruby 1.9.3-p484 (これ試した時点での最新) のセットアップ
2. Golangのセットアップ http://golang.jp/install#osx
3. mkdir ~/workspace/ ; cd ~/workspace/ 4. git clone [email protected]:cloudfoundry/cf-release.git 5. bosh-liteのセットアップ
git clone [email protected]:cloudfoundry/bosh-lite.git cd bosh-lite bundle vagrant up bosh target
bosh target 192.168.50.4 Target set to `Bosh Lite Director' Your username: admin Enter password: admin Logged in as `admin'
6. bosh upload stemcell http://bosh-jenkins-gems-warden.s3.amazonaws.com/stemcells/latest-bosh-stemcell-warden.tgz
7. spiffのセットアップ
brew install bzr export GOPATH=~/go export PATH=~/go/bin:$PATH ※ この後bazaarが動かなかったので、
sudo ln -s /usr/local/Cellar/bazaar/2.6.0/lib/python2.7/site-packages/bzrlib /Library/Python/2.7/site-packages/bzrlib を実行
go get -v github.com/vito/spiff !
8. manifestの作成
./scripts/make_manifest_spiff !
9. mysql ,postgresのインストール
それぞれの環境でやっておいてください><
9. Create Release 1. cd ~/workspace/cf-release 2. git submodule update —init —recursive 3. bosh create release 途中で名前を聞かれるのでcfと入力
4. bosh upload release 5. bosh deploy
_人人人人人_ > 動いた < ‾Y^Y^Y^Y‾
比較
cf-nise-installer bosh-lite cf-vagrant-installer
構築時間 1h 10min 2h 20min 50min
調査時間 10min 6h 10min
合計所要時間 1h 20min 8h 20min 60min(参考)必要メモリ量
(Vagrantfile指定分) 4GB 6GB 2GB
Servicesの有無 △(cf_nise_installer_services) ○ ×
まとめ
•とにかくAll in Oneが欲しいのであれば、cf-nise-installerがラクチン
• cf-vagrant-installerもcf-nise-installerも、communityのものなので本家のアップデートに追従しきれないリスクあり。
まとめ
• CFがBOSH前提なのは当分変わらないので、bosh-liteを使うのが本筋ではある
•でもbosh-liteのドキュメントは不完全。初めて挑戦する人には敷居が高い・・・ !
•コミュニティでドキュメントを充実させていく必要ありかも
http://www.slideshare.net/i_yudai/2013-1025-boshlite
質問とかあれば