SlideShare a Scribd company logo
1 of 35
Chef Development Box
with Packer, Vagrant and Travis CI
build chef-takeaway
by Simone Soldateschi
20150625
Who I am
● Senior DevOps Engineer, Sydney
● Lead DevOps Team at Rackspace AU
● 15 years of experience as
○ Software Eng
○ Systems Eng
○ Been DevOps'in for the last 5-ish years
Why
chef-takeaway
● simple
● repeatable
● versioned
Things should be
“Simple”
Just 3 steps:
● git clone git@github.com:siso/chef-takeaway.git
● .
● vagrant up
● vagrant ssh -- -A
I lied ;)
Just 3 steps:
● git clone git@github.com:siso/chef-takeaway.git
● cd chef-takeaway
● vagrant up
● vagrant ssh -- -A
…
/usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/gem_dependency.rb:119:in `requirement': undefined local variable
or method `version_requirements' for #<Rails::GemDependency:0xb7181c78> (NameError)
from /usr/local/lib/site_ruby/1.8/rubygems.rb:254:in `activate'
from /usr/local/lib/site_ruby/1.8/rubygems.rb:1204:in `gem'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/gem_dependency.rb:73:in `add_load_paths'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `add_gem_load_paths'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `each'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `add_gem_load_paths'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:132:in `process'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in `send'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in `run'
from /home/user/application/config/environment.rb:19
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/commands/server.rb:84
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
from script/server:3
...
“Repeatable”
vagrant destroy && vagrant up
“Repeatable”
“Versioned”
What
Linux
your favourite Linux distro
Provisioning
install and configure all the things
Test it
Share
Run it
manage boxes easily
TDD
Kitchen CI and Docker
How
Build
Build
Build
● variables
● builders
● provisioner
● post-processor
Build
"variables": {
"core": 1,
"memory": 512,
"disk_size": 10140,
"ssh_port": 22,
"ssh_wait_timeout": "10000s",
"iso_url": "http://cdimage.debian.org/debian-cd/8.0.0/amd64/iso-cd/debian-
8.0.0-amd64-netinst.iso",
"iso_md5": "d9209f355449fe13db3963571b1f52d4",
"vm_name": "chef-takeaway",
"vm_version": "0.3.1”
},
"builders": [
{
"boot_command": [
"<esc><wait>",
"install <wait>",
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed-jessie.cfg <wait>",
...
"<enter><wait>"
],
"disk_size": "{{user `disk_size`}}",
"guest_os_type": "Debian_64",
"headless": true,
...
Build
"provisioners": [
{
"type": "shell",
"execute_command": "echo 'vagrant' | {{ .Vars }} sudo -E -S sh '{{ .Path
}}'",
"inline": [
"sleep 30"
]
},
...
Build
"provisioners": [
...,
{
"type": "ansible-local",
"pause_before": "5s",
"playbook_dir": "../ansible",
"playbook_file": "../ansible/main.yml",
"role_paths": ["../ansible"],
"extra_arguments": ["-vvvv", "-u", "root"]
},
Build
Build
"post-processors": [
{
"type": "vagrant",
"output": "./{{.Provider}}/{{user `vm_name`}}-{{user `vm_version`}}.box"
}
],
Push and Test
Share
Recap
Simone Soldateschi

More Related Content

What's hot

QA 4 python
QA 4 pythonQA 4 python
QA 4 pythonBeDjango
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupalsmithmilner
 
Lightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsCharles Fulton
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Geshan Manandhar
 
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...CloudBees
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patienceJacek Gebal
 
Golang Microservices meetup
Golang Microservices meetupGolang Microservices meetup
Golang Microservices meetupGirish Ramnani
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using ShipkitMarcinStachniuk
 
Continuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgContinuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgMarcinStachniuk
 
Perl Continous Integration
Perl Continous IntegrationPerl Continous Integration
Perl Continous IntegrationMichael Peters
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Indonesia
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
 
Continuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comContinuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comRaphaël Brugier
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Fwdays
 
Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014Chen-en Lu
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Malcolm Groves
 
Continuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUGContinuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUGRaphaël Brugier
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?Juan Picado
 

What's hot (20)

QA 4 python
QA 4 pythonQA 4 python
QA 4 python
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
 
Lightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schools
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
 
Why golang
Why golangWhy golang
Why golang
 
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patience
 
Golang Microservices meetup
Golang Microservices meetupGolang Microservices meetup
Golang Microservices meetup
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit
 
Continuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgContinuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.org
 
Perl Continous Integration
Perl Continous IntegrationPerl Continous Integration
Perl Continous Integration
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Continuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comContinuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.com
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014Gradle起步走: 以CLI Application為例 @ JCConf 2014
Gradle起步走: 以CLI Application為例 @ JCConf 2014
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101
 
Continuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUGContinuous delivery journey - Montgomery county JUG
Continuous delivery journey - Montgomery county JUG
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?
 

Viewers also liked

CV_Alana Miles-2015-
CV_Alana Miles-2015-CV_Alana Miles-2015-
CV_Alana Miles-2015-Alana Miles
 
293192776 ada2-ejsc-bloque-3
293192776 ada2-ejsc-bloque-3293192776 ada2-ejsc-bloque-3
293192776 ada2-ejsc-bloque-3Fredycf1107
 
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...LXL Ideas
 
Religion v. Science
Religion v. ScienceReligion v. Science
Religion v. ScienceChloe Butel
 
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του Περικλή
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του ΠερικλήΤο πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του Περικλή
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του ΠερικλήDimitra Mylonaki
 
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)Peter Tzagarakis
 
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1Η Βυζαντινή Αυτοκρατορία παρακμάζει 1
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1Γρηγόρης Ζερβός
 
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)Peter Tzagarakis
 
