SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
The environment restaurant
Cooking up the best in OS’s

Martin de Keijzer
17-08-2013, Borsele Nederland - PHPBenelux Summer BBQ
Introduction
A.K.A. Who the hell are you?

!2
About me
•Martin de Keijzer
•Dutch web developer

Working for Ibuildings
PHPBenelux Board Member
@Martin1982
http://www.martindekeijzer.nl
!3
No PHP in this talk....

Devs
!4
Dev environments
Ways to develop

!5
Central server

• Everyone has the same
environment	

• Code can be tested
immediately by PM’s	

• Developers don’t need
to install stuff

!6
Central server

• If the server is down,

everyone’s down	

• If the code breaks, a lot
of people can’t continue	

• Everyone needs access
to a critical business
asset (even the interns)

!7
Local server

• Everyone has an

environment to break	

• Deployment tests are
easily done by one
developer	

• Developer freedom of
software

!8
Local server

• Developers can install

unsupported software	

• Every developer needs
time to setup an
environment	

• An environmentdependent change can
still break the code
!9
Vagrant
The homeless love restaurants

!10
Versionable environment

• Save your environment

to a VCS and share	

• Everyone can tinker with
their environment and
rebuild in minutes	

• Developers have the
freedom to update
environments	

• Environments can be
reviewed by team leads
!11
Versionable environment

• Steep learning curve to

make it really functional
We’ll fix this.... today!
!12
Prerequisites

OR
VirtualBox	

(free)

VMWare	

(commercial)
!13
Prerequisites

http://www.vagrantup.com

!14
Getting started

vagrant	
  init
Create a basic vagrant file

!15
Vagrantfile
•#	
  -­‐*-­‐	
  mode:	
  ruby	
  -­‐*-­‐	
  
•#	
  vi:	
  set	
  ft=ruby	
  :	
  
!

•Vagrant.configure("2")	
  do	
  |config|	
  
•	
  	
  config.vm.box	
  =	
  "precise64"	
  
•	
  	
  config.vm.box_url	
  =	
  "http://dl.dropbox.com/u/1537815/precise64.box"	
  
•	
  	
  config.vm.network	
  :private_network,	
  ip:	
  
"192.168.33.10"	
  
•	
  	
  config.vm.synced_folder	
  ".",	
  "/vagrant_data"	
  
•	
  	
  config.vm.provider	
  :virtualbox	
  do	
  |vb|	
  
•	
  	
  	
  	
  vb.customize	
  ["modifyvm",	
  :id,	
  "-­‐-­‐memory",	
  
"1024"]	
  
•	
  	
  end	
  
•end

!16
Getting up and running

vagrant	
  up

!17
More options

vagrant	
  suspend
vagrant	
  resume
vagrant	
  destroy
vagrant	
  ssh
!18
Getting up and running

All done!	

Thank you!

!19
Getting up and running

But how about my software?

Nginx? PHP 5.5.1? Solr?

!20
Provisioning
Taking away the hassle

!21
Provisioning

!22
Bash

!23
Puppet

!24
Chef
Make your restaurant smooth with a Chef

!25
Chef

!26
Cookbooks

!27
Utilizing cookbooks
•config.vm.provision	
  :chef_solo	
  do	
  |chef|	
  
•	
  	
  	
  	
  chef.cookbooks_path	
  =	
  "provision/cookbooks"	
  
•	
  	
  	
  	
  chef.add_recipe	
  "wp-­‐cli"	
  
•	
  	
  	
  	
  chef.add_recipe	
  "wp_site_myproject"	
  
•	
  	
  	
  	
  chef.json	
  =	
  {	
  
•	
  	
  	
  	
  	
  	
  :mysql	
  =>	
  {	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_debian_password	
  =>	
  'vagrant',	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_root_password	
  =>	
  'vagrant',	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_repl_password	
  =>	
  'vagrant'	
  
•	
  	
  	
  	
  	
  	
  }	
  
•	
  	
  	
  	
  }	
  
•	
  	
  end
!28
Vagrant up

!29
Librarian
The Chef’s best friend for cookbooks

!30
Librarian

gem	
  install	
  librarian-­‐chef
!31
Create your librarian

librarian-­‐chef	
  init

!32
Cheffile
#!/usr/bin/env ruby	

#^syntax detection	

site 'http://community.opscode.com/api/v1'	

!

# cookbook 'chef-client'	

# cookbook 'apache2', '>= 1.0.0'	

# cookbook 'rvm',	

# :git => 'https://github.com/fnichol/chef-rvm'	

