Upload
jan-ivar-beddari
View
449
Download
1
Embed Size (px)
Citation preview
The conceptual workflow1. Decide on a build prefix, maybe /opt/some_app2. Build in all the dependencies, runtimes, etc3. Build the app - only linking in stuff from /opt/some_app4. Wrap /opt/some_app into deb or rpm using fpm
Move over Twitter, why doYOU 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
containers
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 differentworld
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?
Not a dream after all?Pleaserun abstracts init scripts (Jordan Sissel is my hero)
The concept of a OS is changing
omnibus-rubyA 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
omnibus-ruby gotchas!No mechanism for providing packages as build-time deps
You could probably work around thatComplains if you link to anything outside the sandbox
It is not straigthforward to host your own software library
fpm-cookeryA gem that adds a generic packaging DSL on top of fpmUses Puppet and Facter for abstractionsAndy Sykes @supersheep contributed code to getomnibus-like featuresDSL contains definition of both build- and deploytimepackage dependencies
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
I believe The Foreman as aproject would benefit from
having readily-availableomnibus-style packages
available for end users
Use casesvagrant 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?
I'm doing it, please stopme! (or try to help)
Come chat with me after this in the hack room or ping meon TwitterLets try and have something usable quickly
Vagrant build lab?Binaries/repos at bintray?
The Vagrant-basedForeman bootstrap
processProvision Foreman all-in-one with Vagrant on VirtualBoxCreate an extra network on the instanceBridge that network to a 'real' physical networkUse e.g PXE with Foreman in Vagrant to provision ...Foreman
References
Various people on on omnibus and conceptsaround it
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
Foodfightshow