Chef Infrastructure Automation Cookbook - Second Edition - Sample Chapter
How to be a Chef (Developer Edition)
-
Upload
rodrigo-ayala -
Category
Technology
-
view
330 -
download
0
description
Transcript of How to be a Chef (Developer Edition)
How to be a Chef(Developer Edition)
Rodrigo AyalaDeveloper
sábado, 1 de junio de 13
@RodrigoAyala
sábado, 1 de junio de 13
(Web) Apps are a bunch of software interconnected in a nice way
sábado, 1 de junio de 13
But software lives on servers
sábado, 1 de junio de 13
And we can’t to play dumb with that
sábado, 1 de junio de 13
tions?
sábado, 1 de junio de 13
Cloud, or local server
sábado, 1 de junio de 13
Local server
sábado, 1 de junio de 13
Local server
Pros:
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives✓ The equipment is yours and you can personalize as you want
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives✓ The equipment is yours and you can personalize as you want
Cons:
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives✓ The equipment is yours and you can personalize as you want
Cons:✓ You are responsible to give power and a good Tº to the server
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives✓ The equipment is yours and you can personalize as you want
Cons:✓ You are responsible to give power and a good Tº to the server✓ The environment should be able to support catastrophes. (TIER)
sábado, 1 de junio de 13
Local server
Pros:✓ You know where your data lives✓ The equipment is yours and you can personalize as you want
Cons:✓ You are responsible to give power and a good Tº to the server✓ The environment should be able to support catastrophes. (TIER)✓It needs a lot of configuration (and that needs a lot of time)
sábado, 1 de junio de 13
Cloud
sábado, 1 de junio de 13
Cloud
Pros:
sábado, 1 de junio de 13
Cloud
Pros:✓ You don’t need an huge initial investment to buy (expensive) servers
sábado, 1 de junio de 13
Cloud
Pros:✓ You don’t need an huge initial investment to buy (expensive) servers✓ You can dynamically create an IT architecture
sábado, 1 de junio de 13
Cloud
Pros:✓ You don’t need an huge initial investment to buy (expensive) servers✓ You can dynamically create an IT architecture
Cons:
sábado, 1 de junio de 13
Cloud
Pros:✓ You don’t need an huge initial investment to buy (expensive) servers✓ You can dynamically create an IT architecture
Cons:✓ If for any reason the cloud service is down, you can’t do anything but wait
sábado, 1 de junio de 13
Cloud
Pros:✓ You don’t need an huge initial investment to buy (expensive) servers✓ You can dynamically create an IT architecture
Cons:✓ If for any reason the cloud service is down, you can’t do anything but wait✓It needs a lot of configuration (and that needs a lot of time)
sábado, 1 de junio de 13
Cloud
IaaS PaaS
sábado, 1 de junio de 13
Cloud
IaaS PaaS
Infrastructure as a Service
✓Flexible✓Cheap
sábado, 1 de junio de 13
Cloud
IaaS PaaS
Platform as a Service
✓First deploy in just minutes✓You don’t have to worry about software updates
sábado, 1 de junio de 13
Cloud
IaaS PaaS
¿ ?
sábado, 1 de junio de 13
sábado, 1 de junio de 13
Configuration Management toolWritten in RubyOpen Source
sábado, 1 de junio de 13
88.3K lines of code7.497 commits
Since March 2008https://github.com/opscode/chef
* Metrics by http://www.ohloh.net/p/opscode-chef
sábado, 1 de junio de 13
Let’s see how it works
sábado, 1 de junio de 13
Chef
sábado, 1 de junio de 13
ChefChef Server
Chef Solo
sábado, 1 de junio de 13
Chef Server
Chef Client
Chef Client
Chef Client
Chef Server
(Repository)
sábado, 1 de junio de 13
Chef Solo
Forever Alone version
sábado, 1 de junio de 13
Chef Solo
Chef Solo Chef Solo Bootstraped
sábado, 1 de junio de 13
Let’s see how it works
sábado, 1 de junio de 13
Cookbookhttp://community.opscode.com/cookbooks
https://github.com/opscode-cookbooks
sábado, 1 de junio de 13
★ Java★ postgreSQL★ MySQL★ SELinux★ RVM★ etc
Cookbook
sábado, 1 de junio de 13
Recipes
sábado, 1 de junio de 13
Recipes
Are included on cookbooks
Written in Ruby
There are functions available as DSL
You can use ERB templates with Recipes
sábado, 1 de junio de 13
Resources
Used on recipes
Define actions that can be taken
There are functions available as DSL
Service, yum_package, execute or directory are a few examples of this
http://docs.opscode.com/chef/resources.html
sábado, 1 de junio de 13
template '/etc/sudoers' do source 'sudoers.erb' mode '0440' owner 'root' group platform?('freebsd') ? 'wheel' : 'root' variables( :sudoers_groups => node['authorization']['sudo']['groups'], :sudoers_users => node['authorization']['sudo']['users'], :passwordless => node['authorization']['sudo']['passwordless'], :include_sudoers_d => node['authorization']['sudo']['include_sudoers_d'], :agent_forwarding => node['authorization']['sudo']['agent_forwarding'], :sudoers_defaults => node['authorization']['sudo']['sudoers_defaults'] ) not_if { node[:some_value]}end
Recipe example
sábado, 1 de junio de 13
Run list
sábado, 1 de junio de 13
{ "run_list":[ "recipe[user]", "recipe[sudo]", "recipe[main::user]", "recipe[yum::epel]", "recipe[nginx]", "recipe[redis::server]", "recipe[build-essential]", "recipe[rvm::user]", "recipe[main]", "recipe[nginx_conf]", "recipe[main::nginx]", "recipe[main::dirs]" ] ],
sábado, 1 de junio de 13
Let’s cook!
sábado, 1 de junio de 13
How to start
$ gem install knife-solo$ gem install chef-solo
$ gem install chef
sábado, 1 de junio de 13
How to start
$ knife solo bootstrap user@ipnumber nodes/ip.json -i pemfile.pem
sábado, 1 de junio de 13
https://github.com/opscode/chef-repo
Empty cookbook
sábado, 1 de junio de 13
“Bundler” for Chef
https://github.com/applicationsonline/librarian-chef
sábado, 1 de junio de 13
Gracias!
sábado, 1 de junio de 13