1. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Automatisierungstechnologien f¨r die Infrastruktur
u
mit Chef
Frederic Jaeckel (SoundCloud)
24. April 2011
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
2. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Inhaltsverzeichnis
1 About
2 Wozu Automatisierung?
3 Chef
Was ist Chef?
Architektur
Objekte
Utilities
4 Examples
Cookbooks
Cookbooks
Node Attributes
Roles
Data Bags
5 Search
Search Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
3. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About me
(Dev)Op bei SoundCloud
Zuvor im Security und Enterprise Umfeld t¨tig gewesen
a
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
4. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About me
(Dev)Op bei SoundCloud
Zuvor im Security und Enterprise Umfeld t¨tig gewesen
a
UNIX user/admin seit vielen Jahren
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
5. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About me
(Dev)Op bei SoundCloud
Zuvor im Security und Enterprise Umfeld t¨tig gewesen
a
UNIX user/admin seit vielen Jahren
Twitter: twitter.com/jaycieh
SoundCloud: soundcloud.com/jaycieh
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
6. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About me
(Dev)Op bei SoundCloud
Zuvor im Security und Enterprise Umfeld t¨tig gewesen
a
UNIX user/admin seit vielen Jahren
Twitter: twitter.com/jaycieh
SoundCloud: soundcloud.com/jaycieh
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
7. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About SoundCloud
Sharing Music
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
8. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About SoundCloud
Sharing Music
Etwa 3 Millionen User
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
9. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About SoundCloud
Sharing Music
Etwa 3 Millionen User
Hauptsitz in Berlin
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
10. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
About SoundCloud
Sharing Music
Etwa 3 Millionen User
Hauptsitz in Berlin
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
11. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
12. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Der SysOp wird zum DevOp
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
13. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Der SysOp wird zum DevOp
Schnelleres Scaling
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
14. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Der SysOp wird zum DevOp
Schnelleres Scaling
Weniger Manpower
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
15. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Der SysOp wird zum DevOp
Schnelleres Scaling
Weniger Manpower
Weniger Fehler
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
16. About
Wozu Automatisierung?
Chef
Examples
Search
DEMO
Wozu Automatisierung?
Konsistenz
/etc/hosts, User Erstellung, Anpassen von config Variablen
rapid development
Hosts werden ferngesteuert
Der SysOp wird zum DevOp
Schnelleres Scaling
Weniger Manpower
Weniger Fehler
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
17. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Was ist Chef?
Config Management (Wie z.B. Puppet, CFengine.. etc.)
Service Management (regeln vom Starten + Stoppen von
services)
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
18. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Was ist Chef?
Config Management (Wie z.B. Puppet, CFengine.. etc.)
Service Management (regeln vom Starten + Stoppen von
services)
Automatisierungs Management
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
19. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Was ist Chef?
Config Management (Wie z.B. Puppet, CFengine.. etc.)
Service Management (regeln vom Starten + Stoppen von
services)
Automatisierungs Management
Komplett in Ruby geschrieben (inklusive aller cookbooks)
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
20. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Was ist Chef?
Config Management (Wie z.B. Puppet, CFengine.. etc.)
Service Management (regeln vom Starten + Stoppen von
services)
Automatisierungs Management
Komplett in Ruby geschrieben (inklusive aller cookbooks)
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
21. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
22. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
23. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
CouchDB
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
24. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
CouchDB
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
25. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Nodes, Clients, Data Bags und Utilities
Nodes - sind Objekte, in dem Fall der Infrastruktur: Server
Clients - definieren den Zugang zu Nodes, Attributen und
Data Bags
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
26. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Nodes, Clients, Data Bags und Utilities
Nodes - sind Objekte, in dem Fall der Infrastruktur: Server
Clients - definieren den Zugang zu Nodes, Attributen und
Data Bags
Data Bags - beinhalten Daten die universell
wiederverwendbar sind
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
27. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Nodes, Clients, Data Bags und Utilities
Nodes - sind Objekte, in dem Fall der Infrastruktur: Server
Clients - definieren den Zugang zu Nodes, Attributen und
Data Bags
Data Bags - beinhalten Daten die universell
wiederverwendbar sind
Utilities - stellen den Zugang zu der Management
Infrastruktur her
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
28. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Nodes, Clients, Data Bags und Utilities
Nodes - sind Objekte, in dem Fall der Infrastruktur: Server
Clients - definieren den Zugang zu Nodes, Attributen und
Data Bags
Data Bags - beinhalten Daten die universell
wiederverwendbar sind
Utilities - stellen den Zugang zu der Management
Infrastruktur her
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
29. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Utilities
Knife - CLI Programm zum Steuern von Chef
Web Frontend - Ein Web frontend zum benutzen von Chef
Zugang fuer Kunden, eingeschraenkter Zugriff zum Lesen
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
30. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Utilities
Knife - CLI Programm zum Steuern von Chef
Web Frontend - Ein Web frontend zum benutzen von Chef
Zugang fuer Kunden, eingeschraenkter Zugriff zum Lesen
Shef - IRB console fuer Chef zum interaktiven
Masseneditieren
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
31. About
Wozu Automatisierung? Was ist Chef?
Chef Architektur
Examples Objekte
Search Utilities
DEMO
Utilities
Knife - CLI Programm zum Steuern von Chef
Web Frontend - Ein Web frontend zum benutzen von Chef
Zugang fuer Kunden, eingeschraenkter Zugriff zum Lesen
Shef - IRB console fuer Chef zum interaktiven
Masseneditieren
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
32. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Cookbooks
ls -lR sudo/
P r o j e c t s / system / cookbooks / sudo :
t o t a l 24
d rw x r−x r−x 2 f r e d e r i c f r e d e r i c 4096 Nov 30 11:45 attributes
−rw−r− −r− 1 f r e d e r i c f r e d e r i c 1801
− Mar 9 08:56 metadata . j s o n
−rw−r− −r− 1 f r e d e r i c f r e d e r i c
− 961 Dec 7 11:28 metadata . rb
−rw−r− −r− 1 f r e d e r i c f r e d e r i c 1801
− Nov 30 11:45 README. md
d rw x r−x r−x 2 f r e d e r i c f r e d e r i c 4096 Nov 30 11:45 recipes
d rw x r−x r−x 3 f r e d e r i c f r e d e r i c 4096 Nov 30 11:45 templates
P r o j e c t s / system / cookbooks / sudo / a t t r i b u t e s :
total 4
−rw−r− −r− 1 f r e d e r i c f r e d e r i c 744 Nov 30 1 1 : 4 5 d e f a u l t . r b
−
P r o j e c t s / system / cookbooks / sudo / r e c i p e s :
total 4
−rw−r− −r− 1 f r e d e r i c f r e d e r i c 906 Nov 30 1 1 : 4 5 d e f a u l t . r b
−
P r o j e c t s / system / cookbooks / sudo / t e m p l a t e s :
total 4
d rw x r−x r−x 2 f r e d e r i c f r e d e r i c 4096 Feb 9 1 4 : 1 5 d e f a u l t
P r o j e c t s / system / cookbooks / sudo / t e m p l a t e s / d e f a u l t :
total 4
−rw−r− −r− 1 f r e d e r i c f r e d e r i c 780 Feb 9 1 4 : 1 5 s u d o e r s . e r b
−
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
33. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Recipes
Ein einfaches Recipe:
cat sudo/recipes/default.rb
#
# Cookbook Name : : s u d o
# Recipe : : d e f a u l t
#
p a c k a g e ” s u d o ” do
a c t i o n : upgrade
end
t e m p l a t e ” / e t c / s u d o e r s ” do
source ” sudoers . erb ”
mode 0644
end
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
34. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Recipes
Ein Recipe das Attributes nutzt:
cat sudo/recipes/default.rb
#
## Cookbook Name : : s u d o
## R e c i p e : : d e f a u l t
##
#
p a c k a g e ” s u d o ” do
a c t i o n : upgrade
end
t e m p l a t e ” / e t c / s u d o e r s ” do
source ” sudoers . erb ”
mode 0644
variables (
: s u d o e r s g r o u p s = node [ : a u t h o r i z a t i o n ] [ : s u d o ] [ : g r o u p s ] ,
>
: s u d o e r s u s e r s = node [ : a u t h o r i z a t i o n ] [ : s u d o ] [ : u s e r s ]
>
)
end
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
35. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Node Attributes
JSON
drei Prioritaeten
default
die default variable
normal
ueberschreibt default
override
ueberschreibt alles
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
36. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Node Attributes
knife node show
test.host.name.de
{
”name ” : ” t e s t . h o s t . name . de ” ,
JSON ” j s o n c l a s s ” : ” C h e f : : Node ” ,
” automatic ”: {
drei Prioritaeten ” asset ”: {
}
default },
” normal ” : {
die default variable },
” c h e f t y p e ” : ” node ” ,
normal ” default ”: {
ueberschreibt default ” asset ”: {
}
override },
” override ”: {
ueberschreibt alles ” asset ”: {
}
},
” r u n l i s t ”: [
]
}
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
37. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Node Attributes
knife node show
test.host.name.de
{
”name ” : ” t e s t . h o s t . name . de ” ,
JSON ” j s o n c l a s s ” : ” C h e f : : Node ” ,
” automatic ”: {
drei Prioritaeten ” asset ”: {
}
default },
” normal ” : {
die default variable },
” c h e f t y p e ” : ” node ” ,
normal ” default ”: {
ueberschreibt default ” asset ”: {
}
override },
” override ”: {
ueberschreibt alles ” asset ”: {
}
},
” r u n l i s t ”: [
]
}
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
38. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Node Attributes
cat sudo/attributes/default.rb
#
# Cookbook Name : : s u d o
# Attribute F i le : : sudoers
#
d e f a u l t [ : a u t h o r i z a t i o n ] [ : s u d o ] [ : g r o u p s ] = A r r a y . new
d e f a u l t [ : a u t h o r i z a t i o n ] [ : s u d o ] [ : u s e r s ] = A r r a y . new
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
39. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Roles
Roles aggregieren Recipes und Attribute:
cat roles/webserver.rb
name ” w e b s e r v e r ”
d e s c r i p t i o n ” Webserver ”
r u n l i s t ” r e c i p e [ nginx : : d e f a u l t ]” ,
” r e c i p e [ nginx : : monitor ]” ,
” r e c i p e [ php : : d e f a u l t ] ” ,
” r e c i p e [ mysuperwebapp ] ”
default attributes (
’ nagios ’ = {>
’ services ’ = {>
’ webserver ’ = {
>
” Nginx ” = { ” check command”=>”c h e c k n g i n x ” }
>
}
}
})
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
40. About
Cookbooks
Wozu Automatisierung?
Cookbooks
Chef
Node Attributes
Examples
Roles
Search
Data Bags
DEMO
Data Bags
Speichern von Daten die Node uebergreifend verwendet
werden
knife data bag users frederic
{
foO@bar . com>”,
” nagios ”: {
” contact ”: {
” sms ” : ”123456789 @ e m a i l 2 s m s g a t e w a y . domain ”
}
},
” s h e l l ” : ”/ u s r / b i n / z s h ” ,
” s s h k e y s ” : ” s s h−r s a AAAAB3NzaC1yc2EAAAADAQABAAABAQDaq4CASUCsnEedaOxGCB4AsfS1DaNay/21 t
}
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
41. About
Wozu Automatisierung?
Chef
Search
Examples
Search
DEMO
Die Suche in Chef
Nach jedem Objekt in Chef kann gesucht werden:
Nodes, Clients
Roles, Recipes
Attributes
und vieles mehr
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
42. About
Wozu Automatisierung?
Chef
Search
Examples
Search
DEMO
Die Suche nach Dingen
knife search node “model name:Intel*“
{
” total ”: 1 ,
” start ”: 0 ,
” rows ” : [
{
” r u n l i s t ”: [
” r o l e [ base ]” ,
” r o l e [1337 r o l e ]” ,
” r e c i p e [ apache ] ”
],
” i d ” : ” t e s t . h o s t . name . de ”
}
]
}
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
43. About
Wozu Automatisierung?
Chef
DEMO
Examples
Search
DEMO
STOP! DEMO TIME!
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
44. About
Wozu Automatisierung?
Chef
DEMO
Examples
Search
DEMO
Weiterfuehrende Links
http://www.opscode.com/
http://wiki.opscode.com/display/chef/
http://www.ruby-lang.org/en/
http://blog.opscode.com/
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
45. About
Wozu Automatisierung?
Chef
DEMO
Examples
Search
DEMO
The End
Danke fuer die Aufmerksamkeit!
Fragen?
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u