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
Automate All the Things
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Josh Betz
June 08, 2013
Technology
1
1.5k
Automate All the Things
Josh Betz
June 08, 2013
Tweet
Share
More Decks by Josh Betz
See All by Josh Betz
WP REST API
joshbetz
0
73
Code Review for Teams
joshbetz
0
50
Hypersonic
joshbetz
1
3.6k
Other Decks in Technology
See All in Technology
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
2
750
SMTP完全に理解した ✉️
yamatai1212
0
180
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
0
270
Amazon ElastiCacheのコスト最適化を考える/Elasticache Cost Optimization
quiver
0
370
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
0
1.4k
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
120
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
0
740
20260129_CB_Kansai
takuyay0ne
1
260
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
4
1.9k
Meshy Proプラン課金した
henjin0
0
170
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
3
320
Featured
See All Featured
Navigating Team Friction
lara
192
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
61
A Modern Web Designer's Workflow
chriscoyier
698
190k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The Curious Case for Waylosing
cassininazir
0
230
Building the Perfect Custom Keyboard
takai
2
680
A designer walks into a library…
pauljervisheath
210
24k
The SEO identity crisis: Don't let AI make you average
varn
0
62
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
120
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
130
Transcript
A WordPress Development Workflow
Josh Betz UW - Madison, 2013 Code Wrangler, Automattic @joshbetz
Develop locally against trunk
git-svn git svn clone -s http://core.svn.wordpress.org git svn rebase
git in git Use a new repository for each theme
or plugin
Automate your Environment
Goal: Quickly set up a dev environment that looks like
a server
My solution: Vagrant + Puppet
Install VirtualBox https://www.virtualbox.org/wiki/Downloads
RVM curl -L https://get.rvm.io | bash -s stable
gem install vagrant Vagrant
Puppet gem install puppet
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant Boxes http://vagrantbox.es
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
My Files https://github.com/joshbetz/WCMKE-2013-Vagrant-Puppet
Run It vagrant up
Why is this useful?
Automate your Development
Developer Plugin http://wordpress.org/extend/plugins/developer/
Theme Unit Test http://codex.wordpress.org/Theme_Unit_Test
Underscores http://underscores.me/
Thanks!
jbe.me/2f0 Slides