SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
1時間 15分で解る Chef
Tomokazu HIRAI
13年10月2日水曜日
Chef の構成
Chef-Server
WorkStation Node
(1)
(2)
(3)
(1) : cookbooks, roles, data_bag, environments 等をアップロード
(2) : node に対して ‘bootstrap’ 行いデプロイ開始
(3) : cookbooks, roles 等をダウンロードし chef-client 実行, その後も定期的に実行
knife を使い操作
13年10月2日水曜日
Chef Server
% wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/
x86_64/chef-server_11.0.8-1.ubuntu.12.04_amd64.deb
% sudo dpkg -i chef-server_11.0.8-1.ubuntu.12.04_amd64.deb
Chef-Server
WorkStation Node
13年10月2日水曜日
WorkStation
server% knife configure -i
の生成
client% mkdir .chef
client% scp <server>:~/thirai.pem .chef/
client% scp <server>:~/chef-validator.pem .chef/
client% vim .chef/knife.rb
log_level :info
log_location STDOUT
node_name 'thirai'
client_key '/Users/thirai/chef-repo/.chef/thirai.pem'
validation_client_name 'chef-validator'
validation_key '/Users/thirai/chef-repo/.chef/chef-validator.pem'
chef_server_url 'https://10.200.10.96'
syntax_check_cache_path '/Users/thirai/chef-repo/.chef/syntax_check_cache'
client% knife node list # knife コマンドが利用可能に。
foo01
foo02
...
Chef-Server
WorkStation Node
13年10月2日水曜日
Chef-Repo
chef-repo
!"" cookbooks
#   %"" nginx
#   !"" attributes
#   !"" definitions
#   !"" files
#   #   %"" default
#   #   %"" tests
#   #   %"" minitest
#   #   %"" support
#   !"" recipes
#   %"" templates
#   !"" debian
#   !"" default
#   #   !"" modules
#   #   %"" plugins
#   !"" gentoo
#   %"" ubuntu
!"" data_bags
!"" environments
%"" roles
Chef-Server
WorkStation Node
13年10月2日水曜日
Chef を構成する要素
* Cookbooks
* Roles
* Environments
* Data_bags
13年10月2日水曜日
Cookbooks
* Attributes
* Templates
* Recipe
default['apache']['package'] = "httpd"
default['apache']['pid_file'] = "/var/run/httpd.pid"
default['apache']['timeout'] = 300
default['apache']['keepalive'] = "On"
13年10月2日水曜日
Cookbooks
* Attributes
* Templates
* Recipe
PidFile <%= node['apache']['pid_file'] %>
Timeout <%= node['apache']['timeout'] %>
KeepAlive <%= node['apache']['keepalive'] %>
13年10月2日水曜日
Cookbooks
* Attributes
* Templates
* Recipe
package "apache2" do
  package_name node['apache']['package']
end
13年10月2日水曜日
Cookbooks
* Attributes
* Templates
* Recipe
package "apache2" do
  package_name node['apache']['package']
end
http://docs.opscode.com/resource.html
Resources
13年10月2日水曜日
Roles
name "webservers"
description "role of web servers"
run_list "recipe[apache2]", "recipe[apache2::mod_fastcgi]"
override_attributes "apache2" => { "max_children" => "50" }
recipe/default.rb recipe/mod_fastcgi.rb
13年10月2日水曜日
Environments
name	
  "dev"
description	
  "The	
  development	
  environment"
cookbook_versions	
  	
  "couchdb"	
  =>	
  "=	
  11.0.0"
override_attributes	
  "apache2"	
  =>	
  {	
  "listen_ports"	
  =>	
  [	
  "80",	
  "443"	
  ]	
  }
13年10月2日水曜日
Data Bags
% ${EDITOR} bofh.json
{
"id": "bofh",
"ssh_keys": "ssh-rsa AAAAB3Nz...yhCw== bofh",
"groups": [ "sysadmin", "dba", "devops" ],
"uid": 2001,
"shell": "/bin/bash",
"comment": "BOFH",
"nagios": {
"pager": "8005551212@txt.att.net",
"email": "bofh@example.com"
},
"openid": "bofh.myopenid.com"
}
% knife data bag create users
% knife data bag from file users ./bofh.json
13年10月2日水曜日

Contenu connexe

Tendances

Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithackChef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
満徳 関
 
JAWSUG版 PostgreSQL on Amazon EC2の可能性
JAWSUG版 PostgreSQL on Amazon EC2の可能性JAWSUG版 PostgreSQL on Amazon EC2の可能性
JAWSUG版 PostgreSQL on Amazon EC2の可能性
Serverworks Co.,Ltd.
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
hiboma
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0
NIFTY Cloud
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
Sea Mountain
 

Tendances (20)

Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
 
サーバ側Swift
サーバ側Swiftサーバ側Swift
サーバ側Swift
 
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithackChef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
Chef+Vagrantでクラウド環境構築自動化ハッカソン 結果発表 #atithack
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
JSで対戦できるゲーム作った
JSで対戦できるゲーム作ったJSで対戦できるゲーム作った
JSで対戦できるゲーム作った
 
Chefのはじめの一歩
Chefのはじめの一歩Chefのはじめの一歩
Chefのはじめの一歩
 
