Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Omnibus to the future!


Published on

My talk at

Original at

Published in: Technology
  • Be the first to comment

Omnibus to the future!

  1. 1. Omnibus to the future! cfgmgmtcamp
  2. 2. Just enough OS
  3. 3. Just enough packaging?
  4. 4. @beddari on Twitter or Freenode
  5. 5. 1. What? What is omnibus-style packaging?
  6. 6. It is just vendoring! Gather your dependencies & bus them out
  7. 7. The conceptual workflow 1. 2. 3. 4. Decide on a build prefix, maybe /opt/some_app Build in all the dependencies, runtimes, etc Build the app - only linking in stuff from /opt/some_app Wrap /opt/some_app into deb or rpm using fpm
  8. 8. But is it juuuust vendoring? There is certainly more to be said
  9. 9. 2. Why?
  10. 10. It's an age-old debate ...
  11. 11. ... but no topic is ever old on Twitter
  12. 12. #packagingsucks #fixpackaging
  13. 13. The young and fresh ...
  14. 14. vs the old and wise?
  15. 15. No, that's not it
  16. 16. Maybe it is distros versus users?
  17. 17. Move over Twitter, why do YOU use it? I like to use packages as my CI/CD artifact I promote omnibus packages as testable change sets Omnibus lets me worry (a bit) less about managing repos Less deps to resolve at provisioning == less trouble
  18. 18. JeOS + omnibus-packages gives me ... SPEED Same process for Kickstarts, cloud images or containers fpm -s rpm -t dir ... Config management tool has a lot less to worry about Little need to master multi-deps packaging
  19. 19. Dreaming of a different world What if distros contained THEIR Pythons and Rubies and whatever they needed? What if distros and upstream made friends <3 and together grew a toolset for rapid provisioning of full stacks? What if we had a generic, sharable packaging DSL?
  20. 20. Not a dream after all? Pleaserun abstracts init scripts (Jordan Sissel is my hero) The concept of a OS is changing
  21. 21. 3. How? Meanwhile, back on planet earth
  22. 22. Tools of the trade omnibus-ruby fpm-cookery A lot of others like bunchr, pkgr ...
  23. 23. omnibus-ruby A Ruby DSL/gem first and foremost created for making Chef packages Uses Ohai to gather knowledge about a system Very usable also for generic packaging - it uses fpm after all Tooling around it is tied to Chef
  24. 24. omnibus-ruby gotchas! No mechanism for providing packages as build-time deps You could probably work around that Complains if you link to anything outside the sandbox It is not straigthforward to host your own software library
  25. 25. fpm-cookery A gem that adds a generic packaging DSL on top of fpm Uses Puppet and Facter for abstractions Andy Sykes @supersheep contributed code to get omnibus-like features DSL contains definition of both build- and deploytime package dependencies
  26. 26. fpm-cookery gotchas! Omnibus-enabled builds must be done as root No easy way of structuring internally dependent definitions; each project must have a copy of the Ruby definition file Ehm.. little or no documentation. Use teh source! :-O
  27. 27. So ... ? I use both!
  28. 28. 4. The Foreman
  29. 29. I believe The Foreman as a project would benefit from having readily-available omnibus-style packages available for end users
  30. 30. Use cases vagrant up really up before you've finished your morning coffee? Installing an omnibus package is easier than -enablerepo=x? We get an easy - dare I say correct - way of supporting Foreman within containers? Unpack, done. Foreman or Foreman proxy alongside other stuff on SmartOS? FreeBSD?
  31. 31. I'm doing it, please stop me! (or try to help) Come chat with me after this in the hack room or ping me on Twitter Lets try and have something usable quickly Vagrant build lab? Binaries/repos at bintray?
  32. 32. Thank you for listening!
  34. 34. The Vagrant-based Foreman bootstrap process Provision Foreman all-in-one with Vagrant on VirtualBox Create an extra network on the instance Bridge that network to a 'real' physical network Use e.g PXE with Foreman in Vagrant to provision ... Foreman
  35. 35. References John E. Vincent: Omnibus'ing your way to happiness Chef mailing list discussion Eat the Whole Bowl - Seth Chisamore and Christopher Maier Paul Czarkowski: Logstash + Opscode Omnibus Packaging Puppet using fpm-cookery, omnibus-style Various people on Foodfightshow on omnibus and concepts around it
  36. 36. I'm for hire (remotely) Current availability: October