SlideShare a Scribd company logo
Set Up a Node &
Write a Cookbook
Chef Fundamentals Webinar Series
training@opscode.com
Nathen Harvey
• Technical Community Manager at Opscode
• Co-host of the Food Fight Show Podcast
• @nathenharvey
• nharvey@opscode.com
Node Setup
Setup a Node to manage
Lesson Objectives
• After completing the lesson, you will be able to
• Install Chef nodes using “knife bootstrap”
• Explain how knife bootstrap configures a node to
use the Organization created in the previous
section
• Explain the basic configuration needed to run chefclient
Nodes
NODES
Nodes
• Nodes represent the servers in your infrastructure
these may be
• Physical or virtual servers
• Hardware that you own
• Compute instances in a public or private cloud
We Have No Nodes Yet
Training Node
• The labs require a node to be managed
• We allow for four different options
• Bring your own Node
• Use Vagrant from the Starter Kit
• Launch an instance of a public AMI on EC2
• Use the Chef Fundamentals training lab
learnchef.com
Training Lab Requirements
BETA Chef Training Lab
• Login to the Lab
• https://use.cloudshare.com/
• Make sure your environment is ready
• Runtime: 24 Hours
• Auto-suspend after: 1 Hour
• Storage time: 7 Days
Your Node
• Hostname or IP Address
• SSH Username
• SSH Password
• SSH Port (default is 22)
• SSH credentials for the Training Lab & the EC2 AMI
•username: opscode
•password: opscode
Checkpoint
• At this point you should have
• One virtual machine (VM) or server that you’ll use
for the lab exercises
• The IP address or public hostname
• An application for establishing an ssh connection
• sudo or root permissions on the VM
Checkpoint
NODES

Bootstrap a Node
Bootstrap the Target Instance
$ knife bootstrap --help

knife bootstrap FQDN (options)
--sudo
-x, --ssh-user USERNAME
-P, --ssh-password PASSWORD
-p, --ssh-port PORT
-N, --node-name NAME
-r, --run-list RUN_LIST

Execute the bootstrap via sudo
The ssh username
The ssh password
The ssh port
The Chef node name for your new node
Comma separated list of roles/recipes to apply
knife bootstrap
• HOSTNAME or IP Address of your machine
•--sudo
•-x YOUR_SSH_USERNAME
•-P YOUR_SSH_PASSWORD
•-p YOUR_SSH_PORT (defaults to 22)
•-N "target1"
knife bootstrap - Lab or AMI
• HOSTNAME or IP Address of your machine
•--sudo
•-x opscode
•-P opscode
•-N "target1"
• No need for -p, uses the default ssh port
Bootstrap the Target Instance
$ knife bootstrap IPADDRESS --sudo -x opscode -P opscode -N “target1”

Bootstrapping Chef on ec2-54-211-119-145.compute-1.amazonaws.com
ec2-54-211-119-145.compute-1.amazonaws.com knife sudo password:
Enter your password:
...
...
ec2-54-211-119-145.compute-1.amazonaws.com Converging 0 resources
ec2-54-211-119-145.compute-1.amazonaws.com
ec2-54-211-119-145.compute-1.amazonaws.com Chef Client finished, 0
resources updated
ec2-54-211-119-145.compute-1.amazonaws.com
local workstation

managed node
(VM)
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

local workstation

managed node
(VM)
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

SSH!
local workstation

managed node
(VM)
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

SSH!
managed node
(VM)

local workstation

chef_server_url
validation_client_name
validation_key
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

SSH!
managed node
(VM)

local workstation

Hosted Enterprise Chef
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

SSH!
managed node
(VM)

local workstation

Hosted Enterprise Chef

bash -c '
install chef
configure client
run chef'
$ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1

SSH!
managed node
(VM)

local workstation

