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

Cloudstack user group meeting in osaka

May 24, 2015

Download

Technology

Jay Hotta
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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氏の個人検証環境の強制占拠によって未だ検証できず!