JAWSUG版 PostgreSQL on Amazon EC2の可能性
JAWSUG版 PostgreSQL on Amazon EC2の可能性JAWSUG版 PostgreSQL on Amazon EC2の可能性
JAWSUG版 PostgreSQL on Amazon EC2の可能性
 
Yohes kitchen
Yohes kitchenYohes kitchen
Yohes kitchen
 
MackerelAPI使ってみた
MackerelAPI使ってみたMackerelAPI使ってみた
MackerelAPI使ってみた
 
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - AnsibleOkinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Osdt2015 saito
Osdt2015 saitoOsdt2015 saito
Osdt2015 saito
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
 
クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0クラウド上でのChef活用と ベストプラクティス v0.2.0
クラウド上でのChef活用と ベストプラクティス v0.2.0
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 

Similaire à Chef study

Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
hiroyuki nakajima
 

Similaire à Chef study (20)

20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
広島Ruby勉強会#35 - Chef入門
広島Ruby勉強会#35 - Chef入門広島Ruby勉強会#35 - Chef入門
広島Ruby勉強会#35 - Chef入門
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
hbstudy37 doc
hbstudy37 dochbstudy37 doc
hbstudy37 doc
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 

Chef study

  • 1. 1時間 15分で解る Chef Tomokazu HIRAI 13年10月2日水曜日
  • 2. Chef の構成 Chef-Server WorkStation Node (1) (2) (3) (1) : cookbooks, roles, data_bag, environments 等をアップロード (2) : node に対して ‘bootstrap’ 行いデプロイ開始 (3) : cookbooks, roles 等をダウンロードし chef-client 実行, その後も定期的に実行 knife を使い操作 13年10月2日水曜日
  • 3. Chef Server % wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/ x86_64/chef-server_11.0.8-1.ubuntu.12.04_amd64.deb % sudo dpkg -i chef-server_11.0.8-1.ubuntu.12.04_amd64.deb Chef-Server WorkStation Node 13年10月2日水曜日
  • 4. WorkStation server% knife configure -i の生成 client% mkdir .chef client% scp <server>:~/thirai.pem .chef/ client% scp <server>:~/chef-validator.pem .chef/ client% vim .chef/knife.rb log_level :info log_location STDOUT node_name 'thirai' client_key '/Users/thirai/chef-repo/.chef/thirai.pem' validation_client_name 'chef-validator' validation_key '/Users/thirai/chef-repo/.chef/chef-validator.pem' chef_server_url 'https://10.200.10.96' syntax_check_cache_path '/Users/thirai/chef-repo/.chef/syntax_check_cache' client% knife node list # knife コマンドが利用可能に。 foo01 foo02 ... Chef-Server WorkStation Node 13年10月2日水曜日
  • 5. Chef-Repo chef-repo !"" cookbooks #   %"" nginx #   !"" attributes #   !"" definitions #   !"" files #   #   %"" default #   #   %"" tests #   #   %"" minitest #   #   %"" support #   !"" recipes #   %"" templates #   !"" debian #   !"" default #   #   !"" modules #   #   %"" plugins #   !"" gentoo #   %"" ubuntu !"" data_bags !"" environments %"" roles Chef-Server WorkStation Node 13年10月2日水曜日
  • 6. Chef を構成する要素 * Cookbooks * Roles * Environments * Data_bags 13年10月2日水曜日
  • 7. Cookbooks * Attributes * Templates * Recipe default['apache']['package'] = "httpd" default['apache']['pid_file'] = "/var/run/httpd.pid" default['apache']['timeout'] = 300 default['apache']['keepalive'] = "On" 13年10月2日水曜日
  • 8. Cookbooks * Attributes * Templates * Recipe PidFile <%= node['apache']['pid_file'] %> Timeout <%= node['apache']['timeout'] %> KeepAlive <%= node['apache']['keepalive'] %> 13年10月2日水曜日
  • 9. Cookbooks * Attributes * Templates * Recipe package "apache2" do   package_name node['apache']['package'] end 13年10月2日水曜日
  • 10. Cookbooks * Attributes * Templates * Recipe package "apache2" do   package_name node['apache']['package'] end http://docs.opscode.com/resource.html Resources 13年10月2日水曜日
  • 11. Roles name "webservers" description "role of web servers" run_list "recipe[apache2]", "recipe[apache2::mod_fastcgi]" override_attributes "apache2" => { "max_children" => "50" } recipe/default.rb recipe/mod_fastcgi.rb 13年10月2日水曜日
  • 12. Environments name  "dev" description  "The  development  environment" cookbook_versions    "couchdb"  =>  "=  11.0.0" override_attributes  "apache2"  =>  {  "listen_ports"  =>  [  "80",  "443"  ]  } 13年10月2日水曜日
  • 13. Data Bags % ${EDITOR} bofh.json { "id": "bofh", "ssh_keys": "ssh-rsa AAAAB3Nz...yhCw== bofh", "groups": [ "sysadmin", "dba", "devops" ], "uid": 2001, "shell": "/bin/bash", "comment": "BOFH", "nagios": { "pager": "8005551212@txt.att.net", "email": "bofh@example.com" }, "openid": "bofh.myopenid.com" } % knife data bag create users % knife data bag from file users ./bofh.json 13年10月2日水曜日