cloud foundry multinode setup using dev_setup(chef)

28
第3回 Cloud Foundry 輪読会 dev_setupを利用した Cloud Foundry マルチノードセットアップ Katsunori Kawaguchi @hamakn 2011-12-15

Upload: katsunori-kawaguchi

Post on 28-May-2015

5.754 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Cloud Foundry multinode setup using dev_setup(Chef)

第3回 Cloud Foundry 輪読会

dev_setupを利用した

Cloud Foundry マルチノードセットアップ

Katsunori Kawaguchi @hamakn

2011-12-15

Page 2: Cloud Foundry multinode setup using dev_setup(Chef)

dev_setupを利用した マルチノード(ホスト、VM)での

VCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を

共有したいと思います。

Page 3: Cloud Foundry multinode setup using dev_setup(Chef)

アジェンダ

1. dev_setupの基本的な使い方とコード読み

2. 設定ファイルの書き方

3. ハマりポイント

4. dev_setupの改造

1. ログの集約

2. 大量のノードの管理

3. コンポーネントの追加

TODO: 端折ることなく 20分で終わらせる!!

Page 4: Cloud Foundry multinode setup using dev_setup(Chef)

自己紹介

• 川口 克則 @hamakn

• NTTコム所属

• Web/スマートフォンアプリの開発 主にRails

• Cloud Foundryを検証中(2011年10月~)

– 最近は、アカウント払出/管理アプリを作ったり、 vcapノードの追加/管理ツールを作ったり。

Page 5: Cloud Foundry multinode setup using dev_setup(Chef)

輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択)

・コードリーディング 11

・VCAPの構築の情報共有 9

・CF上でのアプリケーションの構築に関する情報共有

4

・CFを使い始めるための 概要や設定などの入門的内容

5

ATNDアンケート結果-1

この辺の人向け

Page 6: Cloud Foundry multinode setup using dev_setup(Chef)

追加アンケート

• dev_setup (chefを使うやつ) を 使った人どれぐらいいますか?

– Yesが多い → dev_setupの説明は飛ばし気味にして、 後半や質疑の時間を多めにする

– Noが多い → dev_setupの説明からきっちりやる 後半のネタは懇親会行き

Page 7: Cloud Foundry multinode setup using dev_setup(Chef)

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

Page 8: Cloud Foundry multinode setup using dev_setup(Chef)

dev_setupの基本的な使い方

1. yaml形式のconfigファイルを作る

– dev_setup/deployments にいくつかサンプル

2. dev_setup/bin/vcap_dev_setup を実行

– -cオプションで1.で作ったconfigファイルを指定

– 時間かかります

3. 成功したら、 Command to run cloudfoundry: を実行してコンポーネント起動

Page 9: Cloud Foundry multinode setup using dev_setup(Chef)

configファイルの構造

• 例: deaの場合 deployment:

name: "dea"

domain: “yourdomain.net"

jobs:

install:

- dea:

local_route: “dea001"

logging: "debug"

secure: "true“

multi_tenant: “true”

enforce_ulimit: "false"

installed:

- nats_server:

host: “nats001"

port: "4222"

user: "nats"

password: "nats"

セットアップするコンポーネントの情報 (この場合、DEA)

セットアップ済のコンポーネントの情報 (この場合、DEAの通信するNATS)

Page 10: Cloud Foundry multinode setup using dev_setup(Chef)

configファイルの書き方

• 設定可能な値

– dev_setup/cookbooks/*/templates 内の configのひな形(erb)を見て確認

• デフォルト値

– dev_setup/cookbooks/*/attributes/default.rb を見て確認

Page 11: Cloud Foundry multinode setup using dev_setup(Chef)

デモ

セットアップ開始から コンポーネントの起動まで

Page 12: Cloud Foundry multinode setup using dev_setup(Chef)

ハマりポイント

• いろいろあります!

• トラブルシュート お品書き

1. Gem not foundが出る

2. Service Gatewayが動かない

3. CCDBのないCCのセットアップに失敗する

4. Rubyのパスが通らない あるいは、 CCDBにrails consoleからつなぎたい

Page 13: Cloud Foundry multinode setup using dev_setup(Chef)

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の場合はフォルダから作る

