Cloud Foundry multinode setup using dev_setup(Chef)

6,329 views
6,215 views

Published on

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

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,329
On SlideShare
0
From Embeds
0
Number of Embeds
3,441
Actions
Shares
0
Downloads
25
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Cloud Foundry multinode setup using dev_setup(Chef)

  1. 1. 第3回 Cloud Foundry 輪読会 dev_setupを利用した Cloud Foundry マルチノードセットアップ Katsunori Kawaguchi @hamakn 2011-12-15
  2. 2. dev_setupを利用した マルチノード(ホスト、VM)でのVCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を 共有したいと思います。
  3. 3. アジェンダ1. dev_setupの基本的な使い方とコード読み2. 設定ファイルの書き方3. ハマりポイント4. dev_setupの改造 1. ログの集約 2. 大量のノードの管理 3. コンポーネントの追加 TODO: 端折ることなく 20分で終わらせる!!
  4. 4. 自己紹介• 川口 克則 @hamakn• NTTコム所属• Web/スマートフォンアプリの開発 主にRails• Cloud Foundryを検証中(2011年10月~) – 最近は、アカウント払出/管理アプリを作ったり、 vcapノードの追加/管理ツールを作ったり。
  5. 5. ATNDアンケート結果-1 輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択) ・コードリーディング 11 ・VCAPの構築の情報共有 9 ・CF上でのアプリケーションの構築 4 に関する情報共有この辺の人向け ・CFを使い始めるための 5 概要や設定などの入門的内容
  6. 6. 追加アンケート• dev_setup (chefを使うやつ) を 使った人どれぐらいいますか? – Yesが多い → dev_setupの説明は飛ばし気味にして、 後半や質疑の時間を多めにする – Noが多い → dev_setupの説明からきっちりやる 後半のネタは懇親会行き
  7. 7. 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
  8. 8. dev_setupの基本的な使い方1. yaml形式のconfigファイルを作る – dev_setup/deployments にいくつかサンプル2. dev_setup/bin/vcap_dev_setup を実行 – -cオプションで1.で作ったconfigファイルを指定 – 時間かかります3. 成功したら、 Command to run cloudfoundry: を実行してコンポーネント起動
  9. 9. 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"
  10. 10. configファイルの書き方• 設定可能な値 – dev_setup/cookbooks/*/templates 内の configのひな形(erb)を見て確認• デフォルト値 – dev_setup/cookbooks/*/attributes/default.rb を見て確認
  11. 11. デモ セットアップ開始からコンポーネントの起動まで
  12. 12. ハマりポイント• いろいろあります!• トラブルシュート お品書き 1. Gem not foundが出る 2. Service Gatewayが動かない 3. CCDBのないCCのセットアップに失敗する 4. Rubyのパスが通らない あるいは、 CCDBにrails consoleからつなぎたい
  13. 13. 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の場合はフォルダから作る
  14. 14. 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) にならないように設定する必要アリ
  15. 15. CCDBのないCCの セットアップに失敗する• 症状 – vcap_dev_setup 実行中に FATAL: ArgumentError: bash[Setup PostgreSQL..• 原因 – CCのchefの構成情報(role)にCCDBがあるのに、 configファイルにはCCDBの情報がない• 対処法 – dev_setup/roles/cloud_controller.json から recipe[ccdb] の行を消す
  16. 16. 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
  17. 17. 改造1. ログの集約 vcapのログを1つのサーバに集約する2. 大量ノードの管理 デプロイサーバから大量ノードを管理する3. コンポーネントの追加 新しく追加されたコンポーネント stager, package_cache, warden の cookbookを作成して、dev_setupできるようにする
  18. 18. ログの集約• (r)syslogを使う – gem vcap_logger の仕事 VCAP::Logging::Sink::SyslogSink – コンポーネントの起動configファイルに log: syslog: を設定すればOK• 他のログ収集ツールを使う – VCAP::Logging::Sink::FluentSink とか誰か!
  19. 19. 大量ノードの管理• hamaknの解: Capistranoを使う – やりたいこと • コードの(ローリング && 手動)アップデート • デプロイサーバでの集中管理 – とりあえず作った / 使い方 • cap deploy -S paas_config=mypaas.yml • cap deploy –S host=cf001 –S component=dea• 別解: 構成管理ツールを使う – Chef, Pappet
  20. 20. コンポーネントの追加• 例: 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
  21. 21. 振り返り1. dev_setupの基本的な使い方とコード読み2. 設定ファイルの書き方3. ハマりポイント4. dev_setupの改造 1. ログの集約 2. 大量のノードの管理 3. コンポーネントの追加 CHECK: 端折ることなく 20分で終われたか?
  22. 22. まとめ• dev_setupを利用した マルチノード(ホスト、VM)での VCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を話ました。• ブログにも一部書いています http://d.hatena.ne.jp/hamakn• Google Groups等で共有していきましょう!
  23. 23. 第3回 Cloud Foundry 輪読会 19:05開始~ しばらくおまちくださいWifi: SSID: **** KEY: **********
  24. 24. Heroku Drinkupに行かずに こちらに来ていただき、 ありがとうございます。
  25. 25. ATNDアンケート結果-1 輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択) ・コードリーディング 11 ・VCAPの構築の情報共有 9 ・CF上でのアプリケーションの構築 4 に関する情報共有 ・CFを使い始めるための 5 概要や設定などの入門的内容
  26. 26. ATNDアンケート結果-2 どちら方面からの参加ですか? (複数回答可) ・開発(Java系) 10 ・開発(LL言語系) 10 ・インフラ構築 10 ・インフラ運用 7 ・その他 ・CF自身に興味がある 2 ・Node.jsでのサービス開発 1 ・テクニカルサポート 1 ・UX系 1
  27. 27. 自己紹介タイム

×