cloudstack user group meeting in osaka
TRANSCRIPT
OPSCODE CHEF基本編Japan Chef User Group
Naotaka Jay Hotta
CloudStack Users Osaka 2012
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 で検索してください。
運営協力者募集中!
本日の時間配分15 分 Chef の基本( 対象者: Chef 未経験者 )
1 分 質疑応答
http://www.flickr.com/photos/32299138@N08/5795005774/
Infrastructure
as
a Code
世界中のコンピュートインスタンスの
0.1%を使った HPCで10時間で計算する
Business のAgilityを上げる
CloudStack
Loosely tied management tools enStatus, Scalr, Opscode chef, Sensu,
AWSIDCFKDDINTTNiftyetc..
Publiccloud servicePhysical Hardware
Hypervisor Software-Defined Network
ObjectStorage
File systems
Storage
自動化を含めた、Libや APPs等のパーツの、細かい要件( version)の定義で再現性の実現
Chef の基本
公式リリース :
Jan 15th, 2009
本拠地
“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サーバ管理の小人
くん
DevOps業界では、必需品の第3世代Sever Configuration …
Puppet, cfengineとの違い?
Those Who are not Using!
• Ruby Internal DSL
• 便利な knife command
• Apache License 2.0 OSS
• Communityの活力
• 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/
日本語ドキュメントが劇貧
全然知らな〜い
初期の頃から、 recipeを公開していた
http://dtosolutions.com/
http://dtosolutions.com/
Chef-Solo
OSS Chef-server
Private Chef-server
Hosted Chef-server
+ Chef Client
-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
それぞれの 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" }
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
コミュニティーレシピーのリポジトリー
knife cloudstack
Knife: 強力な CLI(コマンドラインインターフェース )
Subcommands built into Knife:• Bootstrap• Client• Cloud Plugins• Configure• Cookbook• Cookbook Site• Data Bag• Environment• Exec• Node• Recipe• Role• Search• SSH• Status• Tag
Knife Plugins
設置は簡単、ディレクトリの自由度が高い
• ~/.chef/plugins/knife/
• Cookbookの .chef/plugins/knife/
• Ruby Gem がある chef/knife
有益な Community Plugins
http://wiki.opscode.com/display/chef/Community+Plugins
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"
** 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)
knife.rbで、Hadoop cluster 構成を指定すると!
"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" } ] }
Opscodeと旧 cloud.comより、CloudStack 3.0に対応していると、ニュースリリ -スされていますが、CloudStack User会の事務局長 A氏の個人検証環境の強制占拠によって未だ検証できず!