Create a gist now

Instantly share code, notes, and snippets.

/usr/bin/ruby # wraps system installed rbenv (available during ubuntu boot)
#! /bin/sh
# file: /usr/bin/ruby
# the normal 'rbenv global 1.9.3-p0' will affect this script but, unlike having *only* rbenv, this ruby will be available at low run levels (aka, for init scripts)
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:/usr/local/rbenv/shims:$PATH"
exec ruby "$@"

Interesting. You are able to rbenv install.... and rbenv global ... etc in a EC2 user-data script with this placed exactly where?


our boxes all have /usr/local on ebs. a snapshot of the this ebs drive (base packages, etc) is attached when a new box is brought up. therefore, there is nothing to install via user-data. does that make sense?


Okay I think I see. That EBS was hand crafted?
By production you seem to mean 'single use(r)'? That is no other users accessing. So I think the pull request tries to accommodate a wider set of use cases e.g. ensure that out the box a any new account bundles into its ~/vendor, All install and updates are logged automagically, etc.


yes, ebs which is cloned. our apps boot with a particular environment, so it's all that's needed to allow any app to have it's own ruby and work around dash ruby issus at boot time - food for thought


Interesting, unfortunately, or fortunately - depending on pov [worker or mgt :)], our policy is a "only do it once by hand". Pretty much once we have some thing or work-flow working, it has to be converted to a script. So we do "roll by hand", but that thing or work-flow has to survive the removal of the person ;)
Essentially, in our case production means that person-less version. E.g Out the box logging is then quite important so that we can easily grep/parse for any issues. But in your circumstances it looks like a total waste, and it is in those circumstances.

Of course, like your EBS, we only build one AMI's perregion, once, then they automatically get cloned to a new AMI if they build successfully - all fully automated of course ;)

Appreciate any further thoughts you have that might improve things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment