Your SlideShare is downloading. ×
0
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
BOSHでお手軽CFデプロイon AWS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

BOSHでお手軽CFデプロイon AWS

7,757

Published on

構成管理ツールのBOSHを使用して、AWSにCloud Foundry環境を簡単に構築する方法を紹介します。

構成管理ツールのBOSHを使用して、AWSにCloud Foundry環境を簡単に構築する方法を紹介します。

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,757
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
28
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. BOSH でお手軽 CF デプロイon AWS Iwasaki Yudai @i_yudai NTT Laboratory Software Innovation Center 2013-08-23
  • 2. AWS環境でのCFインスタンス構築 – MicroBOSH – Cloud Foundry – ビルトインサービス 今日の内容 2
  • 3. BOSHとCloud Foudryのインストール 3 Based on: Dr Nic’s “Build Your Own Heroku With Open Source Cloud Foundry” https://github.com/cloudfoundry-community/bosh-cloudfoundry/blob/master/tutorials/
  • 4. AWSアカウント AWS使用料 Ruby1.9.3 Git 必要なもの 4
  • 5. $500/月 程度 (ap-northeast-1 Tokyo) – 生成されるVM • m1.small * 4 (Cloud Foundry) • m1.small * 1 (Inception Server) • m1.medium * 1 (MicroBOSH) – その他 • Elastic IP * 2 • Volumes が数十GB AWS使用料について
  • 6. Inceptionサーバとは – 諸般の事情によりus-east-1以外のリージョンで 必要となる踏み台サーバ – inception-serverを使用 • https://github.com/cloudfoundry-community/inception-server Inception Serverのセットアップ(1) # Gem のインストール $ gem install inception-server
  • 7. Inception Serverのセットアップ(2) # 新しいInceptionサーバーを起動 $ inception-server deploy 1. AWS 2. OpenStack Choose your infrastructure: 1 Using provider AWS Access key: *********************** Secret key: ******************************** 1. *US East (Northern Virginia) Region (us-east-1) 2. US West (Oregon) Region (us-west-2) 3. US West (Northern California) Region (us-west-1) 4. EU (Ireland) Region (eu-west-1) 5. Asia Pacific (Singapore) Region (ap-southeast-1) 6. Asia Pacific (Sydney) Region (ap-southeast-2) 7. Asia Pacific (Tokyo) Region (ap-northeast-1) 8. South America (Sao Paulo) Region (sa-east-1) Choose AWS region: 7 Confirming: Using AWS/ap-northeast-1 .... 注)使用しない Elastic IPが 払い出されているので削除する
  • 8. Inception Serverのセットアップ(3) # InceptionサーバーにSSHで接続 $ inception-server ssh # SSH鍵を生成しておく $ ssh-keygen -N '' -f ~/.ssh/id_rsa # 少しだけ細かい環境の修正(Gemをインストールできるようにす る) $ sudo usermod -a -G rvm ubuntu $ sudo chmod g+w /usr/local/rvm –R # グループ変更を反映するために再接続する $ exit $ inception-server ssh 以降の操作はすべてInceptionサーバ上で行います
  • 9. bosh-bootstrap を使用する – https://github.com/cloudfoundry-community/bosh-cloudfoundry – MicroBOSH を1コマンドでデプロイできる – Inceptionサーバ上で使用する場合はアクセ スキーの再入力は不要 MicroBOSHのセットアップ(1) # Gem のインストール $ gem install bosh-bootstrap
  • 10. MicroBOSHのセットアップ(2) $ bosh-bootstrap deploy Auto-detected infrastructure API credentials at ~/.fog (override with $FOG) 1. AWS (default) 2. Alternate credentials Choose an auto-detected infrastructure: 1 Using provider AWS 1. *US East (Northern Virginia) Region (us-east-1) 2. US West (Oregon) Region (us-west-2) 3. US West (Northern California) Region (us-west-1) 4. EU (Ireland) Region (eu-west-1) 5. Asia Pacific (Singapore) Region (ap-southeast-1) 6. Asia Pacific (Sydney) Region (ap-southeast-2) 7. Asia Pacific (Tokyo) Region (ap-northeast-1) 8. South America (Sao Paulo) Region (sa-east-1) Choose AWS region: 7 Confirming: Using AWS/ap-northeast-1 ...
  • 11. MicroBOSHのセットアップ(3) # bosh-bootstrap deploy の実行結果の続き # 最後から3行目に表示される IP アドレスが MicroBOSH のIPアドレスとなる ... WARNING! Your target has been changed to `https://203.0.113.1:25555'! Deployment set to '/home/ubuntu/.microbosh/deployments/firstbosh/micro_bosh.yml‘ Deployed `firstbosh/micro_bosh.yml' to `https://firstbosh:25555', took 00:19:34 to complete # MicroBOSH をターゲットする $ bosh target https://203.0.113.1:25555 Target set to `firstbosh‘ Your username: admin Enter password: admin Logged in as `admin'
  • 12.  bosh-cloudfoundry を使用する – https://github.com/cloudfoundry-community/bosh-cloudfoundry – BOSH CLIのプラグイン – Deployment Manifestを自動生成してくれる  事前準備 – Elastic IPを1つ払いだしておく • 例:203.0.113.2 – Security Groupを作っておく • 名前: cf • 開放ポート: – TCP (Source 0.0.0.0/0): 22, 80, 443 – TCP (Source 同一SG): 1-65535 –UDP(Source 同一SG): 1-65535 Cloud Foundryのセットアップ(1)
  • 13. Cloud Foundryのセットアップ(2) # 最新の 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
  • 14. Cloud Foundryのセットアップ(3) $ bosh create cf --ip 203.0.113.2 --security-group cf Fetching bosh information OK CPI: aws DNS mapping: 203.0.113.2.xip.io --> ["203.0.113.2"] Deployment name: cf-1377155859 Deployment size: medium Persistent disk: 4096 Security group: cf Validating deployment size OK Resolve DNS OK Resolve DNS 'api.203.0.113.2.xip.io' to IP '203.0.113.2' OK `api.203.0.113.2.xip.io' maps to 203.0.113.2 Resolve DNS OK Resolve DNS 'demoapp.203.0.113.2.xip.io' to IP '203.0.113.2' OK `demoapp.203.0.113.2.xip.io' maps to 203.0.113.2 Security group cf exists with ports 22, 80, 443, 4222 (type 'yes' to continue): yes Creating Cloud Foundry (type 'yes' to continue): yes Checking/creating /home/ubuntu/deployments/cf for deployment files OK Creating deployment file /home/ubuntu/deployments/cf/cf-1377155859.yml OK Deployment set to `/home/ubuntu/deployments/cf/cf-1377155859.yml' Getting deployment properties from director... Unable to get properties list from director, trying without it... Compiling deployment manifest... Cannot get current deployment information from director, possibly a new deployment Please review all changes carefully Deploying `cf-1377155859.yml' to `firstbosh' (type 'yes' to continue): yes ...
  • 15. Cloud Foundryのセットアップ(4) # デプロイされた VM の確認 $ bosh vms ... +-----------+---------+---------------+-----------------------------+ | Job/index | State | Resource Pool | IPs | +-----------+---------+---------------+-----------------------------+ | api/0 | running | small | 10.122.54.35, 203.0.113.2 | | core/0 | running | small | 10.121.11.212 | | data/0 | running | small | 10.121.14.213 | | dea/0 | running | small | 10.122.29.169 | +-----------+---------+---------------+-----------------------------+ VMs total: 4 # CFの設定値を確認 # common_password が admin ユーザのパスワードになる $ bosh show cf attributes Fetching bosh information OK Immutable attributes: common_password: e80011989a71 deployment_size: medium name: cf-1377155859 Mutable (changable) attributes: ip_addresses: ["203.0.113.2"] persistent_disk: 4096 security_group: cf dns: 203.0.113.2.xip.io
  • 16. Cloud Foundryのセットアップ(5) # cf コマンドのインストール # 今回インストールされるCFは 5.x に対応していないので 4.2.8 $ gem install cf –v 4.2.8 # デフォルトのターゲットは xip.io で設定されている # 例)api.203.0.113.2.xip.io $ cf target api.203.0.113.2.xip.io # admin ユーザでログイン # パスワードは前頁参照 $ cf login admin target: http://api.203.0.113.2.xip.io Password> e80011989a71 Authenticating... OK There are no spaces. You may want to create one with create-space.... OK
  • 17. bosh create cf のオプション – --size • VMの台数(medium, large, xlarge) • デフォルトはmedium – --domain • ドメイン名 • デフォルトは <IP Address>.xip.io 個別の設定 – deploymentsディレクトリ内のマニフェ ストファイルを手動で編集して bosh deploy Cloud Foundryのカスタマイズ
  • 18. ビルトインサービスの追加
  • 19. ビルトインサービスは別途インストールす る必要がある – https://github.com/cloudfoundry/cf-services-contrib-release – コミュニティ版 • cf-services-releaseはPivotalがメンテナンスしている がMySQLしかない m1.small * 8 が追加で必要 ビルトインサービスを追加する 19
  • 20. ビルトインサービスのデプロイ # ソースコードを Clone $ git clone https://github.com/cloudfoundry/cf-services-contrib- release.git # 最新版で構成するために、dev リリースを生成する $ cd cf-services-contrib-release $ git submodule update --init –recursive $ bosh create release # BOSH にリリースをアップロード $ bosh upload release dev_releases/cf-services-contrib-1.1-dev.yml # デプロイメントマニフェストを記述 # 変更点は gist 参照のこと:https://gist.github.com/yudai/6308528 $ vi examples/dns-all.yml # デプロイの実行 $ bosh deployment example/dns-all.yml $ bosh deploy
  • 21. ビルトインサービスの使用 # AUTH TOKEN の登録 # Tokenの値はデプロイメントマニフェストに記述されている # postgres 以外のサービスについても同様に実行する $ cf create-service-auth-token Label> postgresql Token> POSTGRESQL_SERVICE_TOKEN Creating service auth token... OK # 使用可能なサービスの一覧を表示して確認 $ cf services --marketplace Getting services... OK service version provider plans description blob 0.51 core default Blob store elasticsearch 0.20 core free Elasticsearch search service memcached 1.4 core default Memcached in-memory cache mongodb 2.2 core default MongoDB NoSQL database postgresql 9.2 core default PostgreSQL database rabbitmq 3.0 core default RabbitMQ message queue redis 2.6 core default Redis key-value store

×