SlideShare a Scribd company logo
1 of 12
Download to read offline
Continuous Deployment for
          Ops
     (who use Chef and git)



                              @mikebabineau
                                      EA2D
Infrastructure as Code


“Enable the reconstruction of the business from nothing but a
source code repository, an application data backup, and bare
metal resources”
 - Jesse Robbins
Chef primer

Client-server config management tool

Cookbooks - modules with recipes for doing stuff
Roles - which recipes? what settings?
Data Bags - JSON object storage
Knife - CLI tool
Bad:
$ knife role edit myrole
Better:
$ knife role from file roles/myrole.json
How?

$ tree -a chef-repo
chef-repo
├── .chef
├── .git
├── cookbooks
│ └── myapp
├── databags
└── roles
   └── myrole.json
Best:
$ git push origin master
How?
for cookbook in $(git_diff("cookbooks")); do
   knife cookbook upload $cookbook
done

for role in $(git_diff("roles")); do
   knife role from file $role
done

for bag in $(git_diff("databags")); do
   for item in $(git_diff("items", $bag)); do
      knife data bag from file $bag $item
   done
done
How do you test?
$ git push origin dev
$ cat .chef/knife.rb
...
# (original by jtimberman@opscode.com)

require 'grit'
branch = Grit::Repo.new("#{current_dir}/..").head.name

case branch
when "master"
 orgname = "ea2d"
else
 orgname = "ea2d-dev"
end

validation_key "#{current_dir}/#{orgname}-validator.pem"
chef_server_url "https://api.opscode.com/organizations/#{orgname}"

validation_client_name "#{orgname}-validator"

...

https://gist.github.com/829733
Questions?
mikeb@ea2d.com




We're hiring:
AWS, Java, Chef, Python,
JS, GAE, NoSQL, DevOps, etc.

http://ea2d.com/jobs/

More Related Content

Viewers also liked

A po co mi usability?
A po co mi usability?A po co mi usability?
A po co mi usability?Dige
 
2009 08 18 Narzedzia
2009 08 18 Narzedzia2009 08 18 Narzedzia
2009 08 18 NarzedziaDige
 
Agilyze Them! Experiences promoting Agile Methodologies in Navarra
Agilyze Them! Experiences promoting Agile Methodologies in NavarraAgilyze Them! Experiences promoting Agile Methodologies in Navarra
Agilyze Them! Experiences promoting Agile Methodologies in NavarraZalakain
 
Fsu the entreprenurial university
Fsu the entreprenurial universityFsu the entreprenurial university
Fsu the entreprenurial universitystevenlroden
 
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act Websites
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act WebsitesShow Us the Stimulus: An Evaluation of Minnesota's Recovery Act Websites
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act WebsitesMike
 
Difference .Net Frameworks
Difference .Net FrameworksDifference .Net Frameworks
Difference .Net Frameworksmumairkhan
 
PowerShellで.NETとCOMとWMI
PowerShellで.NETとCOMとWMIPowerShellで.NETとCOMとWMI
PowerShellで.NETとCOMとWMIchiaki1220jp
 
Producten Diversity (Innovation)
Producten Diversity (Innovation)Producten Diversity (Innovation)
Producten Diversity (Innovation)vincentvm
 
The Restaurant saves lost customers & revenue
The Restaurant saves lost customers & revenueThe Restaurant saves lost customers & revenue
The Restaurant saves lost customers & revenueThe Restaurant Report
 
Diversity@Selor
Diversity@SelorDiversity@Selor
Diversity@Selorvincentvm
 
Daimler Chrysler Aerospace Ag
Daimler Chrysler Aerospace AgDaimler Chrysler Aerospace Ag
Daimler Chrysler Aerospace AgUtkarsha Singh
 
Stalwart Global Consulting - Company Intro
Stalwart Global Consulting - Company IntroStalwart Global Consulting - Company Intro
Stalwart Global Consulting - Company IntroAbhi Kulkarni
 
Fsu the entreprenurial university final
Fsu the entreprenurial university finalFsu the entreprenurial university final
Fsu the entreprenurial university finalstevenlroden
 

Viewers also liked (16)

