boxen: how to manage an army of laptops and live to talk about it
DESCRIPTION
Will Farrington of Github talks about Boxen at Puppet Camp Atlanta, 2013. Original slides can be found: https://speakerdeck.com/wfarr/boxen-puppetcamp-atl Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/TRANSCRIPT
![Page 1: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/1.jpg)
boxen
![Page 2: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/2.jpg)
wfarr
![Page 3: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/3.jpg)
ops
![Page 4: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/4.jpg)
friction
![Page 5: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/5.jpg)
what is boxen?
![Page 6: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/6.jpg)
STORY TIME
![Page 7: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/7.jpg)
@jbarnette + @wfarr
![Page 8: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/8.jpg)
![Page 9: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/9.jpg)
![Page 10: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/10.jpg)
developing software isharder than it used to be
![Page 11: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/11.jpg)
our toolchains have gottenmore robust
![Page 12: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/12.jpg)
our toolchains have gottenmore complicated
![Page 13: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/13.jpg)
want to work on $anything?
![Page 14: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/14.jpg)
better install a ruby version manager, like 8 versions of ruby, a handful of gems to try and make the behavior remotely sane, and
then pray it doesn't break
![Page 15: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/15.jpg)
![Page 16: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/16.jpg)
s/ruby/literally everything but bash/g
![Page 17: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/17.jpg)
![Page 18: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/18.jpg)
let's make it better
![Page 19: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/19.jpg)
![Page 20: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/20.jpg)
![Page 21: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/21.jpg)
THINGS BOXEN IS
![Page 22: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/22.jpg)
a framework
![Page 23: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/23.jpg)
stdlib
![Page 24: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/24.jpg)
wat
![Page 25: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/25.jpg)
![Page 26: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/26.jpg)
![Page 27: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/27.jpg)
THINGS BOXEN IS NOT
![Page 28: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/28.jpg)
nope
![Page 29: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/29.jpg)
nope
![Page 30: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/30.jpg)
newp
![Page 31: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/31.jpg)
sadly,no
![Page 32: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/32.jpg)
why should i use boxen?
![Page 33: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/33.jpg)
FRICTION SUCKS
![Page 34: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/34.jpg)
frictionis anything that
gets in the way of doing stuff
![Page 35: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/35.jpg)
frictionis the greatest source of
frustration in every organization
![Page 36: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/36.jpg)
configuring development environments is a week-long
marathon in friction
![Page 37: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/37.jpg)
"all right, new work laptop! i wonder where that blog post i used last time to set up ruby,
python, go, and git is. hopefully it still works and by the end of the
week i can start shipping."
![Page 38: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/38.jpg)
"all right, new work laptop! i wonder where that blog post i used last time to set up ruby,
python, go, and git is. hopefully it still works and by the end of the
week i can start shipping."lame
![Page 39: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/39.jpg)
![Page 40: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/40.jpg)
![Page 41: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/41.jpg)
![Page 42: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/42.jpg)
![Page 43: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/43.jpg)
getting any part of the stack running locally should never block
someone from shipping
![Page 44: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/44.jpg)
USS COOL STU
FF
![Page 45: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/45.jpg)
![Page 46: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/46.jpg)
INCONSISTENCY SUCKS
![Page 47: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/47.jpg)
when was the last time you knew every human was running the
same services in dev and prod?
![Page 48: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/48.jpg)
![Page 49: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/49.jpg)
"hey so my postgresql isn't working. is yours working? it is?
huh. i have no idea what's wrong."
![Page 50: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/50.jpg)
"hey so my postgresql isn't working. is yours working? it is?
huh. i have no idea what's wrong."lame
![Page 51: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/51.jpg)
manual audits aretedious
![Page 52: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/52.jpg)
manual audits areerror-prone
![Page 53: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/53.jpg)
ask software instead of humans
![Page 54: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/54.jpg)
lock every core component to the same version as in prod
![Page 55: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/55.jpg)
UPDATING SUCKS
![Page 56: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/56.jpg)
"jeeeeeez the mac app store has been bugging me for like forever! i
have a billion updates... meh"
![Page 57: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/57.jpg)
"jeeeeeez the mac app store has been bugging me for like forever! i
have a billion updates... meh"lame
![Page 58: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/58.jpg)
maybe you use CM in dev already,but when was the last time
you updated and ran it?
![Page 59: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/59.jpg)
SECURITY SUCKS
![Page 60: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/60.jpg)
security is a war of attrition
![Page 61: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/61.jpg)
bug people enough about security and they stop caring about it
![Page 62: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/62.jpg)
"ugh, another security thing? whatever, i have way more
important things to do"
![Page 63: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/63.jpg)
"ugh, another security thing? whatever, i have way more
important things to do"lame
![Page 64: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/64.jpg)
let code handle security,then inform people so they know why the code's making changes
![Page 65: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/65.jpg)
no surprises
![Page 66: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/66.jpg)
BOXEN ENABLES YOU TO MAKE THESE THINGS
BETTER FOR YOUR ORG
![Page 67: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/67.jpg)
![Page 68: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/68.jpg)
what do i get?
![Page 69: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/69.jpg)
RUNNER
![Page 70: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/70.jpg)
boxen is run via some ruby
![Page 71: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/71.jpg)
it collects info for facter
![Page 72: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/72.jpg)
it checks for prerequisites and conflicts before each run
![Page 73: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/73.jpg)
it detects certain changes post-run
![Page 74: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/74.jpg)
it has hooks too
![Page 75: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/75.jpg)
PUPPET
![Page 76: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/76.jpg)
"the core"
![Page 77: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/77.jpg)
homebrew, git, hub, gcc, rbenv, ruby 1.8.7, ruby 1.9.3, ruby 2.0.0, nvm, nodejs 0.4.x, nodejs 0.6.x,
nodejs 0.8.x, nginx, .dev dns, FDE, and puppetlabs-stdlib
![Page 78: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/78.jpg)
rbenv_gem, repository, osx_chsh, osx_login_item, boxen::project,
ruby::local, mysql::database, etc.
![Page 79: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/79.jpg)
package: homebrew, compressed_app
![Page 80: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/80.jpg)
repository: git
![Page 81: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/81.jpg)
service: ghlaunchd
![Page 82: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/82.jpg)
"the library"
![Page 83: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/83.jpg)
130+ modules on GitHub
![Page 84: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/84.jpg)
GitHub uses ~81 of those
![Page 85: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/85.jpg)
travis-ci
![Page 86: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/86.jpg)
CARDBOARD
![Page 87: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/87.jpg)
gem that simplifies creating new puppet modules, optimized for the
boxen-recommended stack
![Page 88: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/88.jpg)
librarian-puppet, rspec-puppet, puppet-lint, etc.
![Page 89: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/89.jpg)
PUPPET-TEMPLATE
![Page 90: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/90.jpg)
example module using cardboard
![Page 91: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/91.jpg)
OUR-BOXEN
![Page 92: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/92.jpg)
template boxen project
![Page 93: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/93.jpg)
BOXEN-WEB
![Page 94: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/94.jpg)
small rails app to allow distributing your boxen easily, with auth
![Page 95: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/95.jpg)
how do i get it?
![Page 96: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/96.jpg)
Automate Everything
![Page 97: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/97.jpg)
boxen/boxen-web
![Page 98: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/98.jpg)
![Page 99: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/99.jpg)
how do i use it?
![Page 100: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/100.jpg)
CLI
![Page 101: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/101.jpg)
$ boxen
# run it
![Page 102: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/102.jpg)
$ boxen --projects
# list projects Boxen knows about
![Page 103: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/103.jpg)
$ boxen <project>
# run it but include <project> in the catalog automatically
![Page 104: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/104.jpg)
PROJECT MANIFESTS
![Page 105: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/105.jpg)
i want to hack on my project
![Page 106: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/106.jpg)
# modules/projects/manifests/team.pp
class projects::team { boxen::project { 'team': dotenv => true, mysql => true, nginx => true, ruby => '1.9.3', source => 'github/team', }}
![Page 107: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/107.jpg)
$ boxen team
warning: Setting up 'team'. This can be made permanent by having 'include projects::team' in your personal manifest.
![Page 108: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/108.jpg)
cloned repo
nginx vhost
ruby version
mysql databases
.env file
![Page 110: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/110.jpg)
PERSONAL MANIFESTS
![Page 111: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/111.jpg)
i want to install $x but only for me
![Page 112: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/112.jpg)
# modules/people/manifests/wfarr.pp
class people::wfarr { include minecraft}
![Page 113: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/113.jpg)
# modules/people/manifests/wfarr.pp
class people::wfarr { include zsh}
![Page 114: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/114.jpg)
# modules/people/manifests/wfarr.pp
class people::wfarr { case $::hostname { 'bender': { include projects::all }
'scruffy': { include projects::team }
default: {} }}
![Page 115: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/115.jpg)
# modules/people/manifests/wfarr.pp
class people::wfarr { git::config::global { 'alias.st': value => 'status'; 'alias.ci': value => 'commit'; 'alias.di': value => 'diff'; 'alias.lp': value => 'log -p'; 'color.ui': value => 'true'; 'user.name': value => 'Will Farrington'; 'user.email': value => '[email protected]'; }}
![Page 116: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/116.jpg)
# modules/people/manifests/wfarr.pp
class people::wfarr { include osx::example_things}
![Page 117: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/117.jpg)
ISSUES
![Page 118: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/118.jpg)
$ boxenError: ZOMG at /opt/boxen/repo/modules/people/manifests/wfarr.pp:8 on node scruffy.gateway.github.lan
Sorry! Creating an issue on github/totally-a-madeup-repo-name.
![Page 119: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/119.jpg)
CODEZ
![Page 120: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/120.jpg)
CODEZ
who failed
![Page 121: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/121.jpg)
CODEZ
how long ago
![Page 122: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/122.jpg)
CODEZ machine
![Page 123: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/123.jpg)
CODEZ
os version
![Page 124: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/124.jpg)
CODEZ shell
![Page 125: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/125.jpg)
CODEZref
![Page 126: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/126.jpg)
CODEZcompare view
![Page 127: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/127.jpg)
CODEZgit status
![Page 128: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/128.jpg)
CODEZ
full command
![Page 129: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/129.jpg)
CODEZ
full log
![Page 130: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/130.jpg)
i fix the error and run `boxen`
![Page 131: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/131.jpg)
CODEZ
![Page 132: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/132.jpg)
via issues api
![Page 133: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/133.jpg)
# config/boxen.rb
ENV['BOXEN_REPO_NAME'] = \ 'github/boxen'
ENV['BOXEN_ISSUES_ENABLED'] = 'yes'
![Page 134: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/134.jpg)
UPDATES
![Page 135: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/135.jpg)
$ boxen
Boxen is up-to-date.
![Page 136: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/136.jpg)
$ boxen
Boxen has a dirty tree, won't auto-update!
![Page 137: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/137.jpg)
$ boxen
Boxen has unpushed commits on master, won't auto-update!
![Page 138: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/138.jpg)
$ boxen
Boxen on a non-master branch 'new-project', won't auto-update!
![Page 139: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/139.jpg)
i'm sold.
![Page 140: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/140.jpg)
![Page 141: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/141.jpg)
what if i have problems?
![Page 142: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/142.jpg)
file issues
![Page 143: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/143.jpg)
irc.freenode.net
![Page 144: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/144.jpg)
be chuck yeager
![Page 145: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/145.jpg)
![Page 146: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/146.jpg)
"So, we're uh in the air. We made it. That's uh good news,
obviously."
![Page 147: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/147.jpg)
"Flight attendants, if you could just hang on to uh... whatever..."
![Page 148: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/148.jpg)
detail text
![Page 149: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/149.jpg)
wfarr
come work with me on things like boxen
![Page 150: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/150.jpg)
CODEZ
![Page 151: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/151.jpg)
thanks
![Page 152: Boxen: How to Manage an Army of Laptops and Live to Talk About It](https://reader031.vdocuments.site/reader031/viewer/2022013003/55511753b4c905b1138b4cff/html5/thumbnails/152.jpg)
speakerdeck.com/wfarr/boxen-puppetcamp-atl