Cloud Foundry multinode setup using dev_setup(Chef)
Upcoming SlideShare
Loading in...5
×
 

Cloud Foundry multinode setup using dev_setup(Chef)

on

  • 5,943 views

2011-12-15

2011-12-15
第3回Cloud Foundry輪読会
Cloud Foundry code reading Japan #3
#cfcrjp

Statistics

Views

Total Views
5,943
Views on SlideShare
2,777
Embed Views
3,166

Actions

Likes
8
Downloads
24
Comments
0

6 Embeds 3,166

http://blog.udcp.net 1781
http://d.hatena.ne.jp 1363
http://webcache.googleusercontent.com 14
http://paper.li 6
https://si0.twimg.com 1
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Cloud Foundry multinode setup using dev_setup(Chef) Cloud Foundry multinode setup using dev_setup(Chef) Presentation Transcript

  • 第3回 Cloud Foundry 輪読会 dev_setupを利用した Cloud Foundry マルチノードセットアップ Katsunori Kawaguchi @hamakn 2011-12-15
  • dev_setupを利用した マルチノード(ホスト、VM)でのVCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を 共有したいと思います。
  • アジェンダ1. dev_setupの基本的な使い方とコード読み2. 設定ファイルの書き方3. ハマりポイント4. dev_setupの改造 1. ログの集約 2. 大量のノードの管理 3. コンポーネントの追加 TODO: 端折ることなく 20分で終わらせる!!
  • 自己紹介• 川口 克則 @hamakn• NTTコム所属• Web/スマートフォンアプリの開発 主にRails• Cloud Foundryを検証中(2011年10月~) – 最近は、アカウント払出/管理アプリを作ったり、 vcapノードの追加/管理ツールを作ったり。
  • ATNDアンケート結果-1 輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択) ・コードリーディング 11 ・VCAPの構築の情報共有 9 ・CF上でのアプリケーションの構築 4 に関する情報共有この辺の人向け ・CFを使い始めるための 5 概要や設定などの入門的内容
  • 追加アンケート• dev_setup (chefを使うやつ) を 使った人どれぐらいいますか? – Yesが多い → dev_setupの説明は飛ばし気味にして、 後半や質疑の時間を多めにする – Noが多い → dev_setupの説明からきっちりやる 後半のネタは懇親会行き
  • VCAPのdev_setupフォルダとは• VCAPコンポーネントをマルチノードで セットアップするためのツール群• 内部でchef(chef-solo)を利用• CF本家の見解 – We’ve been working on a replacement for the vcap_setup script based on Chef.• 現状セットアップできるコンポーネント – RT, CC, DEA, HM, Service(Gateway, Node) NATS Server, CCDB
  • dev_setupの基本的な使い方1. yaml形式のconfigファイルを作る – dev_setup/deployments にいくつかサンプル2. dev_setup/bin/vcap_dev_setup を実行 – -cオプションで1.で作ったconfigファイルを指定 – 時間かかります3. 成功したら、 Command to run cloudfoundry: を実行してコンポーネント起動
  • configファイルの構造• 例: deaの場合deployment: name: "dea" domain: “yourdomain.net"jobs: install: - dea: local_route: “dea001" logging: "debug" セットアップするコンポーネントの情報 secure: "true“ multi_tenant: “true” (この場合、DEA) enforce_ulimit: "false" installed: - nats_server: host: “nats001" セットアップ済のコンポーネントの情報 port: "4222" user: "nats" (この場合、DEAの通信するNATS) password: "nats"
  • configファイルの書き方• 設定可能な値 – dev_setup/cookbooks/*/templates 内の configのひな形(erb)を見て確認• デフォルト値 – dev_setup/cookbooks/*/attributes/default.rb を見て確認
  • デモ セットアップ開始からコンポーネントの起動まで
  • ハマりポイント• いろいろあります!• トラブルシュート お品書き 1. Gem not foundが出る 2. Service Gatewayが動かない 3. CCDBのないCCのセットアップに失敗する 4. Rubyのパスが通らない あるいは、 CCDBにrails consoleからつなぎたい
  • Gem not foundが出る• 症状 – vcap_logger, eventmachine-cloudfoundry などの、CF独自gemが not found – HM, DEAなどのセットアップで発生• 原因 – CCのvender/cacheにしかgemが置かれていないこと• 対処法 – Gemをコピー cp cloud_controller/vender/cache/* dea/vender/cache/ – commonの場合はフォルダから作る
  • Service Gatewayが動かない• 症状 – Service Gatewayの起動はするが、ログを見ると Failed registering with cloud controller, status=404• 原因 – Service GatewayからCCへのRESTアクセスで apiの名前解決に失敗• 対処法 – Service GatewayのhostsにRTを設定 • 間違い: RTの上にLBがいる場合はLB • LBがいる場合はBounce Back通信 (t.co/4w38LIIs) にならないように設定する必要アリ
  • CCDBのないCCの セットアップに失敗する• 症状 – vcap_dev_setup 実行中に FATAL: ArgumentError: bash[Setup PostgreSQL..• 原因 – CCのchefの構成情報(role)にCCDBがあるのに、 configファイルにはCCDBの情報がない• 対処法 – dev_setup/roles/cloud_controller.json から recipe[ccdb] の行を消す
  • RubyのPATHが通らない あるいはCCDBにrails consoleからつなぎたい• 症状 – ruby –v # => 1.8.7 ..• 対処法 – {vcap_root}/.deployments/*/deploy/rubies/.. にrubyがいるのでPATHを通す – rails consoleへのつなげ方 • {vcap_root}/.deployments/*/config/*.yml を {vcap_root}/vcap/cloud_controller/config に cp • {vcap_root}/vcap/cloud_controller/ で bundle exec rails console production
  • 改造1. ログの集約 vcapのログを1つのサーバに集約する2. 大量ノードの管理 デプロイサーバから大量ノードを管理する3. コンポーネントの追加 新しく追加されたコンポーネント stager, package_cache, warden の cookbookを作成して、dev_setupできるようにする
  • ログの集約• (r)syslogを使う – gem vcap_logger の仕事 VCAP::Logging::Sink::SyslogSink – コンポーネントの起動configファイルに log: syslog: を設定すればOK• 他のログ収集ツールを使う – VCAP::Logging::Sink::FluentSink とか誰か!
  • 大量ノードの管理• hamaknの解: Capistranoを使う – やりたいこと • コードの(ローリング && 手動)アップデート • デプロイサーバでの集中管理 – とりあえず作った / 使い方 • cap deploy -S paas_config=mypaas.yml • cap deploy –S host=cf001 –S component=dea• 別解: 構成管理ツールを使う – Chef, Pappet
  • コンポーネントの追加• 例: stagerを追加した – 追加が必要なもの • 既存のコードを参考に作る • dev_setup/cookbooks/stager attributes, recipes, templatesなど • dev_setup/roles/stager.json – 修正が必要なもの 全部で5行でした。 • dev_setup/bin/vcap • dev_setup/lib/job_dependency.rake • Dev_setup/lib/job_manager.rb
  • 振り返り1. dev_setupの基本的な使い方とコード読み2. 設定ファイルの書き方3. ハマりポイント4. dev_setupの改造 1. ログの集約 2. 大量のノードの管理 3. コンポーネントの追加 CHECK: 端折ることなく 20分で終われたか?
  • まとめ• dev_setupを利用した マルチノード(ホスト、VM)での VCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を話ました。• ブログにも一部書いています http://d.hatena.ne.jp/hamakn• Google Groups等で共有していきましょう!
  • 第3回 Cloud Foundry 輪読会 19:05開始~ しばらくおまちくださいWifi: SSID: **** KEY: **********
  • Heroku Drinkupに行かずに こちらに来ていただき、 ありがとうございます。
  • ATNDアンケート結果-1 輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択) ・コードリーディング 11 ・VCAPの構築の情報共有 9 ・CF上でのアプリケーションの構築 4 に関する情報共有 ・CFを使い始めるための 5 概要や設定などの入門的内容
  • ATNDアンケート結果-2 どちら方面からの参加ですか? (複数回答可) ・開発(Java系) 10 ・開発(LL言語系) 10 ・インフラ構築 10 ・インフラ運用 7 ・その他 ・CF自身に興味がある 2 ・Node.jsでのサービス開発 1 ・テクニカルサポート 1 ・UX系 1
  • 自己紹介タイム