A entrevista
A entrevistaA entrevista
A entrevista
 
A po co mi usability?
A po co mi usability?A po co mi usability?
A po co mi usability?
 
2009 08 18 Narzedzia
2009 08 18 Narzedzia2009 08 18 Narzedzia
2009 08 18 Narzedzia
 
Agilyze Them! Experiences promoting Agile Methodologies in Navarra
Agilyze Them! Experiences promoting Agile Methodologies in NavarraAgilyze Them! Experiences promoting Agile Methodologies in Navarra
Agilyze Them! Experiences promoting Agile Methodologies in Navarra
 
YaleDHI FtM Talk
YaleDHI FtM TalkYaleDHI FtM Talk
YaleDHI FtM Talk
 
Fsu the entreprenurial university
Fsu the entreprenurial universityFsu the entreprenurial university
Fsu the entreprenurial university
 
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act Websites
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act WebsitesShow Us the Stimulus: An Evaluation of Minnesota's Recovery Act Websites
Show Us the Stimulus: An Evaluation of Minnesota's Recovery Act Websites
 
Difference .Net Frameworks
Difference .Net FrameworksDifference .Net Frameworks
Difference .Net Frameworks
 
PowerShellで.NETとCOMとWMI
PowerShellで.NETとCOMとWMIPowerShellで.NETとCOMとWMI
PowerShellで.NETとCOMとWMI
 
Producten Diversity (Innovation)
Producten Diversity (Innovation)Producten Diversity (Innovation)
Producten Diversity (Innovation)
 
The Restaurant saves lost customers & revenue
The Restaurant saves lost customers & revenueThe Restaurant saves lost customers & revenue
The Restaurant saves lost customers & revenue
 
Diversity@Selor
Diversity@SelorDiversity@Selor
Diversity@Selor
 
Daimler Chrysler Aerospace Ag
Daimler Chrysler Aerospace AgDaimler Chrysler Aerospace Ag
Daimler Chrysler Aerospace Ag
 
Stalwart Global Consulting - Company Intro
Stalwart Global Consulting - Company IntroStalwart Global Consulting - Company Intro
Stalwart Global Consulting - Company Intro
 
Fsu the entreprenurial university final
Fsu the entreprenurial university finalFsu the entreprenurial university final
Fsu the entreprenurial university final
 
Max New York Phase Ii
Max New York Phase IiMax New York Phase Ii
Max New York Phase Ii
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Continuous Deployment of Operational Configs

  • 1. Continuous Deployment for Ops (who use Chef and git) @mikebabineau EA2D
  • 2.
  • 3. Infrastructure as Code “Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources” - Jesse Robbins
  • 4. Chef primer Client-server config management tool Cookbooks - modules with recipes for doing stuff Roles - which recipes? what settings? Data Bags - JSON object storage Knife - CLI tool
  • 5. Bad: $ knife role edit myrole
  • 6. Better: $ knife role from file roles/myrole.json
  • 7. How? $ tree -a chef-repo chef-repo ├── .chef ├── .git ├── cookbooks │ └── myapp ├── databags └── roles └── myrole.json
  • 8. Best: $ git push origin master
  • 9. How? for cookbook in $(git_diff("cookbooks")); do knife cookbook upload $cookbook done for role in $(git_diff("roles")); do knife role from file $role done for bag in $(git_diff("databags")); do for item in $(git_diff("items", $bag)); do knife data bag from file $bag $item done done
  • 10. How do you test? $ git push origin dev
  • 11. $ cat .chef/knife.rb ... # (original by jtimberman@opscode.com) require 'grit' branch = Grit::Repo.new("#{current_dir}/..").head.name case branch when "master" orgname = "ea2d" else orgname = "ea2d-dev" end validation_key "#{current_dir}/#{orgname}-validator.pem" chef_server_url "https://api.opscode.com/organizations/#{orgname}" validation_client_name "#{orgname}-validator" ... https://gist.github.com/829733
  • 12. Questions? mikeb@ea2d.com We're hiring: AWS, Java, Chef, Python, JS, GAE, NoSQL, DevOps, etc. http://ea2d.com/jobs/