SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 CodeJosh 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 3Chef
 
Automating Infrastructure with Chef
Automating Infrastructure with ChefAutomating Infrastructure with Chef
Automating Infrastructure with ChefJennifer Davis
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitJennifer Davis
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Jennifer Davis
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Chef
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with ChefJohn 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 1Chef
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and YouBryan Berry
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local ModeMichael Goetz
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with ChefJonathan 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 4Chef
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with ChefRaimonds 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
 

Was ist angesagt? (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
 
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
 
Automating Infrastructure with Chef
Automating Infrastructure with ChefAutomating Infrastructure with Chef
Automating Infrastructure with Chef
 
Introduction to chef
Introduction to chefIntroduction to chef
Introduction to chef
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
 
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...
 
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
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
 
Chef fundamentals
Chef fundamentalsChef fundamentals
Chef fundamentals
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
 
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
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
 
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 )
 
Chef introduction
Chef introductionChef introduction
Chef introduction
 

Andere mochten auch

Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with ChefAdam Jacob
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationJulian Dunn
 
Chef for beginners module 5
Chef for beginners   module 5Chef for beginners   module 5
Chef for beginners module 5Chef
 
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 curePatrick 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 CologneD
 
Chef for beginners module 2
Chef for beginners   module 2Chef for beginners   module 2
Chef for beginners module 2Chef
 
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 DeploymentDan Stine
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev 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 expressionDeepak Agarwal
 
Verbal & Non-Verbal Communication
Verbal & Non-Verbal CommunicationVerbal & Non-Verbal Communication
Verbal & Non-Verbal CommunicationAmit Jha
 
38 gestures of body language
38 gestures of body language38 gestures of body language
38 gestures of body languagemelodeepop
 

Andere mochten auch (15)

Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
 
Chef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous IntegrationChef Cookbook Testing and Continuous Integration
Chef Cookbook Testing and Continuous Integration
 
Chef for beginners module 5
Chef for beginners   module 5Chef for beginners   module 5
Chef for beginners module 5
 
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)
 
RawFoodGuide_v2
RawFoodGuide_v2RawFoodGuide_v2
RawFoodGuide_v2
 
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
 
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
 
Chef for beginners module 2
Chef for beginners   module 2Chef for beginners   module 2
Chef for beginners module 2
 
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
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
 
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
 
Verbal & Non-Verbal Communication
Verbal & Non-Verbal CommunicationVerbal & Non-Verbal Communication
Verbal & Non-Verbal Communication
 
The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
 
38 gestures of body language
38 gestures of body language38 gestures of body language
38 gestures of body language
 

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

Velocity 2011 Chef OpenStack Workshop
Velocity 2011 Chef OpenStack WorkshopVelocity 2011 Chef OpenStack Workshop
Velocity 2011 Chef OpenStack WorkshopChef Software, Inc.
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chefkevsmith
 
Real world Django deployment using Chef
Real world Django deployment using ChefReal world Django deployment using Chef
Real world Django deployment using Chefcoderanger
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefAll Things Open
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefNathen Harvey
 
SELF 2011: Deploying Django Application Stacks with Chef
SELF 2011: Deploying Django Application Stacks with ChefSELF 2011: Deploying Django Application Stacks with Chef
SELF 2011: Deploying Django Application Stacks with ChefChef Software, Inc.
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerEC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerGeorge Miranda
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAlberto Molina Coballes
 
Practical introduction to dev ops with chef
Practical introduction to dev ops with chefPractical introduction to dev ops with chef
Practical introduction to dev ops with chefLeanDog
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeMario IC
 
A Universe From Nothing
A Universe From NothingA Universe From Nothing
A Universe From NothingStigTelfer
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrantandygale
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrantandygale
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the MassesSai Perchard
 
Testable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerTestable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerMandi Walls
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansibleKhizer Naeem
 
Best Practice for Deploying Application with Heat
Best Practice for Deploying Application with HeatBest Practice for Deploying Application with Heat
Best Practice for Deploying Application with HeatEthan Lynn
 

Ähnlich wie Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Authoring (20)

IT Automation with Chef
IT Automation with ChefIT Automation with Chef
IT Automation with Chef
 
Velocity 2011 Chef OpenStack Workshop
Velocity 2011 Chef OpenStack WorkshopVelocity 2011 Chef OpenStack Workshop
Velocity 2011 Chef OpenStack Workshop
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
Real world Django deployment using Chef
Real world Django deployment using ChefReal world Django deployment using Chef
Real world Django deployment using Chef
 
Picconf12
Picconf12Picconf12
Picconf12
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
SELF 2011: Deploying Django Application Stacks with Chef
SELF 2011: Deploying Django Application Stacks with ChefSELF 2011: Deploying Django Application Stacks with Chef
SELF 2011: Deploying Django Application Stacks with Chef
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and PackerEC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and Packer
 
Configuration management with Chef
Configuration management with ChefConfiguration management with Chef
Configuration management with Chef
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Practical introduction to dev ops with chef
Practical introduction to dev ops with chefPractical introduction to dev ops with chef
Practical introduction to dev ops with chef
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
 
A Universe From Nothing
A Universe From NothingA Universe From Nothing
A Universe From Nothing
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the Masses
 
Testable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and DockerTestable Infrastructure with Chef, Test Kitchen, and Docker
Testable Infrastructure with Chef, Test Kitchen, and Docker
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
Best Practice for Deploying Application with Heat
Best Practice for Deploying Application with HeatBest Practice for Deploying Application with Heat
Best Practice for Deploying Application with Heat
 

Mehr von 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 WindowsChef 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-2013Chef 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 ScienceChef 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 HultenChef 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 HedlundChef 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 JacobChef 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 SchlossnagleChef 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 BoxChef 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 ChefChef 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 moreChef 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 OrganizationChef 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 DeliveryChef 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 PlatformChef 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 ProfitChef Software, Inc.
 

Mehr von 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
 
Opscode tech festa july 2013
Opscode tech festa   july 2013Opscode tech festa   july 2013
Opscode tech festa july 2013
 
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
 
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
 
The Berkshelf Way
The Berkshelf WayThe Berkshelf Way
The Berkshelf Way
 
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
 
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
 
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
 
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 ...
 
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 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
 
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
 
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
 
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?
 
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...
 
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
 
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)
 
Creating a culture for Continuous Delivery
Creating a culture for Continuous DeliveryCreating a culture for Continuous Delivery
Creating a culture for Continuous Delivery
 
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
 
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
 

Kürzlich hochgeladen

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Kürzlich hochgeladen (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

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

  • 1. Set Up a Node & Write a Cookbook Chef Fundamentals Webinar Series training@opscode.com
  • 2. Nathen Harvey • Technical Community Manager at Opscode • Co-host of the Food Fight Show Podcast • @nathenharvey • nharvey@opscode.com
  • 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 • nharvey@opscode.com