cloudstack user group meeting in osaka

39
OPSCODE CHEF 基基基 Japan Chef User Group Naotaka Jay Hotta CloudStack Users Osaka 2012

Upload: jay-hotta

Post on 24-May-2015

845 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Cloudstack user group meeting in osaka

OPSCODE CHEF基本編Japan Chef User Group

Naotaka Jay Hotta

CloudStack Users Osaka 2012

Page 2: Cloudstack user group meeting in osaka

Japan Chef User Group (JCUG)

設立総会: 2012 年8月 1 日

本日の担当者:  Naotaka Jay Hotta (@jhotta)

目 的:  Opscode Chef の利用を通して

1) IT インフラの高度な管理とシステムの運用の実現を目指す。

2) CI, CD 等に実現のためのディプロイメントツールとして高度な知識の知識が、一般化するための土壌作りを手伝う。

方 法:

3) ML :  chef-ja   google group で検索してください。

4) HP :  Japan chef user Group   facebook で検索してください。

Page 3: Cloudstack user group meeting in osaka

運営協力者募集中!

Page 4: Cloudstack user group meeting in osaka

本日の時間配分15 分  Chef の基本( 対象者: Chef 未経験者 )

1 分 質疑応答

http://www.flickr.com/photos/32299138@N08/5795005774/

Page 5: Cloudstack user group meeting in osaka

Infrastructure

as

a Code

Page 6: Cloudstack user group meeting in osaka

世界中のコンピュートインスタンスの

0.1%を使った HPCで10時間で計算する

Page 7: Cloudstack user group meeting in osaka

Business のAgilityを上げる

Page 8: Cloudstack user group meeting in osaka

CloudStack

Loosely tied management tools enStatus, Scalr, Opscode chef, Sensu,

AWSIDCFKDDINTTNiftyetc..

Publiccloud servicePhysical Hardware

Hypervisor Software-Defined Network

ObjectStorage

File systems

Storage

Page 9: Cloudstack user group meeting in osaka

自動化を含めた、Libや APPs等のパーツの、細かい要件( version)の定義で再現性の実現

Page 10: Cloudstack user group meeting in osaka

Chef の基本

Page 11: Cloudstack user group meeting in osaka

公式リリース :

Jan 15th, 2009

Page 12: Cloudstack user group meeting in osaka

本拠地

Page 13: Cloudstack user group meeting in osaka

“Chef is like a little system admin robot... you tell it how you want your system configured and it will do all the dirty work.”- Early Chef Adopterサーバ管理の小人

くん

Page 14: Cloudstack user group meeting in osaka

DevOps業界では、必需品の第3世代Sever Configuration …

Page 15: Cloudstack user group meeting in osaka

Puppet, cfengineとの違い?

Those Who are not Using!

Page 16: Cloudstack user group meeting in osaka

• Ruby Internal DSL

• 便利な knife command

• Apache License 2.0 OSS

• Communityの活力

Page 17: Cloudstack user group meeting in osaka

• 380+Cookbooks

• Plug-Ins 多数

• Source Code Documentation

• FAQ

• Training16,000 Active Users

• 600+ Individual and 120+ Corporate Contributors

• Global Partner Network

Opscode Chef community

http://community.opscode.com/

日本語ドキュメントが劇貧

Page 18: Cloudstack user group meeting in osaka

全然知らな〜い

Page 19: Cloudstack user group meeting in osaka

初期の頃から、 recipeを公開していた

Page 20: Cloudstack user group meeting in osaka

http://dtosolutions.com/

Page 21: Cloudstack user group meeting in osaka
Page 22: Cloudstack user group meeting in osaka

http://dtosolutions.com/

Page 23: Cloudstack user group meeting in osaka

Chef-Solo

OSS Chef-server

Private Chef-server

Hosted Chef-server

+ Chef Client

Page 24: Cloudstack user group meeting in osaka

-c, --config CONFIG-j, --json-attributes JSON_ATTRIBS-r, --recipe-url RECIPE_URL

* run_listは、 json-attributesの中で設定する。

# chef-solo -c ~/solo.rb \

-j ~/node.json \

-r http://www.example.com/chef-solo.tar.gz

Page 25: Cloudstack user group meeting in osaka
Page 26: Cloudstack user group meeting in osaka

それぞれの NODEの Roleに合わせた、設定内容のリストが呼び出される。

name "webserver"description "The base role for systems that serve HTTP traffic"run_list "recipe[apache2]", "recipe[apache2::mod_ssl]", "role[monitor]”default_attributes "apache2" => { "listen_ports" => [ "80", "443" ] }override_attributes "apache2" => { "max_children" => "50" }

Page 27: Cloudstack user group meeting in osaka
Page 28: Cloudstack user group meeting in osaka

Repository Description Maintainer

https://github.com/opscode-cookbooks

Cookbooks created by Opscode Opscode

https://github.com/37signals/37s_cookbooks

37 Signals Repository 37 Signals

https://github.com/engineyard/ey-cloud-recipes

EY Cloud Recipes Engine Yard

https://github.com/cookbooks Community Curated Cookbooks “Cookbooks” Organization

コミュニティーレシピーのリポジトリー

Page 29: Cloudstack user group meeting in osaka

knife cloudstack

Page 30: Cloudstack user group meeting in osaka

Knife: 強力な CLI(コマンドラインインターフェース )

Page 31: Cloudstack user group meeting in osaka

Subcommands built into Knife:• Bootstrap• Client• Cloud Plugins• Configure• Cookbook• Cookbook Site• Data Bag• Environment• Exec• Node• Recipe• Role• Search• SSH• Status• Tag

Page 32: Cloudstack user group meeting in osaka

Knife Plugins

Page 33: Cloudstack user group meeting in osaka

設置は簡単、ディレクトリの自由度が高い

• ~/.chef/plugins/knife/

• Cookbookの .chef/plugins/knife/

• Ruby Gem がある chef/knife

Page 34: Cloudstack user group meeting in osaka

有益な Community Plugins

http://wiki.opscode.com/display/chef/Community+Plugins

Page 35: Cloudstack user group meeting in osaka

knife.rb file:

knife[:cloudstack_url] = "http://yourcloudstackserver.com:8080/client/apiknife[:cloudstack_api_key] = "Your CloudStack API Key"knife[:cloudstack_secret_key] = "Your CloudStack Secret Key"

Page 36: Cloudstack user group meeting in osaka

** CS COMMANDS **

knife cs hostsknife cs network list (options)knife cs server create [SERVER_NAME] (options)knife cs server delete SERVER_NAME [SERVER_NAME ...] (options)knife cs server list (options)knife cs server reboot SERVER_NAME [SERVER_NAME ...] (options)knife cs server start SERVER_NAME [SERVER_NAME ...] (options)knife cs server stop SERVER_NAME [SERVER_NAME ...] (options)knife cs service list (options)knife cs stack create JSON_FILE (options)knife cs stack delete JSON_FILE (options)knife cs template list (options)knife cs zone list (options)

Page 37: Cloudstack user group meeting in osaka

knife.rbで、Hadoop cluster 構成を指定すると!

Page 38: Cloudstack user group meeting in osaka

"name": "hadoop_cluster_a","description": "A small hadoop cluster with hbase","version": "1.0","environment": "production","servers": [ { "name": "zookeeper-a, zookeeper-b, zookeeper-c", "description": "Zookeeper nodes", "template": "rhel-5.6-base", "service": "small", "port_rules": "2181", "run_list": "role[cluster_a], role[zookeeper_server]", "actions": [ { "knife_ssh": ["role:zookeeper_server", "sudo chef-client"] } ] }, { "name": "hadoop-master", "description": "Hadoop master node", "template": "rhel-5.6-base", "service": "large", "networks": "app-net, storage-net", "port_rules": "50070, 50030, 60010", "run_list": "role[cluster_a], role[hadoop_master], role[hbase_master]" }, { "name": "hadoop-worker-a hadoop-worker-b hadoop-worker-c", "description": "Hadoop worker nodes", "template": "rhel-5.6-base", "service": "medium", "port_rules": "50075, 50060, 60030", "run_list": "role[cluster_a], role[hadoop_worker], role[hbase_regionserver]", "actions": [ { "knife_ssh": ["role:hadoop_master", "sudo chef-client"] }, { "http_request": "http://${hadoop-master}:50070/index.jsp" } ] }

Page 39: Cloudstack user group meeting in osaka

Opscodeと旧 cloud.comより、CloudStack 3.0に対応していると、ニュースリリ -スされていますが、CloudStack User会の事務局長 A氏の個人検証環境の強制占拠によって未だ検証できず!