Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Use Datacenter Tools to Make Your Dev Life Easier
Search
Jochen Lillich
August 23, 2012
Programming
0
100
Use Datacenter Tools to Make Your Dev Life Easier
Talk at DrupalCon Munich 2012 about using Chef and Vagrant in a development environment
Jochen Lillich
August 23, 2012
Tweet
Share
More Decks by Jochen Lillich
See All by Jochen Lillich
Under Pressure
geewiz
0
75
Monorepo vs Multirepo
geewiz
0
66
Dealing with IRQ conflicts in 2018
geewiz
0
61
Planning for the Unpredictable
geewiz
0
200
Captaining a Container Ship
geewiz
0
82
Content - Culture - Community
geewiz
0
370
Drupal on Docker
geewiz
0
240
Getting the most out of Varnish (DrupalCamp Galway 2014)
geewiz
0
230
DevOps with Drupal
geewiz
0
330
Other Decks in Programming
See All in Programming
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
11
5.3k
TypeScript 5.9で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
380
AIを駆使して新しい技術を効率的に理解する方法
nogu66
1
660
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
10
3.3k
高単価案件で働くための心構え
nullnull
0
160
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
3
1.4k
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
110
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
120
「10分以内に機能を消せる状態」 の実現のためにやっていること
togishima
1
530
flutter_kaigi_2025.pdf
kyoheig3
1
350
[SF Ruby Conf 2025] Rails X
palkan
0
350
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
How GitHub (no longer) Works
holman
315
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
A Tale of Four Properties
chriscoyier
162
23k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Code Review Best Practice
trishagee
72
19k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Mobile First: as difficult as doing things right
swwweet
225
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
How STYLIGHT went responsive
nonsquared
100
5.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
freistil.it Use datacenter tools to make your dev life easier
Jochen Lillich
About me
Jochen Lillich @geewiz * 1970 Linux Sysadmin & Trainer IT
Manager at WEB.DE, 1&1 Founder & CTO at freistil IT
freistil IT http://freistil.it @freistil “Ops for Devs” DrupalCONCEPT: Drupal IaaS
Challenge... Local development environments Manual configuration effort Mismatched software versions
Long onboarding times
...accepted! Minimize setup time Make Development = Production Reproduce setup
consistently on demand
Vagrant
“Vagrant uses Oracle’s VirtualBox to build configurable, lightweight, and portable
virtual machines dynamically.” http://vagrantup.com
$ gem install vagrant $ vagrant box add precise64 http://
files.vagrantup.com/precise64.box $ cd ~/myvm $ vagrant init precise64 $ vagrant up $ vagrant ssh Instant VM
Pre-installed OS Available from http://files.vagrantup.com Box
Box – Management $ vagrant box -h $ vagrant package
-h
Box – DIY VeeWee by Patrick Dubois https://github.com/jedi4ever/veewee
Vagrantfile Ruby DSL for VM configuration Can be used for
many VMs
Vagrant::Config.run do |config| config.vm.box = "precise64" config.vm.boot_mode = :gui config.vm.forward_port
80, 8080 end Vagrantfile
“Well, I’ve been doing that for ages with snapshots/ images/other...”
None
“No matter how complex the realities of your business, Chef
makes it easy to deploy servers and scale applications throughout your entire infrastructure.” http://www.opscode.com/chef/
Ruby DSL for system administration tasks Makes only necessary changes
(Idempotence) CM with Chef
Infrastructure as Code Cookbooks Recipes Resources Providers Nodes Attributes Roles
Resources Package Service File, Directory Template Command, Script Cron Git
...
Example package ”apache2” do action :install end service ”apache2” do
action [:enable, :start] end
Example (cont.) template ”/etc/apache2/apache2.conf” do source ”apache2.conf.erb” owner ”root” group
”root” mode 0644 notifies ”reload”, ”service[apache2]” end
Community sites http://wiki.opscode.com http://community.opscode.com http://github.com/opscode-cookbooks
+
Installation $ gem install librarian $ cd ~/myvm $ librarian-chef
init $ $EDITOR Cheffile $ librarian-chef install
Cheffile site ”http://community.opscode.com/api/v1” cookbook ’apache2’ cookbook ’php’ cookbook ’mysql’
roles/drupal.rb name "drupal" description "Drupal dev VM" run_list( "recipe[apache2]", "recipe[apache2::mod_expires]",
"recipe[apache2::mod_rewrite]", "recipe[apache2::mod_php5]", "recipe[php]", "recipe[php::module_mysql]", "recipe[mysql::client]", "recipe[mysql::server]" )
Vagrantfile config.vm.provision :chef_solo do |chef| chef.cookbooks_path = ”cookbooks” chef.roles_path =
”roles” chef.add_role ”drupal-dev” end
Kitchen magic $ vagrant provision
Now do some awesome stuff!
And finally... $ vagrant destroy
Tips Keep all building blocks local: Cache packages Store your
own base boxes Use a central cookbook repository
Conclusion Combining Vagrant and Chef gives us: Dedicated, consistent, disposable
dev setups Efficient onboarding of new devs
Thank you! Please rate my session: http://bit.ly/dc12chef