Mais conteúdo relacionado Semelhante a Automate or Die (20) Automate or Die3. @CASHION
http://www.charlesheflin.com/wp-content/uploads/2010/06/fail-whale.jpg
9. GOING WAY BACK
http://www.ameshistoricalsociety.org/identify/old_car1.jpg
10. FORD VS. THE OTHER GUYS
Pre-Ford (?-1907) Model T (1915)
$2,000 - $3,000 $850
Made by hand Assembly Line
12.5 hours to build 1.5 hours
11. BY 1930
250 car companies had died
http://sdo210.files.wordpress.com/2010/05/grantwood-american-gothic-1930.jpg
12. SO WHAT ABOUT US?
http://media.photobucket.com/image/nerds%20candy/civy1811/car002.jpg
14. MYSQL
http://www.dolphinsc.com/images/Dolphin.jpg
16. APACHE
http://www.wallpapers-free.org/34/-/Apache_Longbow_Helicopter/
24. Memcached
Redis
Mongodb Riak
Cassandra
Project Voldemort
25. Memcached
Redis
Mongodb Riak
Ubuntu Cassandra
Project Voldemort
26. Memcached
Redis Redhat
Mongodb Riak
Ubuntu Cassandra
Project Voldemort
27. Memcached
Redis Redhat
Solaris Mongodb Riak
Ubuntu Cassandra
Project Voldemort
28. Memcached iptables
Redis Redhat
Solaris Mongodb Riak
Ubuntu Cassandra
Project Voldemort
29. Memcached iptables
Redis Redhat
Solaris Mongodb Riak
Ubuntu Cassandra
sshd
Project Voldemort
30. Memcached iptables
Redis Redhat
Solaris Mongodb Riak
DNS Servers
Ubuntu Cassandra
sshd
Project Voldemort
31. Memcached iptables
Redis Redhat
Solaris Mongodb Riak
DNS Servers
Ubuntu Cassandra
sshd
TCP/IP internals
Project Voldemort
34. SNOWFLAKES
... that become avalanches
http://www.enviro-bc.ca/wp-content/uploads/2009/04/bowlake-aval_clair-israelson.jpg
36. NO MORE MONEY!
http://assets.troubledteenswizard.com/uploaded/WoW/nomoney1.jpg
41. PUPPET
http://www.flickr.com/photos/willemvelthoven/381608678/sizes/l/
42. CHEF!
http://www.flickr.com/photos/venndiagram/4891510333/sizes/l/
44. WRITTEN IN
http://www.prestonlee.com/wp-content/uploads/2008/09/ruby.png
51. HOW IT WORKS
Your
Computer
Prepare
Box to
Chef Server
Provision
52. HOW IT WORKS
Your
Computer
Prepare
What now?
Box to
Chef Server
Provision
53. HOW IT WORKS
Your
Computer
Prepare Cookbooks
What now?
Box to
Chef Server
Provision
54. HOW IT WORKS
Your
Computer
Prepare Cookbooks
What now?
Box to
Chef Server
Provision
Run!
60. HOW IT WORKS
Prepare
Your Box to
Computer
Cookbooks Provision
61. HOW IT WORKS
Prepare
Your Box to
Computer
Cookbooks Provision
Go!
63. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
65. GETTING
GOING
http://www.flickr.com/photos/seandreilinger/959864706/sizes/o/
69. WHAT YOU NEED
Ruby &
Rubygems
`gem install chef` Chef Gem
`git clone http://github.com/
Chef Repo
opscode/chef-repo.git`
76. GET THE BOX READY
ssh db-one.host “install ruby”
spatula prepare db-one.host =
ssh db-one.host “install chef”
77. GO GO GO!
rsync repo to db-one.host
spatula cook db-one.host db = ssh db-one.host “sudo
chef-solo -c config/solo.rb
-j config/db.json”
78. WITH CHEF SERVER
install dependencies
turn on client
send cookbooks to client
79. DIGGING DEEPER
http://media.photobucket.com/image/minecraft/bluekabal/roma/minesofroma.jpg
80. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
82. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
85. A ROLE
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
./cookbooks/apache2/recipes/default.rb
86. A ROLE
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
./cookbooks/mysql/recipes/server.rb
87. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
88. ATTRIBUTES
# ./cookbooks/mysql/attributes/server.rb
default[:mysql][:server_debian_password] = secure_password
default[:mysql][:server_root_password] = secure_password
default[:mysql][:server_repl_password] = secure_password
default[:mysql][:bind_address] = ipaddress
default[:mysql][:datadir] = "/var/lib/mysql"
# Tunables
default[:mysql][:tunable][:key_buffer] = "250M"
default[:mysql][:tunable][:max_connections] = "800"
default[:mysql][:tunable][:wait_timeout] = "180"
89. OVERRIDING ATTRIBUTES
Node
// ./config/db.json
{ "mysql": { "server_root_password": "beefcake" },
"recipes": [ "mysql" ] }
Role
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "mysql::server" ]
default_attributes :mysql => { :server_root_password =>
"beefcake" }
90. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
91. THE RECIPE... PART 1
# ./cookbooks/mysql/recipes/server.rb
include_recipe "mysql::client"
93. THE RECIPE... PART 3
template "/etc/mysql/my.cnf" do
source "my.cnf.erb"
owner "root"
group "root"
mode "0644"
notifies :restart,
resources(:service => "mysql"),
:immediately
end
94. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
95. A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
96. A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
OMG, ERB!!
97. A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
From Attributes
98. A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %> From Template
bind-address = <%= @node[:mysql][:bind_address] %>
100. CHEF HEIRARCHY
Node
Roles Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
101. DEFINITIONS
define :apache_conf do
dir = node[:apache][:dir]
template "#{dir}/mods-available/#{params[:name]}.conf" do
source "mods/#{params[:name]}.conf.erb"
notifies :restart, resources(:service => "apache2")
end
end
# In your recipe
apache_conf "mod_ssl"
102. LET’S
WRAP
IT U P
http://www.flickr.com/photos/andresthor/3946773501/sizes/l/in/photostream/
105. USE CHEF!!!!!
http://www.flickr.com/photos/martin_borjesson/4083726805/sizes/o/
110. DOMO ARIGATO
http://www.flickr.com/photos/dancoulter/21042744/sizes/o/