Page 14: Cloud Foundry multinode setup using dev_setup(Chef)

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) にならないように設定する必要アリ

Page 15: Cloud Foundry multinode setup using dev_setup(Chef)

CCDBのないCCの セットアップに失敗する

• 症状

– vcap_dev_setup 実行中に FATAL: ArgumentError: bash[Setup PostgreSQL..

• 原因

– CCのchefの構成情報(role)にCCDBがあるのに、 configファイルにはCCDBの情報がない

• 対処法

– dev_setup/roles/cloud_controller.json から recipe[ccdb] の行を消す

Page 16: Cloud Foundry multinode setup using dev_setup(Chef)

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

Page 17: Cloud Foundry multinode setup using dev_setup(Chef)

改造

1. ログの集約

vcapのログを1つのサーバに集約する

2. 大量ノードの管理

デプロイサーバから大量ノードを管理する

3. コンポーネントの追加

新しく追加されたコンポーネント stager, package_cache, warden の cookbookを作成して、dev_setupできるようにする

Page 18: Cloud Foundry multinode setup using dev_setup(Chef)

ログの集約

• (r)syslogを使う

– gem vcap_logger の仕事 VCAP::Logging::Sink::SyslogSink

– コンポーネントの起動configファイルに log: syslog: を設定すればOK

• 他のログ収集ツールを使う

– VCAP::Logging::Sink::FluentSink とか誰か!

Page 19: Cloud Foundry multinode setup using dev_setup(Chef)

大量ノードの管理

• hamaknの解: Capistranoを使う

– やりたいこと

• コードの(ローリング && 手動)アップデート

• デプロイサーバでの集中管理

– とりあえず作った / 使い方

• cap deploy -S paas_config=mypaas.yml

• cap deploy –S host=cf001 –S component=dea

• 別解: 構成管理ツールを使う

– Chef, Pappet

Page 20: Cloud Foundry multinode setup using dev_setup(Chef)

コンポーネントの追加

• 例: 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

• ソースコードに “This file needs to die in a fire” とかあって楽しいですょ?

Page 21: Cloud Foundry multinode setup using dev_setup(Chef)

振り返り

1. dev_setupの基本的な使い方とコード読み

2. 設定ファイルの書き方

3. ハマりポイント

4. dev_setupの改造

1. ログの集約

2. 大量のノードの管理

3. コンポーネントの追加

CHECK: 端折ることなく 20分で終われたか?

Page 22: Cloud Foundry multinode setup using dev_setup(Chef)

まとめ

• dev_setupを利用した マルチノード(ホスト、VM)での VCAPのセットアップ方法の説明と、 その際のハマりポイントや工夫を話ました。

• ブログにも一部書いています http://d.hatena.ne.jp/hamakn

• Google Groups等で共有していきましょう!

Page 23: Cloud Foundry multinode setup using dev_setup(Chef)
Page 24: Cloud Foundry multinode setup using dev_setup(Chef)

第3回 Cloud Foundry 輪読会

19:05開始~ しばらくおまちください

Wifi: SSID: **** KEY: **********

Page 25: Cloud Foundry multinode setup using dev_setup(Chef)

Heroku Drinkupに行かずに こちらに来ていただき、 ありがとうございます。

Page 26: Cloud Foundry multinode setup using dev_setup(Chef)

輪読会で最も知りたいこと、 やりたいことは何ですか?(1つ選択)

・コードリーディング 11

・VCAPの構築の情報共有 9

・CF上でのアプリケーションの構築に関する情報共有

4

・CFを使い始めるための 概要や設定などの入門的内容

5

ATNDアンケート結果-1

Page 27: Cloud Foundry multinode setup using dev_setup(Chef)

どちら方面からの参加ですか? (複数回答可)

・開発(Java系) 10

・開発(LL言語系) 10

・インフラ構築 10

・インフラ運用 7 ・その他

・CF自身に興味がある 2

・Node.jsでのサービス開発 1

・テクニカルサポート 1

・UX系 1

ATNDアンケート結果-2

Page 28: Cloud Foundry multinode setup using dev_setup(Chef)

自己紹介タイム