Download pdf - Deploying a Chef Server

Transcript
Page 1: Deploying a Chef Server

CLOUD SAVVY

BROWN BAG: Chef in

PRODUCTION

Hart Hoover @hhoover

Page 2: Deploying a Chef Server

CLOUD SAVVY !2

Page 3: Deploying a Chef Server

CLOUD SAVVY !3

ENTERPRISE

Page 4: Deploying a Chef Server

CLOUD SAVVY !4

CHEF SOLO

Page 5: Deploying a Chef Server

CLOUD SAVVY !5OPEN SOURCE CHEF

Page 6: Deploying a Chef Server

CLOUD SAVVY

TOOLS!

!6

• Git/GitHub • Berkshelf• Vagrant• Vagrant Plugins• Test Kitchen• Foodcritic

Page 7: Deploying a Chef Server

CLOUD SAVVY

CHEF SeRVER ANATOMY

Page 8: Deploying a Chef Server

CLOUD SAVVY !8

NGINX

ErchefWebUI Bookshelf

SOLR PostgreSQL Cookbooks

MQ

API

Page 9: Deploying a Chef Server

CLOUD SAVVY

YOUR OWN CHEF SERVER

!9

INSTALL THE PACKAGE

Page 10: Deploying a Chef Server

CLOUD SAVVY

YOUR OWN CHEF SERVER

!10

USE RACKSPACE DEPLOYMENTS

(HEAT/CHECKMATE)

Page 11: Deploying a Chef Server

CLOUD SAVVY

YOUR OWN CHEF SERVER

!11

USE CHEF-SOLO TO DEPLOY CHEF-SERVER

Page 12: Deploying a Chef Server

CLOUD SAVVY

PACKAGES

Page 13: Deploying a Chef Server

CLOUD SAVVY

REQUIREMENTS

!13

OPERATING SYSTEM: !

UBUNTU 12.04 OR

CENTOS 6.3

Page 14: Deploying a Chef Server

CLOUD SAVVY

REQUIREMENTS

!14

FQDN

Page 15: Deploying a Chef Server

CLOUD SAVVY

UBUNTU 12.04

!15

OMNIBUS

curl  -­‐L  https://www.opscode.com/chef/install.sh  |  sudo  bash

Page 16: Deploying a Chef Server

CLOUD SAVVY

UBUNTU 12.04

!16

IS THE CHEF SERVER RUNNING?

Page 17: Deploying a Chef Server

CLOUD SAVVY !17

Page 18: Deploying a Chef Server

CLOUD SAVVY

MANAGING SERVICES

!18

$ chef-server-ctl

Page 19: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!19

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 20: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!20

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 21: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!21

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 22: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!22

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 23: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!23

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 24: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!24

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 25: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!25

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 26: Deploying a Chef Server

CLOUD SAVVY

Chef-Server-CTL

!26

$ chef-server-ctl [OPTION]

reconfigurehelp

restart [service]start [service]stop [service]

status [service]tail [service]test --all

Page 27: Deploying a Chef Server

CLOUD SAVVY

START ALL THE THINGS

!27

$ chef-server-ctl reconfigure

Page 28: Deploying a Chef Server

CLOUD SAVVY !28

Page 29: Deploying a Chef Server

CLOUD SAVVY

DEPLOYMENTS

Page 30: Deploying a Chef Server

CLOUD SAVVY !30

Page 31: Deploying a Chef Server

CLOUD SAVVY !31

Page 32: Deploying a Chef Server

CLOUD SAVVY !32

Page 33: Deploying a Chef Server

CLOUD SAVVY !33

Page 34: Deploying a Chef Server

CLOUD SAVVY

CHEF ON CHEF

Page 35: Deploying a Chef Server

CLOUD SAVVY

CHEF-SOLO METHOD

!35

https://github.com/opscode-cookbooks/chef-server

Page 36: Deploying a Chef Server

CLOUD SAVVY

ATTRIBUTES

!36

api_fqdn

Page 37: Deploying a Chef Server

CLOUD SAVVY

ATTRIBUTES

!37

version

Page 38: Deploying a Chef Server

CLOUD SAVVY

BOOTSTRAP YOUR SERVER

!38

INSTALL CHEF SOLO

curl  -­‐L  https://www.opscode.com/chef/install.sh  |  sudo  bash

(OMNIBUS… AGAIN)

Page 39: Deploying a Chef Server

CLOUD SAVVY

BOOTSTRAP YOUR SERVER

!39

CREATE DIRECTORIES

$ mkdir -p /var/chef/cache$ mkdir -p /var/chef/cookbooks/chef-server

Page 40: Deploying a Chef Server

CLOUD SAVVY

BOOTSTRAP YOUR SERVER

!40

GET THE COOKBOOK

$ wget -qO- https://github.com/opscode-cookbooks/chef-server/archive/master.tar.gz | tar xvzC /var/chef/cookbooks/chef-server --strip-components=1

Page 41: Deploying a Chef Server

CLOUD SAVVY

BOOTSTRAP YOUR SERVER

!41

RUN CHEF-SOLO

$ chef-solo -o 'recipe[chef-server::default]'

Page 42: Deploying a Chef Server

CLOUD SAVVY !42

Page 43: Deploying a Chef Server

CLOUD SAVVY !43

Page 44: Deploying a Chef Server

CLOUD SAVVY !44

https://github.com/opscode-cookbooks/chef-server

Page 45: Deploying a Chef Server

CLOUD SAVVY

Monitoring WITH

NEW RELIC

Page 46: Deploying a Chef Server

CLOUD SAVVY !46

INFRASTRUCTURE MONITORING

Page 47: Deploying a Chef Server

CLOUD SAVVY !47

APPLICATION MONITORING

Page 48: Deploying a Chef Server

CLOUD SAVVY !48

PERFORMANCE MONITORING

Page 49: Deploying a Chef Server

CLOUD SAVVY

USE BERKSHELF!

!49

site :opscode!

cookbook ‘newrelic’

Page 50: Deploying a Chef Server

CLOUD SAVVY

ATTRIBUTES

!50

attributes/default.rb

default['newrelic']['server_monitoring']['license']  =  "CHANGE_ME"  default['newrelic']['application_monitoring']['license']  =  "CHANGE_ME"

Page 51: Deploying a Chef Server

CLOUD SAVVY

YOUR MONITORING RUN LIST:

!51

recipe[newrelic]

SET YOUR ATTRIBUTES!

Page 52: Deploying a Chef Server

CLOUD SAVVY

THANK YOU!