Når den digitale dritten treffer vifta - Christian Kamhaug
Når den digitale dritten treffer vifta - Christian KamhaugNår den digitale dritten treffer vifta - Christian Kamhaug
Når den digitale dritten treffer vifta - Christian KamhaugYggdrasilkonferansen
 
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...Yggdrasilkonferansen
 

Viewers also liked (19)

Direct marketing
Direct marketingDirect marketing
Direct marketing
 
CV_Alana Miles-2015-
CV_Alana Miles-2015-CV_Alana Miles-2015-
CV_Alana Miles-2015-
 
Coach
CoachCoach
Coach
 
293192776 ada2-ejsc-bloque-3
293192776 ada2-ejsc-bloque-3293192776 ada2-ejsc-bloque-3
293192776 ada2-ejsc-bloque-3
 
Soul um coletivo
Soul um coletivoSoul um coletivo
Soul um coletivo
 
Advertising
AdvertisingAdvertising
Advertising
 
Dokumen kesehatan
Dokumen kesehatanDokumen kesehatan
Dokumen kesehatan
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
Doisneau Robert, 1912-1994
Doisneau Robert, 1912-1994Doisneau Robert, 1912-1994
Doisneau Robert, 1912-1994
 
Henri Cartier Bresson
Henri Cartier BressonHenri Cartier Bresson
Henri Cartier Bresson
 
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...
Mentor Conclave 2015 - Impact - Ms. Poonam Bir Kasturi - Waste Management in ...
 
Religion v. Science
Religion v. ScienceReligion v. Science
Religion v. Science
 
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του Περικλή
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του ΠερικλήΤο πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του Περικλή
Το πολίτευμα και η κοινωνία της Αθήνας στα χρόνια του Περικλή
 
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)
Εποχή του Χαλκού - Μεσοελλαδική Περίοδος (γ.κοινωνία)
 
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1Η Βυζαντινή Αυτοκρατορία παρακμάζει 1
Η Βυζαντινή Αυτοκρατορία παρακμάζει 1
 
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)
Εποχή του Λίθου - Μεσολιθική (δ.πολιτισμός)
 
Når den digitale dritten treffer vifta - Christian Kamhaug
Når den digitale dritten treffer vifta - Christian KamhaugNår den digitale dritten treffer vifta - Christian Kamhaug
Når den digitale dritten treffer vifta - Christian Kamhaug
 
Transport
TransportTransport
Transport
 
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...
Storebrand fra forsikring til pensjon – en merkevarereise som startet på nett...
 

Similar to Build Chef development box from scratch

Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with ChefJon Cowie
 
Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Pluginsanveo
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017MarcinStachniuk
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in DjangoKevin Harvey
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Waymtoppa
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developersmpvanwinkle
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!Docker, Inc.
 
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...MarcinStachniuk
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaPantheon
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with gitJoseluis Laso
 
Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)Mischa Taylor
 
markedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVMmarkedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVMtakezoe
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$Joe Ferguson
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015mwrather
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby TeamArto Artnik
 

Similar to Build Chef development box from scratch (20)

Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with Chef
 
Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Plugins
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
Optimizing Your CI Pipelines
Optimizing Your CI PipelinesOptimizing Your CI Pipelines
Optimizing Your CI Pipelines
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developers
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!DockerCon EU 2015: Stop Being Lazy and Test Your Software!
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
 
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon Vienna
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with git
 
Git+jenkins+rex presentation
Git+jenkins+rex presentationGit+jenkins+rex presentation
Git+jenkins+rex presentation
 
Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)Testing Your Automation Code (Vagrant Version)
Testing Your Automation Code (Vagrant Version)
 
markedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVMmarkedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVM
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Coscup
CoscupCoscup
Coscup
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby Team
 

More from Simone Soldateschi

Codemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeCodemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeSimone Soldateschi
 
Immutable Systems in the AWS Cloud
Immutable Systems in the AWS CloudImmutable Systems in the AWS Cloud
Immutable Systems in the AWS CloudSimone Soldateschi
 
Test Driven Development with Chef
Test Driven Development with ChefTest Driven Development with Chef
Test Driven Development with ChefSimone Soldateschi
 
PyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudPyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudSimone Soldateschi
 

More from Simone Soldateschi (6)

Codemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm ModeCodemotion Rome 2018 Docker Swarm Mode
Codemotion Rome 2018 Docker Swarm Mode
 
Immutable Systems in the AWS Cloud
Immutable Systems in the AWS CloudImmutable Systems in the AWS Cloud
Immutable Systems in the AWS Cloud
 
Test Driven Development with Chef
Test Driven Development with ChefTest Driven Development with Chef
Test Driven Development with Chef
 
Ansible - Crash course
Ansible - Crash courseAnsible - Crash course
Ansible - Crash course
 
Git Crash Course
Git Crash CourseGit Crash Course
Git Crash Course
 
PyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudPyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the Cloud
 

Recently uploaded

Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 

Recently uploaded (20)

Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 

Build Chef development box from scratch

  • 1. Chef Development Box with Packer, Vagrant and Travis CI build chef-takeaway by Simone Soldateschi 20150625
  • 2. Who I am ● Senior DevOps Engineer, Sydney ● Lead DevOps Team at Rackspace AU ● 15 years of experience as ○ Software Eng ○ Systems Eng ○ Been DevOps'in for the last 5-ish years
  • 3. Why
  • 5. ● simple ● repeatable ● versioned Things should be
  • 6. “Simple” Just 3 steps: ● git clone git@github.com:siso/chef-takeaway.git ● . ● vagrant up ● vagrant ssh -- -A
  • 7. I lied ;) Just 3 steps: ● git clone git@github.com:siso/chef-takeaway.git ● cd chef-takeaway ● vagrant up ● vagrant ssh -- -A
  • 8. … /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/gem_dependency.rb:119:in `requirement': undefined local variable or method `version_requirements' for #<Rails::GemDependency:0xb7181c78> (NameError) from /usr/local/lib/site_ruby/1.8/rubygems.rb:254:in `activate' from /usr/local/lib/site_ruby/1.8/rubygems.rb:1204:in `gem' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/gem_dependency.rb:73:in `add_load_paths' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `add_gem_load_paths' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `each' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:301:in `add_gem_load_paths' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:132:in `process' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in `send' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in `run' from /home/user/application/config/environment.rb:19 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:521:in `new_constants_in' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/commands/server.rb:84 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' from script/server:3 ... “Repeatable”
  • 9. vagrant destroy && vagrant up “Repeatable”
  • 11. What
  • 12.
  • 16. Share
  • 19. How
  • 20. Build
  • 21. Build
  • 22. Build ● variables ● builders ● provisioner ● post-processor
  • 23. Build "variables": { "core": 1, "memory": 512, "disk_size": 10140, "ssh_port": 22, "ssh_wait_timeout": "10000s", "iso_url": "http://cdimage.debian.org/debian-cd/8.0.0/amd64/iso-cd/debian- 8.0.0-amd64-netinst.iso", "iso_md5": "d9209f355449fe13db3963571b1f52d4", "vm_name": "chef-takeaway", "vm_version": "0.3.1” },
  • 24. "builders": [ { "boot_command": [ "<esc><wait>", "install <wait>", "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed-jessie.cfg <wait>", ... "<enter><wait>" ], "disk_size": "{{user `disk_size`}}", "guest_os_type": "Debian_64", "headless": true, ... Build
  • 25. "provisioners": [ { "type": "shell", "execute_command": "echo 'vagrant' | {{ .Vars }} sudo -E -S sh '{{ .Path }}'", "inline": [ "sleep 30" ] }, ... Build
  • 26. "provisioners": [ ..., { "type": "ansible-local", "pause_before": "5s", "playbook_dir": "../ansible", "playbook_file": "../ansible/main.yml", "role_paths": ["../ansible"], "extra_arguments": ["-vvvv", "-u", "root"] }, Build
  • 27. Build "post-processors": [ { "type": "vagrant", "output": "./{{.Provider}}/{{user `vm_name`}}-{{user `vm_version`}}.box" } ],
  • 29.
  • 30. Share
  • 31.
  • 32. Recap
  • 33.
  • 34.

Editor's Notes

  1. Enable developers, Automation Engineers and DevOps just use a box which works off-the-shelf
  2. Why?
  3. Then, “when”, and not “if”, you get that...
  4. ...fix it and restart easily.
  5. Need I to convince you that using GitHub is good idea?
  6. Packer: easily build machine images for multiple platoform
  7. everything starts with a vanilla installation of a Linux distro of your choice
  8. Travis CI: Test it!
  9. Eventually share artifacts, machine images with the community and teammates
  10. The machine build process is described in a JSON file
  11. The following stanzas will be used build the machine image
  12. Set up variables for the machine build task
  13. Packer types command, and interact with the installer on your behalf
  14. Iteratively run provisioners, e.g. “shell”
  15. Iteratively run provisioners, e.g. “Ansible”
  16. Push changes to GitHub It triggers the execution of TravisCI (.travis.yml) Result of CI job is displayed on GitHub repo
  17. SSH onto the Vagrant box develop code test with KitchenCI use Docker for testing (faster!)