DevStackで始める
Cloud FoundryとBOSH
Iwasaki Yudai @i_yudai
NTT Laboratory
Software Innovation Center
2013-08-23
AWSはちょっと使いづらい
–お金がかかる
–会社の事情
–サーバが余ってる
これまでのあらすじ
2
そんなあなたにOpenStack
OpenStack環境を1台で構成するツール
– 1コマンドで構成可能
–実験環境用
– http://devstack.org/
DevStackとは
Ubuntu 12.04 64bit
16GB以上のメモリ
100GB程度のHDD
IPアドレス3つ
必要なもの
ソースコードの入手
DevStackのインストール(1)
$ sudo apt-get install git $ git clone https://github.com/openstack-dev/devstack.git $ cd devstack # Grizlly を使う
$ git checkout -t origin/stable/grizzly
設定ファイルを記述
DevStackのインストール(2)
$ cat <<_EOF_ > localrc # パスワードはすべて “openstack”
DATABASE_PASSWORD=openstack RABBIT_PASSWORD=openstack SERVICE_TOKEN=openstack SERVICE_PASSWORD=openstack ADMIN_PASSWORD=openstack # 巨大なエフェメラルディスクを許可
VOLUME_BACKING_FILE_SIZE=70000M # API呼び出しレートを無制限に
API_RATE_LIMIT=False # インターネットにつながっているNIC
PUBLIC_INTERFACE=eth0 # MicroBOSHとCFのルータに払い出すIPアドレス(最低2個) # この例では 192.168.10.128 - 192.168.10.255
FLOATING_RANGE=192.168.10.128/25 # サーバ自体のIPアドレス
HOST_IP=192.168.10.2 _EOF_
インストールの実行
DevStackのインストール(3)
$ ./stack.sh
CF用にいくつか設定を行う
DevStackの設定
# ログイン情報の設定
$ export OS_USERNAME=admin $ export OS_PASSWORD=openstack $ export OS_TENANT_NAME=demo $ export OS_AUTH_URL=http://192.168.10.2:5000/v2.0 # URL部分はサーバのIPアドレス
# Flavorを1度削除して再設定する
$ nova flavor-list | grep m1 | awk '{ print $4 }' | xargs -n 1 nova flavor-delete $ nova flavor-create m1.small 2 2048 20 1 --ephemeral 20 --rxtx-factor 1 --is-public true $ nova flavor-create m1.medium 3 4096 20 2 --ephemeral 20 --rxtx-factor 1 --is-public true $ nova flavor-create m1.microbosh 20 4096 20 2 --ephemeral 20 --rxtx-factor 1 --is-public true # CF用のセキュリティグループを作成
$ nova secgroup-create cf "Cloud Foundry“ $ for port in 22 80 443 4222; do ¥ nova secgroup-add-rule cf tcp ${port} ${port} 0.0.0.0/0 ¥ done $ nova secgroup-add-group-rule cf cf tcp 1 65535 $ nova secgroup-add-group-rule cf cf udp 1 65535 # CFのルータ用にFloating IPを払い出す # 表示されたIPアドレスをあとで実行する bosh cf create の --ip に渡す
$ nova floating-ip-create # RAMを無制限に
$ nova quota-update --ram 999999 $(keystone tenant-list | awk '/¥ demo¥ / {print $2}')
bosh-bootstrapを使用
MicroBOSHのデプロイ
$ gem install bosh-bootstrap $ bosh-bootstrap deploy 1. AWS 2. OpenStack Choose your infrastructure: 2 Using provider OpenStack Username: demo Password: openstack Tenant: demo Authorization Token URL: http://192.168.10.2:5000/v2.0 ...
最後の方に表示される IP アドレスに bosh target しておく
bosh-cloudfoundry を使用
Cloud Foundryのデプロイ
# 最新の BOSH CLI をインストールする
$ gem install bosh_cli -v "~> 1.5.0.pre" ¥ --source https://s3.amazonaws.com/bosh-jenkins-gems/ # bosh-cloudfoundryのインストール
$ gem install bosh-cloudfoundry # デプロイの準備(cr-releaseのダウンロードなど)
$ bosh prepare cf # デプロイの実行 # nova floating-ip-create で表示されたIPを指定する
$ bosh create cf --ip <IP> --security-group cf