CLOUD SAVVY
BROWN BAG: Chef in
PRODUCTION
Hart Hoover @hhoover
CLOUD SAVVY !2
CLOUD SAVVY !3
ENTERPRISE
CLOUD SAVVY !4
CHEF SOLO
CLOUD SAVVY !5OPEN SOURCE CHEF
CLOUD SAVVY
TOOLS!
!6
• Git/GitHub • Berkshelf• Vagrant• Vagrant Plugins• Test Kitchen• Foodcritic
CLOUD SAVVY
CHEF SeRVER ANATOMY
CLOUD SAVVY !8
NGINX
ErchefWebUI Bookshelf
SOLR PostgreSQL Cookbooks
MQ
API
CLOUD SAVVY
YOUR OWN CHEF SERVER
!9
INSTALL THE PACKAGE
CLOUD SAVVY
YOUR OWN CHEF SERVER
!10
USE RACKSPACE DEPLOYMENTS
(HEAT/CHECKMATE)
CLOUD SAVVY
YOUR OWN CHEF SERVER
!11
USE CHEF-SOLO TO DEPLOY CHEF-SERVER
CLOUD SAVVY
PACKAGES
CLOUD SAVVY
REQUIREMENTS
!13
OPERATING SYSTEM: !
UBUNTU 12.04 OR
CENTOS 6.3
CLOUD SAVVY
REQUIREMENTS
!14
FQDN
CLOUD SAVVY
UBUNTU 12.04
!15
OMNIBUS
curl -‐L https://www.opscode.com/chef/install.sh | sudo bash
CLOUD SAVVY
UBUNTU 12.04
!16
IS THE CHEF SERVER RUNNING?
CLOUD SAVVY !17
CLOUD SAVVY
MANAGING SERVICES
!18
$ chef-server-ctl
CLOUD SAVVY
Chef-Server-CTL
!19
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!20
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!21
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!22
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!23
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!24
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!25
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
Chef-Server-CTL
!26
$ chef-server-ctl [OPTION]
reconfigurehelp
restart [service]start [service]stop [service]
status [service]tail [service]test --all
CLOUD SAVVY
START ALL THE THINGS
!27
$ chef-server-ctl reconfigure
CLOUD SAVVY !28
CLOUD SAVVY
DEPLOYMENTS
CLOUD SAVVY !30
CLOUD SAVVY !31
CLOUD SAVVY !32
CLOUD SAVVY !33
CLOUD SAVVY
CHEF ON CHEF
CLOUD SAVVY
CHEF-SOLO METHOD
!35
https://github.com/opscode-cookbooks/chef-server
CLOUD SAVVY
ATTRIBUTES
!36
api_fqdn
CLOUD SAVVY
ATTRIBUTES
!37
version
CLOUD SAVVY
BOOTSTRAP YOUR SERVER
!38
INSTALL CHEF SOLO
curl -‐L https://www.opscode.com/chef/install.sh | sudo bash
(OMNIBUS… AGAIN)
CLOUD SAVVY
BOOTSTRAP YOUR SERVER
!39
CREATE DIRECTORIES
$ mkdir -p /var/chef/cache$ mkdir -p /var/chef/cookbooks/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
CLOUD SAVVY
BOOTSTRAP YOUR SERVER
!41
RUN CHEF-SOLO
$ chef-solo -o 'recipe[chef-server::default]'
CLOUD SAVVY !42
CLOUD SAVVY !43
CLOUD SAVVY !44
https://github.com/opscode-cookbooks/chef-server
CLOUD SAVVY
Monitoring WITH
NEW RELIC
CLOUD SAVVY !46
INFRASTRUCTURE MONITORING
CLOUD SAVVY !47
APPLICATION MONITORING
CLOUD SAVVY !48
PERFORMANCE MONITORING
CLOUD SAVVY
USE BERKSHELF!
!49
site :opscode!
cookbook ‘newrelic’
CLOUD SAVVY
ATTRIBUTES
!50
attributes/default.rb
default['newrelic']['server_monitoring']['license'] = "CHANGE_ME" default['newrelic']['application_monitoring']['license'] = "CHANGE_ME"
CLOUD SAVVY
YOUR MONITORING RUN LIST:
!51
recipe[newrelic]
SET YOUR ATTRIBUTES!
CLOUD SAVVY
THANK YOU!