It is just vendoring!
Gather your dependencies & bus them out
The conceptual workflow
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
But is it juuuust
There is certainly more to be said
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
JeOS + omnibus-packages gives me ... SPEED
Same process for Kickstarts, cloud images or
fpm -s rpm -t dir ...
Config management tool has a lot less to worry about
Little need to master multi-deps packaging
Dreaming of a different
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
What if we had a generic, sharable packaging DSL?
Not a dream after all?
Pleaserun abstracts init scripts (Jordan Sissel is my hero)
The concept of a OS is changing
Tools of the trade
A lot of others like bunchr, pkgr ...
A Ruby DSL/gem first and foremost created for making
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
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
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
DSL contains definition of both build- and deploytime
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
Ehm.. little or no documentation. Use teh source! :-O
I believe The Foreman as a
project would benefit from
available for end users
vagrant up really up before you've finished your
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
I'm doing it, please stop
me! (or try to help)
Come chat with me after this in the hack room or ping me
Lets try and have something usable quickly
Vagrant build lab?
Binaries/repos at bintray?
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 ...
John E. Vincent: Omnibus'ing your way to
Chef mailing list discussion
Eat the Whole Bowl - Seth Chisamore and Christopher
Paul Czarkowski: Logstash + Opscode Omnibus
Packaging Puppet using fpm-cookery, omnibus-style
Various people on Foodfightshow on omnibus and concepts
I'm for hire (remotely)
Current availability: October