Slide 1

Slide 1 text

Chef cd ~/scripts && find . -type f -name "*.sh" -exec rm -rf {} \;

Slide 2

Slide 2 text

@mehlah

Slide 3

Slide 3 text

You’ve got a cloud. Now what ?

Slide 4

Slide 4 text

a ruby-based system integration framework designed to bring the benefits of configuration management to your entire infrastructure Chef is

Slide 5

Slide 5 text

Huh ?

Slide 6

Slide 6 text

a Configuration management system a System integration platform an API for your entire infrastructure

Slide 7

Slide 7 text

1st release Jan 15, 2009 Initial commit Mar 05, 2008

Slide 8

Slide 8 text

Chef Solo

Slide 9

Slide 9 text

Awesome!

Slide 10

Slide 10 text

Awesome! Bummer! We’ve only scratched the surface

Slide 11

Slide 11 text

Chef Server

Slide 12

Slide 12 text

source: http://wiki.opscode.com/display/chef/Architecture+Introduction

Slide 13

Slide 13 text

source: http://wiki.opscode.com/display/chef/Architecture Server Architecture

Slide 14

Slide 14 text

Disclaimer: The previous slide is here only to add an engineering touch to this talk. You can safely ignore it !

Slide 15

Slide 15 text

In plain words 1. Clients talks to a Chef server, and asks for their configuration. 2. Clients run ruby code on themselves, to converge to the aimed configuration

Slide 16

Slide 16 text

A lot of layers in Chef have attributes : Environments, Nodes, Roles and Cookbooks.

Slide 17

Slide 17 text

Chef groups Nodes into Environments. You can have as many environments as you like. Nodes have one or more Roles applied to them. A Role is comprised of one or more Cookbooks.

Slide 18

Slide 18 text

Cookbooks are comprised of one of more Recipes, Templates, Files and more.

Slide 19

Slide 19 text

Tadaaaaa!

Slide 20

Slide 20 text

Cool stuffs

Slide 21

Slide 21 text

{ "id": "mehlah", "name": "Mehdi Lahmam B.", "uid": "2001", "group": "www-data", "home": "/home/mehlah", "roles": [ "unix", "sudo" ], "ssh_keys": [ "akeystring" ] } Data bags

Slide 22

Slide 22 text

Search search(:node, "*:*") {|n| nodes << n } through Data Bags, Roles, Nodes and more... knife search role "name:production*" knife search node 'platform:ubuntu' knife search admins 'id:christophe' search(:node, 'dmi_system_manufacturer:Dell*').each do |node| puts node[:dmi][:system][:serial_number] + "\t" + node[:fqdn] end Examples XJS1NF1 www1.example.org XJS1NF2 www2.example.org XJS1NF3 www3.example.org

Slide 23

Slide 23 text

Not so cool stuffs

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Thanks!

Slide 26

Slide 26 text

Typeface: Arvo Notes on design Colors: #FF9900 #3299BB #424242 #E9E9E9