40
Omnibus to the future! cfgmgmtcamp

Omnibus to the future!

Embed Size (px)

Citation preview

Omnibus tothe future!

cfgmgmtcamp

Just enough OS

Just enough packaging?

on Twitter or Freenode

@beddari

1. What?What is omnibus-style packaging?

It is just vendoring!Gather your dependencies & bus them out

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

But is it juuuustvendoring?

There is certainly more to be said

2. Why?

It's an age-old debate ...

... but no topic is ever oldon Twitter

#packagingsucks#fixpackaging

The young and fresh ...

vs the old and wise?

No, that's not it

Maybe it is distros versususers?

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

3. How?Meanwhile, back on planet earth

Tools of the tradeomnibus-rubyfpm-cookeryA lot of others like bunchr, pkgr ...

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

So ... ?I use both!

4. TheForeman

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?

Thank you for listening!

BONUS SLIDEUNLOCKED!

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

I'm for hire (remotely)Current availability: October

no.linkedin.com/in/beddari