DevStackで始めるCloud FoundryとBOSH

10

Click here to load reader

description

DevStackを用いて構築したOpenStack上に、Cloud Foundry環境を構築する方法を紹介します。Cloud Foundry環境の構築には構成管理ツールのBOSHを使用します。

Transcript of DevStackで始めるCloud FoundryとBOSH

Page 1: DevStackで始めるCloud FoundryとBOSH

DevStackで始める

Cloud FoundryとBOSH

Iwasaki Yudai @i_yudai

NTT Laboratory

Software Innovation Center

2013-08-23

Page 2: DevStackで始めるCloud FoundryとBOSH

AWSはちょっと使いづらい

–お金がかかる

–会社の事情

–サーバが余ってる

これまでのあらすじ

2

そんなあなたにOpenStack

Page 3: DevStackで始めるCloud FoundryとBOSH

OpenStack環境を1台で構成するツール

– 1コマンドで構成可能

–実験環境用

– http://devstack.org/

DevStackとは

Page 4: DevStackで始めるCloud FoundryとBOSH

Ubuntu 12.04 64bit

16GB以上のメモリ

100GB程度のHDD

IPアドレス3つ

必要なもの

Page 5: DevStackで始めるCloud FoundryとBOSH

ソースコードの入手

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

Page 6: DevStackで始めるCloud FoundryとBOSH

設定ファイルを記述

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_

Page 7: DevStackで始めるCloud FoundryとBOSH

インストールの実行

DevStackのインストール(3)

$ ./stack.sh

Page 8: DevStackで始めるCloud FoundryとBOSH

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}')

Page 9: DevStackで始めるCloud FoundryとBOSH

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 しておく

Page 10: DevStackで始めるCloud FoundryとBOSH

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