chef-client
Hosted Enterprise Chef
What just happened?
• Chef and all of its dependencies installed via an
operating system-specific package ("omnibus installer")
• Installation includes
• The Ruby language - used by Chef
• knife - Command line tool for administrators
• chef-client - Client application
• ohai - System profiler
• ...and more
View Node on Chef Server
• Login to your Hosted Enterprise Chef
View Node on Chef Server
View Node on Chef Server
Node
• The node is registered with Chef Server
• The Chef Server displays information about the node
• This information comes from Ohai
Ohai
"languages": {
"ruby": {
},
"perl": {
"version": "5.14.2",
"archname": "x86_64linux-gnu-thread-multi"
},
"python": {
"version": "2.7.3",
"builddate": "Aug 1
2012, 05:14:39"
},
"php": {
"version":
"5.3.10-1ubuntu3.6",
"builddate": "(cli)
(built: Mar"
}
},

"kernel": {
"name": "Linux", "release":
"3.2.0-32-virtual",
"version": "#51-Ubuntu SMP Wed
Sep 26 21:53:42 UTC 2012",
"machine": "x86_64",
"modules": {
"isofs": {
"size": "40257",
"refcount": "0"
},
"acpiphp": {
"size": "24231",
"refcount": "0"
}
},
"os": "GNU/Linux"
},
"os": "linux",
"os_version": "3.2.0-32-virtual",
"ohai_time": 1369328621.3456137,

"network": {
"interfaces": {
"lo": {
"mtu": "16436",
"flags": [
"LOOPBACK", “UP","LOWER_UP"
],
"encapsulation": "Loopback",
"addresses": {
"127.0.0.1": {
"family": "inet",
"netmask": "255.0.0.0",
"scope": "Node"
},
"::1": {
"family": "inet6",
"scope": "Node"
}
},
},
"eth0": {
"type": "eth",
"number": "0",
Checkpoint
Write a Cookbook
Packages, Cookbook Files, and Services
Lesson Objectives
• After completing the lesson, you will be able to
• Describe what a cookbook is
• Create a new cookbook
• Explain what a recipe is
• Describe how to use the package, service, and
cookbook_file resources
• Upload a cookbook to the Chef Server
• Explain what a run list is, and how to set it for a
node
What is a cookbook?
• A cookbook is like a “package” for Chef recipes.
• It contains all the recipes, files, templates, libraries,
etc. required to configure a portion of your
infrastructure
• Typically they map 1:1 to a piece of software or
functionality.
The Problem and the Success Criteria
• The Problem: We need a web server configured to
serve up our home page.
• Success Criteria: We can see the homepage in a
web browser.
Required steps
• Install Apache
• Start the service, and make sure it will start when the
machine boots
• Write out the home page
Exercise: Create a new Cookbook
$ knife cookbook create apache

**
**
**
**

Creating
Creating
Creating
Creating

cookbook apache
README for cookbook: apache
CHANGELOG for cookbook: apache
metadata for cookbook: apache
Edit the default recipe
OPEN IN EDITOR: cookbooks/apache/recipes/default.rb

#
#
#
#
#
#
#
#

Cookbook Name:: apache
Recipe:: default
Copyright 2013, YOUR_COMPANY_NAME
All rights reserved - Do Not Redistribute
Exercise: Add a package resource to install Apache to the default
recipe
OPEN IN EDITOR: cookbooks/apache/recipes/default.rb
#
#
#
#
#
#
#
#

Cookbook Name:: apache
Recipe:: default
Copyright 2013, YOUR_COMPANY_NAME
All rights reserved - Do Not Redistribute

package "apache2" do
action :install
end
SAVE FILE!
Chef Resources
package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Chef Resources
• Have a type

package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Chef Resources
• Have a type
• Have a name

package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Chef Resources
• Have a type
• Have a name
• Have parameters

package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Chef Resources
• Have a type
• Have a name
• Have parameters
• Take action to put the
resource into the
desired state

package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Chef Resources
• Have a type
• Have a name
• Have parameters
• Take action to put the
resource into the
desired state
• Can send notifications
to other resources

package "haproxy" do
action :install
end
template "/etc/haproxy/haproxy.cfg" do
source "haproxy.cfg.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[haproxy]"
end
service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
So the resource we just wrote...
package "apache2" do
action :install
end
So the resource we just wrote...
• Is a package resource

package "apache2" do
action :install
end
So the resource we just wrote...
• Is a package resource
• Whose name is
apache2

package "apache2" do
action :install
end
So the resource we just wrote...
• Is a package resource
• Whose name is
apache2
• With an install action

package "apache2" do
action :install
end
Notice we didn’t say how to install the package
• Resources are declarative - that means we say
what we want to have happen, rather than how
• Chef uses the platform the node is running to
determine the correct provider for a resource
Exercise: Add a service resource to ensure the service is started
and enabled at boot
OPEN IN EDITOR: cookbooks/apache/recipes/default.rb

...
# All rights reserved - Do Not Redistribute
#
package "apache2" do
action :install
end
service "apache2" do
action [ :enable, :start ]
end
SAVE FILE!
So the resource we just wrote...
service "apache2" do
action [ :enable, :start ]
end
So the resource we just wrote...
• Is a service resource
service "apache2" do
action [ :enable, :start ]
end
So the resource we just wrote...
• Is a service resource
• Whose name is
apache2

service "apache2" do
action [ :enable, :start ]
end
So the resource we just wrote...
• Is a service resource
• Whose name is
apache2
• With two actions:
start and enable

service "apache2" do
action [ :enable, :start ]
end
Order Matters
• Resources are
executed in order

1st

2nd

• Body Level One
• Body Level Two
template "/etc/haproxy/haproxy.cfg" do
• Body Level Three
source "haproxy.cfg.erb"
owner "root"
•"root" Level Four
Body
group
mode "0644"
• :restart, "service[haproxy]"
notifies Body Level Five
package "haproxy" do
action :install
end

end
3rd

service "haproxy" do
supports :restart => :true
action [:enable, :start]
end
Exercise: Add a cookbook_file resource to copy the home page in
place
OPEN IN EDITOR: cookbooks/apache/recipes/default.rb

...
service "apache2" do
action [ :enable, :start ]
end
cookbook_file "/var/www/index.html" do
source "index.html"
mode "0644"
end

SAVE FILE!
So the resource we just wrote...
cookbook_file "/var/www/index.html" do
source "index.html"
mode "0644"
end
So the resource we just wrote...
• Is a cookbook_file
resource

cookbook_file "/var/www/index.html" do
source "index.html"
mode "0644"
end
So the resource we just wrote...
• Is a cookbook_file
resource
• Whose name is
/var/www/index.html

cookbook_file "/var/www/index.html" do
source "index.html"
mode "0644"
end
So the resource we just wrote...
• Is a cookbook_file
cookbook_file "/var/www/index.html"
resource
source "index.html"
mode "0644"
• Whose name is
end
/var/www/index.html
• With two parameters:
• source of index.html
• mode of “0644”

do
Full contents of the apache recipe
#
#
#
#
#
#
#
#

Cookbook Name:: apache
Recipe:: default
Copyright 2013, YOUR_COMPANY_NAME
All rights reserved - Do Not Redistribute

package "apache2" do
action :install
end
service "apache2" do
action [ :enable, :start ]
end
cookbook_file "/var/www/index.html" do
source "index.html"
mode "0644"
end
Exercise: Add index.html to your cookbook’s files/default directory
OPEN IN EDITOR: cookbooks/apache/files/default/index.html

<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>

SAVE FILE!
Exercise: Upload the cookbook
$ knife cookbook upload apache

Uploading apache
Uploaded 1 cookbook.

[0.1.0]
Run List
Enterprise
Chef

What policy sho
uld

I follow?
chef-client

Node

“recipe[apache]”
Update the Run List
• Login to Enterprise
Hosted Chef
• Select the "Nodes" tab
• Select your Node
• Edit the Run List
Update the Run List
• Drag
• Drop
• Save
Exercise: Run the chef-client on your test node
opscode@target1:~$ sudo chef-client
Starting Chef Client, version 11.4.4
[2013-06-25T04:20:22+00:00] INFO: *** Chef 11.4.4 ***
[2013-06-25T04:20:23+00:00] INFO: [inet6] no default interface, picking the first ipaddress
[2013-06-25T04:20:23+00:00] INFO: Run List is [recipe[apache]]
[2013-06-25T04:20:23+00:00] INFO: Run List expands to [apache]
[2013-06-25T04:20:23+00:00] INFO: Starting Chef Run for target1
[2013-06-25T04:20:23+00:00] INFO: Running start handlers
[2013-06-25T04:20:23+00:00] INFO: Start handlers complete.
resolving cookbooks for run list: ["apache"]
[2013-06-25T04:20:24+00:00] INFO: Loading cookbooks [apache]
Synchronizing Cookbooks:
[2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/recipes/default.rb in the cache.
[2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/recipes/tmp.rb in the cache.
[2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/CHANGELOG.md in the cache.
[2013-06-25T04:20:25+00:00] INFO: Storing updated cookbooks/apache/metadata.rb in the cache.
[2013-06-25T04:20:25+00:00] INFO: Storing updated cookbooks/apache/README.md in the cache.
- apache
Compiling Cookbooks...
Converging 3 resources
Recipe: apache::default
* package[apache2] action install[2013-06-25T04:20:25+00:00] INFO: Processing package[apache2] action install (apache::default line 9)
- install version 2.2.22-1ubuntu1 of package apache2
Exercise: Verify that the home page works
• Open a web browser
• Type in the the URL for your test node
Congratulate yourself!
• You have just written your first Chef cookbook!
• (clap!)
Next Week
• List the steps taken
by a chef-client
during a run
• Explain the basic
security model of
Chef
Thank You
• Nathen Harvey
• Technical Community Manager at Opscode
• @nathenharvey
• nharvey@opscode.com

More Related Content

What's hot (20)

Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Josh Padnick
 
Node object and roles - Fundamentals Webinar Series Part 3
Node object and roles - Fundamentals Webinar Series Part 3Node object and roles - Fundamentals Webinar Series Part 3
Node object and roles - Fundamentals Webinar Series Part 3
Chef
 
Automating Infrastructure with Chef
Automating Infrastructure with ChefAutomating Infrastructure with Chef
Automating Infrastructure with Chef
Jennifer Davis
 
Introduction to chef
Introduction to chefIntroduction to chef
Introduction to chef
Damith Kothalawala
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
Jennifer Davis
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015
Jennifer Davis
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
Chef
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
Chef Software, Inc.
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
John Ewart
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
devopsjourney
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
Bryan Berry
 
Chef fundamentals
Chef fundamentalsChef fundamentals
Chef fundamentals
Ygor Nascimento
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
Michael Goetz
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
Jonathan Weiss
 
Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Common configuration with Data Bags - Fundamentals Webinar Series Part 4Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Chef
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
Raimonds Simanovskis
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )
Pravin Mishra
 
Chef introduction
Chef introductionChef introduction
Chef introduction
FENG Zhichao
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Josh Padnick
 
Node object and roles - Fundamentals Webinar Series Part 3
Node object and roles - Fundamentals Webinar Series Part 3Node object and roles - Fundamentals Webinar Series Part 3
Node object and roles - Fundamentals Webinar Series Part 3
Chef
 
Automating Infrastructure with Chef
Automating Infrastructure with ChefAutomating Infrastructure with Chef
Automating Infrastructure with Chef
Jennifer Davis
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
Jennifer Davis
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015
Jennifer Davis
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
Chef
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
John Ewart
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
 
Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
Bryan Berry
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
Michael Goetz
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
Jonathan Weiss
 
Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Common configuration with Data Bags - Fundamentals Webinar Series Part 4Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Chef
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
Raimonds Simanovskis
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )
Pravin Mishra
 

Viewers also liked (14)

Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
Adam Jacob
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous Integration
Julian Dunn
 
Chef for beginners module 5
Chef for beginners   module 5Chef for beginners   module 5
Chef for beginners module 5
Chef
 
What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)
Julian Dunn
 
RawFoodGuide_v2
RawFoodGuide_v2RawFoodGuide_v2
RawFoodGuide_v2
Diana Chaplin
 
Food as medicine: using food to cure
Food as medicine: using food to cureFood as medicine: using food to cure
Food as medicine: using food to cure
Patrick Garrett, DC
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
D
 
Chef for beginners module 2
Chef for beginners   module 2Chef for beginners   module 2
Chef for beginners module 2
Chef
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
Dan Stine
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
Sanjeev Sharma
 
Non Verbal communication and use of body language expression
Non Verbal communication and use of body language expressionNon Verbal communication and use of body language expression
Non Verbal communication and use of body language expression
Deepak Agarwal
 
Verbal & Non-Verbal Communication
Verbal & Non-Verbal CommunicationVerbal & Non-Verbal Communication
Verbal & Non-Verbal Communication
Amit Jha
 
The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
Cloudera, Inc.
 
38 gestures of body language
38 gestures of body language38 gestures of body language
38 gestures of body language
melodeepop
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
Adam Jacob
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous Integration
Julian Dunn
 
Chef for beginners module 5
Chef for beginners   module 5Chef for beginners   module 5
Chef for beginners module 5
Chef
 
What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)What Makes a Good Chef Cookbook? (May 2014 Edition)
What Makes a Good Chef Cookbook? (May 2014 Edition)
Julian Dunn
 
Food as medicine: using food to cure
Food as medicine: using food to cureFood as medicine: using food to cure
Food as medicine: using food to cure
Patrick Garrett, DC
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
D
 
Chef for beginners module 2
Chef for beginners   module 2Chef for beginners   module 2
Chef for beginners module 2
Chef
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
Dan Stine
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
Sanjeev Sharma
 
Non Verbal communication and use of body language expression
Non Verbal communication and use of body language expressionNon Verbal communication and use of body language expression
Non Verbal communication and use of body language expression
Deepak Agarwal
 
Verbal & Non-Verbal Communication
Verbal & Non-Verbal CommunicationVerbal & Non-Verbal Communication
Verbal & Non-Verbal Communication
Amit Jha
 
38 gestures of body language
38 gestures of body language38 gestures of body language
38 gestures of body language
melodeepop
 
Ad

Similar to Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Authoring (20)

Introduction to Cooking with Chef
Introduction to Cooking with ChefIntroduction to Cooking with Chef
Introduction to Cooking with Chef
John Osborne
 
Configuration management with Chef
Configuration management with ChefConfiguration management with Chef
Configuration management with Chef
Juan Vicente Herrera Ruiz de Alejo
 
Learning chef
Learning chefLearning chef
Learning chef
Jonathan Carrillo
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
Pubudu Suharshan Perera
 
DevOps and Chef improve your life
DevOps and Chef improve your life DevOps and Chef improve your life
DevOps and Chef improve your life
Juan Vicente Herrera Ruiz de Alejo
 
Kickstarter - Chef Opswork
Kickstarter - Chef OpsworkKickstarter - Chef Opswork
Kickstarter - Chef Opswork
Hamza Waqas
 
Chef: Smart infrastructure automation
Chef: Smart infrastructure automationChef: Smart infrastructure automation
Chef: Smart infrastructure automation
Johannes H. P. Skov Frandsen
 
Chef
ChefChef
Chef
Adrian Moisey
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
NETWAYS
 
IT Automation with Chef
IT Automation with ChefIT Automation with Chef
IT Automation with Chef
Anuchit Chalothorn
 
What is Chef and how we use it at tripsta
What is Chef and how we use it at tripstaWhat is Chef and how we use it at tripsta
What is Chef and how we use it at tripsta
Giedrius Rimkus
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
kevsmith
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
Ben McRae
 
Chef - Administration for programmers
Chef - Administration for programmersChef - Administration for programmers
Chef - Administration for programmers
mrsabo
 
Chef
ChefChef
Chef
Will Sterling
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
Sri Ram
 
Chef basics - write infrastructure as code
Chef basics - write infrastructure as codeChef basics - write infrastructure as code
Chef basics - write infrastructure as code
stevaaa
 
Chef
ChefChef
Chef
MohanRaviRohitth
 
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
TXLF: Chef- Software Defined Infrastructure Today & TomorrowTXLF: Chef- Software Defined Infrastructure Today & Tomorrow
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
Matt Ray
 
Cook Infrastructure with chef -- Justeat.IN
Cook Infrastructure with chef  -- Justeat.INCook Infrastructure with chef  -- Justeat.IN
Cook Infrastructure with chef -- Justeat.IN
Rajesh Hegde
 
Introduction to Cooking with Chef
Introduction to Cooking with ChefIntroduction to Cooking with Chef
Introduction to Cooking with Chef
John Osborne
 
Kickstarter - Chef Opswork
Kickstarter - Chef OpsworkKickstarter - Chef Opswork
Kickstarter - Chef Opswork
Hamza Waqas
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
NETWAYS
 
What is Chef and how we use it at tripsta
What is Chef and how we use it at tripstaWhat is Chef and how we use it at tripsta
What is Chef and how we use it at tripsta
Giedrius Rimkus
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
kevsmith
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
Ben McRae
 
Chef - Administration for programmers
Chef - Administration for programmersChef - Administration for programmers
Chef - Administration for programmers
mrsabo
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
Sri Ram
 
Chef basics - write infrastructure as code
Chef basics - write infrastructure as codeChef basics - write infrastructure as code
Chef basics - write infrastructure as code
stevaaa
 
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
TXLF: Chef- Software Defined Infrastructure Today & TomorrowTXLF: Chef- Software Defined Infrastructure Today & Tomorrow
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
Matt Ray
 
Cook Infrastructure with chef -- Justeat.IN
Cook Infrastructure with chef  -- Justeat.INCook Infrastructure with chef  -- Justeat.IN
Cook Infrastructure with chef -- Justeat.IN
Rajesh Hegde
 
Ad

More from Chef Software, Inc. (20)

Opscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft WindowsOpscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft Windows
Chef Software, Inc.
 
Opscode tech festa july 2013
Opscode tech festa   july 2013Opscode tech festa   july 2013
Opscode tech festa july 2013
Chef Software, Inc.
 
Opscode Webinar: Automation for Education May 08-2013
Opscode Webinar: Automation for Education May 08-2013Opscode Webinar: Automation for Education May 08-2013
Opscode Webinar: Automation for Education May 08-2013
Chef Software, Inc.
 
Utility HPC: Right Systems, Right Scale, Right Science
Utility HPC: Right Systems, Right Scale, Right ScienceUtility HPC: Right Systems, Right Scale, Right Science
Utility HPC: Right Systems, Right Scale, Right Science
Chef Software, Inc.
 
The Berkshelf Way
The Berkshelf WayThe Berkshelf Way
The Berkshelf Way
Chef Software, Inc.
 
Using Kanban and Chef: A Case Study – Jeffrey Hulten
Using Kanban and Chef: A Case Study – Jeffrey HultenUsing Kanban and Chef: A Case Study – Jeffrey Hulten
Using Kanban and Chef: A Case Study – Jeffrey Hulten
Chef Software, Inc.
 
SDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
SDN, Network Virtualization and the Software Defined Data Center – Brad HedlundSDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
SDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
Chef Software, Inc.
 
ChefConf 2013 Keynote Session – Opscode – Adam Jacob
ChefConf 2013 Keynote Session – Opscode – Adam JacobChefConf 2013 Keynote Session – Opscode – Adam Jacob
ChefConf 2013 Keynote Session – Opscode – Adam Jacob
Chef Software, Inc.
 
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Chef Software, Inc.
 
The InstallShield of the 21st Century – Theo Schlossnagle
The InstallShield of the 21st Century – Theo SchlossnagleThe InstallShield of the 21st Century – Theo Schlossnagle
The InstallShield of the 21st Century – Theo Schlossnagle
Chef Software, Inc.
 
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK Box
Chef Software, Inc.
 
Push jobs: an orchestration building block for private Chef
Push jobs: an orchestration building block for private ChefPush jobs: an orchestration building block for private Chef
Push jobs: an orchestration building block for private Chef
Chef Software, Inc.
 
Multi-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreMulti-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
Welcome to the IT Industrial Revolution! Are you ready?
Welcome to the IT Industrial Revolution! Are you ready?Welcome to the IT Industrial Revolution! Are you ready?
Welcome to the IT Industrial Revolution! Are you ready?
Chef Software, Inc.
 
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Chef Software, Inc.
 
Growing Pains with Chef – a Tale of DevOps in a Large Organization
Growing Pains with Chef – a Tale of DevOps in a Large OrganizationGrowing Pains with Chef – a Tale of DevOps in a Large Organization
Growing Pains with Chef – a Tale of DevOps in a Large Organization
Chef Software, Inc.
 
Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)
Chef Software, Inc.
 
Creating a culture for Continuous Delivery
Creating a culture for Continuous DeliveryCreating a culture for Continuous Delivery
Creating a culture for Continuous Delivery
Chef Software, Inc.
 
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud PlatformCookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Chef Software, Inc.
 
Exploiting Conway’s Law for Underpants and Profit
 Exploiting Conway’s Law for Underpants and Profit Exploiting Conway’s Law for Underpants and Profit
Exploiting Conway’s Law for Underpants and Profit
Chef Software, Inc.
 
Opscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft WindowsOpscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft Windows
Chef Software, Inc.
 
Opscode Webinar: Automation for Education May 08-2013
Opscode Webinar: Automation for Education May 08-2013Opscode Webinar: Automation for Education May 08-2013
Opscode Webinar: Automation for Education May 08-2013
Chef Software, Inc.
 
Utility HPC: Right Systems, Right Scale, Right Science
Utility HPC: Right Systems, Right Scale, Right ScienceUtility HPC: Right Systems, Right Scale, Right Science
Utility HPC: Right Systems, Right Scale, Right Science
Chef Software, Inc.
 
Using Kanban and Chef: A Case Study – Jeffrey Hulten
Using Kanban and Chef: A Case Study – Jeffrey HultenUsing Kanban and Chef: A Case Study – Jeffrey Hulten
Using Kanban and Chef: A Case Study – Jeffrey Hulten
Chef Software, Inc.
 
SDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
SDN, Network Virtualization and the Software Defined Data Center – Brad HedlundSDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
SDN, Network Virtualization and the Software Defined Data Center – Brad Hedlund
Chef Software, Inc.
 
ChefConf 2013 Keynote Session – Opscode – Adam Jacob
ChefConf 2013 Keynote Session – Opscode – Adam JacobChefConf 2013 Keynote Session – Opscode – Adam Jacob
ChefConf 2013 Keynote Session – Opscode – Adam Jacob
Chef Software, Inc.
 
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Using Chef and AppFirst to Automate Scale-out/Scale-down of Web Applications ...
Chef Software, Inc.
 
The InstallShield of the 21st Century – Theo Schlossnagle
The InstallShield of the 21st Century – Theo SchlossnagleThe InstallShield of the 21st Century – Theo Schlossnagle
The InstallShield of the 21st Century – Theo Schlossnagle
Chef Software, Inc.
 
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK Box
Chef Software, Inc.
 
Push jobs: an orchestration building block for private Chef
Push jobs: an orchestration building block for private ChefPush jobs: an orchestration building block for private Chef
Push jobs: an orchestration building block for private Chef
Chef Software, Inc.
 
Multi-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreMulti-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
Welcome to the IT Industrial Revolution! Are you ready?
Welcome to the IT Industrial Revolution! Are you ready?Welcome to the IT Industrial Revolution! Are you ready?
Welcome to the IT Industrial Revolution! Are you ready?
Chef Software, Inc.
 
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Who Says Elephants Can’t Cook? How IBM and Opscode are changing the role of c...
Chef Software, Inc.
 
Growing Pains with Chef – a Tale of DevOps in a Large Organization
Growing Pains with Chef – a Tale of DevOps in a Large OrganizationGrowing Pains with Chef – a Tale of DevOps in a Large Organization
Growing Pains with Chef – a Tale of DevOps in a Large Organization
Chef Software, Inc.
 
Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)
Chef Software, Inc.
 
Creating a culture for Continuous Delivery
Creating a culture for Continuous DeliveryCreating a culture for Continuous Delivery
Creating a culture for Continuous Delivery
Chef Software, Inc.
 
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud PlatformCookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Cookin’ up Hybrid Clouds: Chef and the Accenture Cloud Platform
Chef Software, Inc.
 
Exploiting Conway’s Law for Underpants and Profit
 Exploiting Conway’s Law for Underpants and Profit Exploiting Conway’s Law for Underpants and Profit
Exploiting Conway’s Law for Underpants and Profit
Chef Software, Inc.
 

Recently uploaded (20)

Jeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software DeveloperJeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software Developer
Jeremy Millul
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Co-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using ProvenanceCo-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using Provenance
Paul Groth
 
Extend-Microsoft365-with-Copilot-agents.pptx
Extend-Microsoft365-with-Copilot-agents.pptxExtend-Microsoft365-with-Copilot-agents.pptx
Extend-Microsoft365-with-Copilot-agents.pptx
hoang971
 
The case for on-premises AI
The case for on-premises AIThe case for on-premises AI
The case for on-premises AI
Principled Technologies
 
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdfHow Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
Rejig Digital
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf
Minuscule Technologies
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
IntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdfIntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdf
Luiz Carneiro
 
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdfTop 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
SOFTTECHHUB
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Jeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software DeveloperJeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software Developer
Jeremy Millul
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Co-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using ProvenanceCo-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using Provenance
Paul Groth
 
Extend-Microsoft365-with-Copilot-agents.pptx
Extend-Microsoft365-with-Copilot-agents.pptxExtend-Microsoft365-with-Copilot-agents.pptx
Extend-Microsoft365-with-Copilot-agents.pptx
hoang971
 
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdfHow Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
How Advanced Environmental Detection Is Revolutionizing Oil & Gas Safety.pdf
Rejig Digital
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf
Minuscule Technologies
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
IntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdfIntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdf
Luiz Carneiro
 
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdfTop 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdf
SOFTTECHHUB
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 

Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Authoring

  • 1. Set Up a Node & Write a Cookbook Chef Fundamentals Webinar Series [email protected]
  • 2. Nathen Harvey • Technical Community Manager at Opscode • Co-host of the Food Fight Show Podcast • @nathenharvey • [email protected]
  • 3. Node Setup Setup a Node to manage
  • 4. Lesson Objectives • After completing the lesson, you will be able to • Install Chef nodes using “knife bootstrap” • Explain how knife bootstrap configures a node to use the Organization created in the previous section • Explain the basic configuration needed to run chefclient
  • 6. Nodes • Nodes represent the servers in your infrastructure these may be • Physical or virtual servers • Hardware that you own • Compute instances in a public or private cloud
  • 7. We Have No Nodes Yet
  • 8. Training Node • The labs require a node to be managed • We allow for four different options • Bring your own Node • Use Vagrant from the Starter Kit • Launch an instance of a public AMI on EC2 • Use the Chef Fundamentals training lab
  • 11. BETA Chef Training Lab • Login to the Lab • https://use.cloudshare.com/ • Make sure your environment is ready • Runtime: 24 Hours • Auto-suspend after: 1 Hour • Storage time: 7 Days
  • 12. Your Node • Hostname or IP Address • SSH Username • SSH Password • SSH Port (default is 22) • SSH credentials for the Training Lab & the EC2 AMI •username: opscode •password: opscode
  • 13. Checkpoint • At this point you should have • One virtual machine (VM) or server that you’ll use for the lab exercises • The IP address or public hostname • An application for establishing an ssh connection • sudo or root permissions on the VM
  • 15. Bootstrap the Target Instance $ knife bootstrap --help knife bootstrap FQDN (options) --sudo -x, --ssh-user USERNAME -P, --ssh-password PASSWORD -p, --ssh-port PORT -N, --node-name NAME -r, --run-list RUN_LIST Execute the bootstrap via sudo The ssh username The ssh password The ssh port The Chef node name for your new node Comma separated list of roles/recipes to apply
  • 16. knife bootstrap • HOSTNAME or IP Address of your machine •--sudo •-x YOUR_SSH_USERNAME •-P YOUR_SSH_PASSWORD •-p YOUR_SSH_PORT (defaults to 22) •-N "target1"
  • 17. knife bootstrap - Lab or AMI • HOSTNAME or IP Address of your machine •--sudo •-x opscode •-P opscode •-N "target1" • No need for -p, uses the default ssh port
  • 18. Bootstrap the Target Instance $ knife bootstrap IPADDRESS --sudo -x opscode -P opscode -N “target1” Bootstrapping Chef on ec2-54-211-119-145.compute-1.amazonaws.com ec2-54-211-119-145.compute-1.amazonaws.com knife sudo password: Enter your password: ... ... ec2-54-211-119-145.compute-1.amazonaws.com Converging 0 resources ec2-54-211-119-145.compute-1.amazonaws.com ec2-54-211-119-145.compute-1.amazonaws.com Chef Client finished, 0 resources updated ec2-54-211-119-145.compute-1.amazonaws.com
  • 20. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 local workstation managed node (VM)
  • 21. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 SSH! local workstation managed node (VM)
  • 22. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 SSH! managed node (VM) local workstation chef_server_url validation_client_name validation_key
  • 23. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 SSH! managed node (VM) local workstation Hosted Enterprise Chef
  • 24. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 SSH! managed node (VM) local workstation Hosted Enterprise Chef bash -c ' install chef configure client run chef'
  • 25. $ knife bootstrap IPADDRESS --sudo -x USERNAME -P PASSWORD -N target1 SSH! managed node (VM) local workstation chef-client Hosted Enterprise Chef
  • 26. What just happened? • Chef and all of its dependencies installed via an operating system-specific package ("omnibus installer") • Installation includes • The Ruby language - used by Chef • knife - Command line tool for administrators • chef-client - Client application • ohai - System profiler • ...and more
  • 27. View Node on Chef Server • Login to your Hosted Enterprise Chef
  • 28. View Node on Chef Server
  • 29. View Node on Chef Server
  • 30. Node • The node is registered with Chef Server • The Chef Server displays information about the node • This information comes from Ohai
  • 31. Ohai "languages": { "ruby": { }, "perl": { "version": "5.14.2", "archname": "x86_64linux-gnu-thread-multi" }, "python": { "version": "2.7.3", "builddate": "Aug 1 2012, 05:14:39" }, "php": { "version": "5.3.10-1ubuntu3.6", "builddate": "(cli) (built: Mar" } }, "kernel": { "name": "Linux", "release": "3.2.0-32-virtual", "version": "#51-Ubuntu SMP Wed Sep 26 21:53:42 UTC 2012", "machine": "x86_64", "modules": { "isofs": { "size": "40257", "refcount": "0" }, "acpiphp": { "size": "24231", "refcount": "0" } }, "os": "GNU/Linux" }, "os": "linux", "os_version": "3.2.0-32-virtual", "ohai_time": 1369328621.3456137, "network": { "interfaces": { "lo": { "mtu": "16436", "flags": [ "LOOPBACK", “UP","LOWER_UP" ], "encapsulation": "Loopback", "addresses": { "127.0.0.1": { "family": "inet", "netmask": "255.0.0.0", "scope": "Node" }, "::1": { "family": "inet6", "scope": "Node" } }, }, "eth0": { "type": "eth", "number": "0",
  • 33. Write a Cookbook Packages, Cookbook Files, and Services
  • 34. Lesson Objectives • After completing the lesson, you will be able to • Describe what a cookbook is • Create a new cookbook • Explain what a recipe is • Describe how to use the package, service, and cookbook_file resources • Upload a cookbook to the Chef Server • Explain what a run list is, and how to set it for a node
  • 35. What is a cookbook? • A cookbook is like a “package” for Chef recipes. • It contains all the recipes, files, templates, libraries, etc. required to configure a portion of your infrastructure • Typically they map 1:1 to a piece of software or functionality.
  • 36. The Problem and the Success Criteria • The Problem: We need a web server configured to serve up our home page. • Success Criteria: We can see the homepage in a web browser.
  • 37. Required steps • Install Apache • Start the service, and make sure it will start when the machine boots • Write out the home page
  • 38. Exercise: Create a new Cookbook $ knife cookbook create apache ** ** ** ** Creating Creating Creating Creating cookbook apache README for cookbook: apache CHANGELOG for cookbook: apache metadata for cookbook: apache
  • 39. Edit the default recipe OPEN IN EDITOR: cookbooks/apache/recipes/default.rb # # # # # # # # Cookbook Name:: apache Recipe:: default Copyright 2013, YOUR_COMPANY_NAME All rights reserved - Do Not Redistribute
  • 40. Exercise: Add a package resource to install Apache to the default recipe OPEN IN EDITOR: cookbooks/apache/recipes/default.rb # # # # # # # # Cookbook Name:: apache Recipe:: default Copyright 2013, YOUR_COMPANY_NAME All rights reserved - Do Not Redistribute package "apache2" do action :install end SAVE FILE!
  • 41. Chef Resources package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 42. Chef Resources • Have a type package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 43. Chef Resources • Have a type • Have a name package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 44. Chef Resources • Have a type • Have a name • Have parameters package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 45. Chef Resources • Have a type • Have a name • Have parameters • Take action to put the resource into the desired state package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 46. Chef Resources • Have a type • Have a name • Have parameters • Take action to put the resource into the desired state • Can send notifications to other resources package "haproxy" do action :install end template "/etc/haproxy/haproxy.cfg" do source "haproxy.cfg.erb" owner "root" group "root" mode "0644" notifies :restart, "service[haproxy]" end service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 47. So the resource we just wrote... package "apache2" do action :install end
  • 48. So the resource we just wrote... • Is a package resource package "apache2" do action :install end
  • 49. So the resource we just wrote... • Is a package resource • Whose name is apache2 package "apache2" do action :install end
  • 50. So the resource we just wrote... • Is a package resource • Whose name is apache2 • With an install action package "apache2" do action :install end
  • 51. Notice we didn’t say how to install the package • Resources are declarative - that means we say what we want to have happen, rather than how • Chef uses the platform the node is running to determine the correct provider for a resource
  • 52. Exercise: Add a service resource to ensure the service is started and enabled at boot OPEN IN EDITOR: cookbooks/apache/recipes/default.rb ... # All rights reserved - Do Not Redistribute # package "apache2" do action :install end service "apache2" do action [ :enable, :start ] end SAVE FILE!
  • 53. So the resource we just wrote... service "apache2" do action [ :enable, :start ] end
  • 54. So the resource we just wrote... • Is a service resource service "apache2" do action [ :enable, :start ] end
  • 55. So the resource we just wrote... • Is a service resource • Whose name is apache2 service "apache2" do action [ :enable, :start ] end
  • 56. So the resource we just wrote... • Is a service resource • Whose name is apache2 • With two actions: start and enable service "apache2" do action [ :enable, :start ] end
  • 57. Order Matters • Resources are executed in order 1st 2nd • Body Level One • Body Level Two template "/etc/haproxy/haproxy.cfg" do • Body Level Three source "haproxy.cfg.erb" owner "root" •"root" Level Four Body group mode "0644" • :restart, "service[haproxy]" notifies Body Level Five package "haproxy" do action :install end end 3rd service "haproxy" do supports :restart => :true action [:enable, :start] end
  • 58. Exercise: Add a cookbook_file resource to copy the home page in place OPEN IN EDITOR: cookbooks/apache/recipes/default.rb ... service "apache2" do action [ :enable, :start ] end cookbook_file "/var/www/index.html" do source "index.html" mode "0644" end SAVE FILE!
  • 59. So the resource we just wrote... cookbook_file "/var/www/index.html" do source "index.html" mode "0644" end
  • 60. So the resource we just wrote... • Is a cookbook_file resource cookbook_file "/var/www/index.html" do source "index.html" mode "0644" end
  • 61. So the resource we just wrote... • Is a cookbook_file resource • Whose name is /var/www/index.html cookbook_file "/var/www/index.html" do source "index.html" mode "0644" end
  • 62. So the resource we just wrote... • Is a cookbook_file cookbook_file "/var/www/index.html" resource source "index.html" mode "0644" • Whose name is end /var/www/index.html • With two parameters: • source of index.html • mode of “0644” do
  • 63. Full contents of the apache recipe # # # # # # # # Cookbook Name:: apache Recipe:: default Copyright 2013, YOUR_COMPANY_NAME All rights reserved - Do Not Redistribute package "apache2" do action :install end service "apache2" do action [ :enable, :start ] end cookbook_file "/var/www/index.html" do source "index.html" mode "0644" end
  • 64. Exercise: Add index.html to your cookbook’s files/default directory OPEN IN EDITOR: cookbooks/apache/files/default/index.html <html> <body> <h1>Hello, world!</h1> </body> </html> SAVE FILE!
  • 65. Exercise: Upload the cookbook $ knife cookbook upload apache Uploading apache Uploaded 1 cookbook. [0.1.0]
  • 66. Run List Enterprise Chef What policy sho uld I follow? chef-client Node “recipe[apache]”
  • 67. Update the Run List • Login to Enterprise Hosted Chef • Select the "Nodes" tab • Select your Node • Edit the Run List
  • 68. Update the Run List • Drag • Drop • Save
  • 69. Exercise: Run the chef-client on your test node opscode@target1:~$ sudo chef-client Starting Chef Client, version 11.4.4 [2013-06-25T04:20:22+00:00] INFO: *** Chef 11.4.4 *** [2013-06-25T04:20:23+00:00] INFO: [inet6] no default interface, picking the first ipaddress [2013-06-25T04:20:23+00:00] INFO: Run List is [recipe[apache]] [2013-06-25T04:20:23+00:00] INFO: Run List expands to [apache] [2013-06-25T04:20:23+00:00] INFO: Starting Chef Run for target1 [2013-06-25T04:20:23+00:00] INFO: Running start handlers [2013-06-25T04:20:23+00:00] INFO: Start handlers complete. resolving cookbooks for run list: ["apache"] [2013-06-25T04:20:24+00:00] INFO: Loading cookbooks [apache] Synchronizing Cookbooks: [2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/recipes/default.rb in the cache. [2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/recipes/tmp.rb in the cache. [2013-06-25T04:20:24+00:00] INFO: Storing updated cookbooks/apache/CHANGELOG.md in the cache. [2013-06-25T04:20:25+00:00] INFO: Storing updated cookbooks/apache/metadata.rb in the cache. [2013-06-25T04:20:25+00:00] INFO: Storing updated cookbooks/apache/README.md in the cache. - apache Compiling Cookbooks... Converging 3 resources Recipe: apache::default * package[apache2] action install[2013-06-25T04:20:25+00:00] INFO: Processing package[apache2] action install (apache::default line 9) - install version 2.2.22-1ubuntu1 of package apache2
  • 70. Exercise: Verify that the home page works • Open a web browser • Type in the the URL for your test node
  • 71. Congratulate yourself! • You have just written your first Chef cookbook! • (clap!)
  • 72. Next Week • List the steps taken by a chef-client during a run • Explain the basic security model of Chef
  • 73. Thank You • Nathen Harvey • Technical Community Manager at Opscode • @nathenharvey • [email protected]