1. About
Wozu Automatisierung?
Chef
Examples
Search
Automatisierungstechnologien f¨r die Infrastruktur
u
mit Chef
Frederic Jaeckel (SoundCloud)
5. April 2011
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
2. About
Wozu Automatisierung?
Chef
Examples
Search
Inhaltsverzeichnis
1 About
2 Wozu Automatisierung?
3 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
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
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
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
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
About SoundCloud
Sharing Music
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
8. About
Wozu Automatisierung?
Chef
Examples
Search
About SoundCloud
Sharing Music
Etwa 3 Millionen User
50.000 Twitter und Facebook shares taeglich
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
9. About
Wozu Automatisierung?
Chef
Examples
Search
About SoundCloud
Sharing Music
Etwa 3 Millionen User
50.000 Twitter und Facebook shares taeglich
Hauptsitz in Berlin
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
10. About
Wozu Automatisierung?
Chef
Examples
Search
About SoundCloud
Sharing Music
Etwa 3 Millionen User
50.000 Twitter und Facebook shares taeglich
Hauptsitz in Berlin
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
11. About
Wozu Automatisierung?
Chef
Examples
Search
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
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
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
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
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
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? Architektur
Chef Objekte
Examples Utilities
Search
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
18. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
19. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
CouchDB
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
20. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
Chef Komponenten
Ruby Merb Webserver (API + Web)
RabbitMQ
Solr Search
CouchDB
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
21. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
22. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
23. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
24. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
25. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
26. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
27. About
Wozu Automatisierung? Architektur
Chef Objekte
Examples Utilities
Search
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
28. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
29. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
30. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
31. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
32. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
33. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
34. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
35. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
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
36. About Cookbooks
Wozu Automatisierung? Cookbooks
Chef Node Attributes
Examples Roles
Search Data Bags
Data Bags
Speichern von Daten die Node uebergreifend verwendet
werden
Data Bags koennen verschluesselt werden
knife data bag passwords mysql
{
” i d ” : ” mysql ” ,
” p a s s ” : ”trywgFA6R70NO28PNhMpGhEvKBZuxouemnbnAUQsUyo=n ” ,
” u s e r ” : ” e /p+8WJYVHY9fHcEgAAReg==n”
}
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
Data Bags
knife data bag show –secret file /tmp/my data bag key passwords
mysql
{
” i d ” : ” mysql ” ,
” pass ”: ” thesecret123 ” ,
” user ”: ” fred ”
}
Im Cookbook
m y s q l c r e d s = Chef : : EncryptedDataBagItem . l o a d ( ” passwords ” , ” mysql ” , s e c r e t )
m y s q l c r e d s [ ” p a s s ” ] # w i l l be d e c r y p t e d
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
38. About
Wozu Automatisierung?
Chef Search
Examples
Search
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
39. About
Wozu Automatisierung?
Chef Search
Examples
Search
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
40. About
Wozu Automatisierung?
Chef Search
Examples
Search
Weiterfuehrende Links
http://www.opscode.com/
http://wiki.opscode.com/display/chef/
http://www.ruby-lang.org/en/
http://blog.opscode.com/
http://soundcloud.com/jobs (We’re hiring ;)
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u
41. About
Wozu Automatisierung?
Chef Search
Examples
Search
The End
Danke fuer die Aufmerksamkeit!
Fragen?
Frederic Jaeckel (SoundCloud) Automatisierungstechnologien f¨r die Infrastruktur mit Chef
u