# cookbook 'postgresql',	

# :git => 'https://github.com/findsyou/cookbooks',	

# :ref => 'postgresql-improvements'
!33
Loading cookbooks

librarian-­‐chef	
  install
librarian-­‐chef	
  update
librarian-­‐chef	
  clean
librarian-­‐chef	
  show
!34
Knife
When your Chef and Librarian can’t handle

!35
Knife

gem	
  install	
  chef
!36
A new cookbook
attributes
definitions
files
libraries
metadata.rb
providers
recipes
resources
templates

Default configurations
exposed functions
resource files
reuseable libraries
Meta information
defines actions
runnable scripts
runs providers
views-like

•knife	
  cookbook	
  create	
  mybook	
  -­‐o	
  ./
mycookbooks

!37
Metadata.rb
name	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'wp-­‐cli'	
  
maintainer	
  	
  	
  	
  	
  	
  	
  'Martin	
  de	
  Keijzer'	
  
maintainer_email	
  'mdkeijzer@ibuildings.nl'	
  
license	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'LGPL	
  V3'	
  
description	
  	
  	
  	
  	
  	
  'Installs/Configures	
  wp-­‐cli'	
  
long_description	
  IO.read(File.join(File.dirname(__FILE__),	
  
'README.md'))	
  
version	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  '0.1.0'	
  
!

depends	
  "curl"	
  
depends	
  "git"	
  
depends	
  "php"	
  
depends	
  "mysql"	
  
depends	
  "database"

!38
attributes/default.rb

•default['wp']['wpcli-­‐dir']	
  =	
  '/usr/share/wp-­‐cli'	
  
•default['wp']['wpcli-­‐version']	
  =	
  '@stable'	
  
•default['wp']['wpcli-­‐link']	
  =	
  '/usr/bin/wp'

•Filename must match the recipe name	

•‘default’ is a special name
!39
recipes/default.rb
•#	
  Cookbook	
  Name::	
  wp-­‐cli	
  
•#	
  More	
  comments.....	
  
•include_recipe	
  'git'	
  
•#	
  More	
  prerequisites	
  
!

•#	
  create	
  wpcli	
  dir	
  
•directory	
  node['wp']['wpcli-­‐dir']	
  do	
  
•	
  	
  recursive	
  true	
  
•end	
  
!

•
!40
recipes/default.rb
•#	
  download	
  installer	
  
•remote_file	
  "#{node['wp']['wpcli-­‐dir']}/
installer.sh"	
  do	
  
•	
  	
  source	
  'http://wp-­‐cli.org/installer.sh'	
  
•	
  	
  mode	
  0755	
  
•	
  	
  action	
  :create_if_missing	
  
•end	
  
!

•

!41
recipes/default.rb
•bin_dir	
  =	
  ::File.join(node['wp']['wpcli-­‐dir'],	
  'bin',	
  
'wp')	
  
!

•#	
  run	
  installer	
  
•bash	
  'install	
  wp-­‐cli'	
  do	
  
•	
  	
  code	
  './installer.sh'	
  
•	
  	
  cwd	
  node['wp']['wpcli-­‐dir']	
  
•	
  	
  environment	
  'INSTALL_DIR'	
  =>	
  node['wp']['wpcli-­‐
dir'],	
  
•	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'VERSION'	
  =>	
  node['wp']['wpcli-­‐version']	
  
•	
  	
  creates	
  bin_dir	
  
•end	
  
•
!42
recipes/default.rb
•#	
  link	
  wp	
  bin	
  
•link	
  node['wp']['wpcli-­‐link']	
  do	
  
•	
  	
  to	
  bin_dir	
  
•end	
  if	
  node['wp']['wpcli-­‐link']

!43
Cookbook done

Congratulations
you’ve taken the
first baby steps
in creating a reusable
cookbook!

!44
Bonus: templates/default
•#	
  redirect	
  met	
  zonder	
  www	
  naar	
  www.<%=	
  @params[:server_name]	
  %>	
  
•<VirtualHost	
  *:80>	
  
•	
  	
  	
  	
  	
  	
  ServerName	
  <%=	
  @params[:server_name]	
  %>	
  
•	
  	
  	
  	
  	
  	
  Redirect	
  /	
  http://www.<%=	
  @params[:server_name]	
  %>/	
  
•</VirtualHost>

!45
Usage from a recipe

•web_app	
  "mysite"	
  do	
  
•	
  	
  template	
  "mytemplate.conf.erb"	
  
•	
  	
  docroot	
  node[:mysite][:dir]	
  
•	
  	
  server_name	
  node[:mysite][:server_name]	
  
•end

!46
Conclusion
What have we learned?

!47
Conclusion
•Developers require:

‣ Virtualbox or VMWare
‣ Vagrant
•Team leads / Devops require:

‣ All of the above
‣ Chef + Knife
‣ Librarian
‣ Enough Server OS experience to cook up the best
environments

!48
QUESTIONS

!49
Thank you for listening
Bon appetit
mdkeijzer@ibuildings.nl
@Martin1982

Contenu connexe

Tendances

Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefChef Software, Inc.
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Software, Inc.
 
CLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsZachary Stevens
 
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.
 
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
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Chef
 
Vagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love AffairVagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love AffairMichael Lihs
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with ChefJon Cowie
 
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
 
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2Chef
 
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012Patrick McDonnell
 
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Chef
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local ModeMichael Goetz
 
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Software, Inc.
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to ChefKnoldus 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.
 

Tendances (20)

Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
 
Chef introduction
Chef introductionChef introduction
Chef introduction
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
 
CLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with Jenkins
 
The unintended benefits of Chef
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of Chef
 
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)
 
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
 
Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
 
Vagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love AffairVagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love Affair
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with Chef
 
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
 
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
 
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
 
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
 
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
 
Chef in a nutshell
Chef in a nutshellChef in a nutshell
Chef in a nutshell
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
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
 

Similaire à The Environment Restaurant

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 HawkinsNETWAYS
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitJennifer Davis
 
Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2Sylvain Tissot
 
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
 
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
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Software, Inc.
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Jennifer Davis
 
A Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef SupermarketA Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef SupermarketNell Shamrell-Harrington
 
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
 
Automate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & ChefAutomate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & Chef Michael Lihs
 
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...Chef Software, Inc.
 
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
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011Bachkoutou Toutou
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chefkevsmith
 
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzAtmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzPROIDEA
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and FriendsBen McRae
 
Opscode Chef for Dummies
Opscode Chef for DummiesOpscode Chef for Dummies
Opscode Chef for Dummiesdilippanwar
 
Chef + AWS + CodeIgniter
Chef + AWS + CodeIgniterChef + AWS + CodeIgniter
Chef + AWS + CodeIgniterciconf
 

Similaire à The Environment Restaurant (20)

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
 
Introduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
 
Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2
 
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
 
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
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
 
Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015
 
A Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef SupermarketA Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef Supermarket
 
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
 
Chef Cookbook Workflow
Chef Cookbook WorkflowChef Cookbook Workflow
Chef Cookbook Workflow
 
Automate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & ChefAutomate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & Chef
 
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
 
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
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzAtmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
 
Opscode Chef for Dummies
Opscode Chef for DummiesOpscode Chef for Dummies
Opscode Chef for Dummies
 
Chef + AWS + CodeIgniter
Chef + AWS + CodeIgniterChef + AWS + CodeIgniter
Chef + AWS + CodeIgniter
 

Plus de Martin de Keijzer

High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016Martin de Keijzer
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app devMartin de Keijzer
 
tiCONF Amsterdam 2014 building mobile teams
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teamsMartin de Keijzer
 
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeMartin de Keijzer
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildMartin de Keijzer
 
Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Martin de Keijzer
 
Native Javascript apps with PhoneGap
Native Javascript apps with PhoneGapNative Javascript apps with PhoneGap
Native Javascript apps with PhoneGapMartin de Keijzer
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OSMartin de Keijzer
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2Martin de Keijzer
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 geckoMartin de Keijzer
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend FrameworkMartin de Keijzer
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Martin de Keijzer
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CIMartin de Keijzer
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]Martin de Keijzer
 
Een introductie voor Phpunit
Een introductie voor PhpunitEen introductie voor Phpunit
Een introductie voor PhpunitMartin de Keijzer
 

Plus de Martin de Keijzer (19)

High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
 
tiCONF Amsterdam 2014 building mobile teams
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teams
 
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap Build
 
Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2
 
Native Javascript apps with PhoneGap
Native Javascript apps with PhoneGapNative Javascript apps with PhoneGap
Native Javascript apps with PhoneGap
 
Mobile is everywhere
Mobile is everywhereMobile is everywhere
Mobile is everywhere
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend Framework
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CI
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]
 
Subversion In De Praktijk
Subversion In De PraktijkSubversion In De Praktijk
Subversion In De Praktijk
 
Een introductie voor Phpunit
Een introductie voor PhpunitEen introductie voor Phpunit
Een introductie voor Phpunit
 

The Environment Restaurant